On 1/18/19 12:47 PM, Peter Maydell wrote: > On Thu, 17 Jan 2019 at 13:38, Thomas Huth <th...@redhat.com> wrote: >> >> Hi Peter! >> >> The following changes since commit 6f2f34177a25bffd6fd92a05e6e66c8d22d97094: >> >> Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into >> staging (2019-01-15 18:32:57 +0000) >> >> are available in the git repository at: >> >> https://gitlab.com/huth/qemu.git tags/pull-request-2019-01-17 >> >> for you to fetch changes up to 3f0832c85380321ef697d64342b389648f8abb1c: >> >> tests/hexloader-test: Don't pass -nographic to the QEMU under test >> (2019-01-17 14:25:12 +0100) >> >> ---------------------------------------------------------------- >> - Remove deprecated "ivshmem" legacy device >> - Bug fix for vhost-user-test >> - Use more CONFIG Makefile switches for qtests >> - Get rid of global_qtests in some more qtests >> - typedef cleanups >> - Fixes for compiling with Clang >> - Force C standard to gnu99 >> ---------------------------------------------------------------- > > In the netbsd VM, the ipmi-bt-test is consistently failing: > > MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))} > QTEST_QEMU_BINARY=i386-softmmu > /qemu-system-i386 QTEST_QEMU_IMG=qemu-img tests/ipmi-bt-test -m=quick > -k --tap < /dev/null | ./s > cripts/tap-driver.pl --test-name="ipmi-bt-test" > ** > ERROR:tests/ipmi-bt-test.c:319:test_connect: assertion failed: (rv == 1) > ERROR - too few tests run (expected 4, got 0) > [1] Abort trap (core dumped) MALLOC_PERTURB_=... | > Done(1) ./scripts/tap-dr... > /var/tmp/qemu-test.7opHvo/tests/Makefile.include:856: recipe for > target 'check-qtest-i386' faile > d > gmake: *** [check-qtest-i386] Error 1 > gmake: *** Waiting for unfinished jobs.... > > > This has been kind of intermittent for a while, I've seen > it on-and-off, but with this pullreq it's failed four times > in a row, so maybe something in here is making it less > intermittent.
This file does: qtest_add_func("/ipmi/extern/connect", test_connect); qtest_add_func("/ipmi/extern/bt_base", test_bt_base); qtest_add_func("/ipmi/extern/bt_enable_irq", test_enable_irq); qtest_add_func("/ipmi/extern/bt_base_irq", test_bt_base); ret = g_test_run(); The first "test" test_connect() binds emu_lfd, the 2nd test test_bt_base() calls bt_cmd() which also use emu_lfd... could it be unbound? This is racy, since (from g_test_run() doc): "In general, the tests and sub-suites within each suite are run in the order in which they are defined. [...] However, you should never make the actual result of a test depend on the order that tests are run in. If you need to ensure that some particular code runs before or after a given test case, use g_test_add(), which lets you specify setup and teardown functions."