OSDN Git Service

ahci-test: Drop dependence on global_qtest
authorEric Blake <eblake@redhat.com>
Mon, 11 Sep 2017 17:20:02 +0000 (12:20 -0500)
committerThomas Huth <thuth@redhat.com>
Tue, 12 Mar 2019 06:40:59 +0000 (07:40 +0100)
commita189a9375bfe07549dd506e91bfa8af8165f05e2
treeea38ec719a4c39b0abd3a43df32556dc127f2f82
parent6415c2d0b66eab958be2a1fd81615c55793cefa6
ahci-test: Drop dependence on global_qtest

Managing parallel connections to two different monitors via
the implicit global_qtest makes it hard to copy-and-paste code
to tests that are not aware of the implicit state; the
management of global_qtest is even harder to follow because
it was masked behind set_context().

Instead, explicitly pass QTestState* around (generally, by
reusing the member already present in ahci->parent QOSState),
and call explicit qtest_* functions on all places that
interact with a monitor.

We can assert that the conversion is correct by checking that
global_qtest remains NULL throughout the test (a later patch
that changes global_qtest to not be a public global variable
will drop the assertions).

Signed-off-by: Eric Blake <eblake@redhat.com>
Acked-by: John Snow <jsnow@redhat.com>
[thuth: rebased patch to current master branch]
Signed-off-by: Thomas Huth <thuth@redhat.com>
tests/ahci-test.c
tests/libqos/libqos.c
tests/libqos/libqos.h