VSOCK: add full barrier between test cases

See code comment for details.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Stefan Hajnoczi 2019-12-18 19:07:02 +01:00 committed by David S. Miller
parent 9bb8a29d28
commit 2f65b44e19

View File

@ -161,10 +161,24 @@ void run_tests(const struct test_case *test_cases,
printf("%s...", test_cases[i].name);
fflush(stdout);
if (opts->mode == TEST_MODE_CLIENT)
if (opts->mode == TEST_MODE_CLIENT) {
/* Full barrier before executing the next test. This
* ensures that client and server are executing the
* same test case. In particular, it means whoever is
* faster will not see the peer still executing the
* last test. This is important because port numbers
* can be used by multiple test cases.
*/
control_expectln("NEXT");
control_writeln("NEXT");
run = test_cases[i].run_client;
else
} else {
control_writeln("NEXT");
control_expectln("NEXT");
run = test_cases[i].run_server;
}
if (run)
run(opts);