- One additional simple qmp-test

- A fix for ide-test
 - Add logging of QEMU parameters in libqtest
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJb8+YwAAoJEC7Z13T+cC21ZSsP/RRwtc1WYafjfx73RD4K5kRf
 jSFRjk/6jtlV8IAteRgscts/knxb/dc4FrKJqLMFzPBVq0WF4HRLAz0tL7QTvP+y
 3s6/A2eSPv+8WYSxfCMukC92K+/UFv4MFXUZxquo6L/tTNupEpY63qdHNDzTAx+Z
 5BHFbi3Pp1gIxWW5UTo/pq6qMO6Tn5H+29kJkjqydGsudP1tI/9TL20icckvaSMZ
 z/OlpH0oOsXtCMvr3IDpc/xx/SB4UUDs4HjHG7ZPQH43+423xSQ8Ey2xg9yIqRy5
 5e4Gt0vbSb/DwLF0PWuf8A1755G8inP+ufe4HL5jp7VNa9ZslryPVaLnu1GuqLRr
 i3ilcWRHZZx+/LOfa4RKHsUl82dntgNKt2ZHAnlpbH3wgv0EkCWJuPyg6HkyarMB
 1JjZWPjSzxSoeQrWw6brCzldyvZu8mYLJmQmolLg4j5w4KphWqJbligUqnIEuv5z
 NNk2m64KCmc+ks3o4dN2Cu5zQY8m55qI3dcnmF3pCd2y2F2/pj4f6ap4U3bM0UDV
 dP6Yh3cAa5r6uzLRj3GuOS5N4JkvHCPPuYUMwtD8BxcEaEYf4LrM0GZH1eyTrGwt
 va39APWW6/rIkxzCvSJs0T5oRukKDRzbE/ADURgOYEkWNZn1KqSDQgFW/Uw3fWFc
 9+J2cBx0eqgTdnNDDfgU
 =jqvH
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2018-11-20' into staging

- One additional simple qmp-test
- A fix for ide-test
- Add logging of QEMU parameters in libqtest

# gpg: Signature made Tue 20 Nov 2018 10:47:12 GMT
# gpg:                using RSA key 2ED9D774FE702DB5
# gpg: Good signature from "Thomas Huth <th.huth@gmx.de>"
# gpg:                 aka "Thomas Huth <thuth@redhat.com>"
# gpg:                 aka "Thomas Huth <huth@tuxfamily.org>"
# gpg:                 aka "Thomas Huth <th.huth@posteo.de>"
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5

* remotes/huth-gitlab/tags/pull-request-2018-11-20:
  qtest: log QEMU command line
  tests/ide: Free pcibus when finishing a test
  tests: add qmp/missing-any-arg test

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2018-11-20 10:56:57 +00:00
commit 3c035a41dc
3 changed files with 33 additions and 11 deletions

View File

@ -142,6 +142,10 @@ static void ide_test_start(const char *cmdline_fmt, ...)
static void ide_test_quit(void)
{
if (pcibus) {
qpci_free_pc(pcibus);
pcibus = NULL;
}
pc_alloc_uninit(guest_malloc);
guest_malloc = NULL;
qtest_end();

View File

@ -215,24 +215,28 @@ QTestState *qtest_init_without_qmp_handshake(bool use_oob,
qtest_add_abrt_handler(kill_qemu_hook_func, s);
command = g_strdup_printf("exec %s "
"-qtest unix:%s,nowait "
"-qtest-log %s "
"-chardev socket,path=%s,nowait,id=char0 "
"-mon chardev=char0,mode=control%s "
"-machine accel=qtest "
"-display none "
"%s", qemu_binary, socket_path,
getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
qmp_socket_path, use_oob ? ",x-oob=on" : "",
extra_args ?: "");
g_test_message("starting QEMU: %s", command);
s->qemu_pid = fork();
if (s->qemu_pid == 0) {
setenv("QEMU_AUDIO_DRV", "none", true);
command = g_strdup_printf("exec %s "
"-qtest unix:%s,nowait "
"-qtest-log %s "
"-chardev socket,path=%s,nowait,id=char0 "
"-mon chardev=char0,mode=control%s "
"-machine accel=qtest "
"-display none "
"%s", qemu_binary, socket_path,
getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null",
qmp_socket_path, use_oob ? ",x-oob=on" : "",
extra_args ?: "");
execlp("/bin/sh", "sh", "-c", command, NULL);
exit(1);
}
g_free(command);
s->fd = socket_accept(sock);
if (s->fd >= 0) {
s->qmp_fd = socket_accept(qmpsock);

View File

@ -318,6 +318,19 @@ static void test_qmp_preconfig(void)
qtest_quit(qs);
}
static void test_qmp_missing_any_arg(void)
{
QTestState *qts;
QDict *resp;
qts = qtest_init(common_args);
resp = qtest_qmp(qts, "{'execute': 'qom-set', 'arguments':"
" { 'path': '/machine', 'property': 'rtc-time' } }");
g_assert_nonnull(resp);
qmp_assert_error_class(resp, "GenericError");
qtest_quit(qts);
}
int main(int argc, char *argv[])
{
g_test_init(&argc, &argv, NULL);
@ -325,6 +338,7 @@ int main(int argc, char *argv[])
qtest_add_func("qmp/protocol", test_qmp_protocol);
qtest_add_func("qmp/oob", test_qmp_oob);
qtest_add_func("qmp/preconfig", test_qmp_preconfig);
qtest_add_func("qmp/missing-any-arg", test_qmp_missing_any_arg);
return g_test_run();
}