在 2018/10/30 8:08, Philippe Mathieu-Daudé 写道: > On 28/10/18 13:40, Li Qiang wrote: >> Signed-off-by: Li Qiang <liq...@163.com> >> --- >> tests/fw_cfg-test.c | 13 ++++++++++++- >> 1 file changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c >> index 1c5103fe1c..37765f15f8 100644 >> --- a/tests/fw_cfg-test.c >> +++ b/tests/fw_cfg-test.c >> @@ -99,6 +99,15 @@ static void test_fw_cfg_boot_menu(void) >> g_assert_cmpint(qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_MENU), ==, >> boot_menu); >> } >> +static void test_fw_cfg_reboot_timeout(void) >> +{ >> + uint32_t reboot_timeout; >> + >> + qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", >> + &reboot_timeout, sizeof(reboot_timeout)); >> + g_assert_cmpint(reboot_timeout, <=, 65535); >> +} >> + >> int main(int argc, char **argv) >> { >> QTestState *s; >> @@ -106,7 +115,8 @@ int main(int argc, char **argv) >> g_test_init(&argc, &argv, NULL); >> - s = qtest_init("-uuid 4600cb32-38ec-4b2f-8acb-81c6ea54f2d8"); >> + s = qtest_init("-uuid 4600cb32-38ec-4b2f-8acb-81c6ea54f2d8" >> + " -boot reboot-timeout=4294967295"); > > I'd rather change this test to use qtest_add_data_func() ...: > > qtest_add_data_func("fw_cfg/reboot_timeout", "-boot > reboot-timeout=4294967295 ", test_fw_cfg_reboot_timeout); > > ... to avoid adding this command line option to all the tests, because > all tests are now failing: > > $ make check-qtest-i386 > [...] > ERROR:qemu/tests/fw_cfg-test.c:33:test_fw_cfg_signature: assertion > failed (buf == "QEMU"): ("\377\377\377\377" == "QEMU") > ERROR:qemu/tests/fw_cfg-test.c:40:test_fw_cfg_id: assertion failed: > ((id == 1) || (id == 3)) > ERROR:qemu/tests/fw_cfg-test.c:52:test_fw_cfg_uuid: assertion failed: > (memcmp(buf, uuid, sizeof(buf)) == 0) > ERROR:qemu/tests/fw_cfg-test.c:57:test_fw_cfg_ram_size: assertion > failed (qfw_cfg_get_u64(fw_cfg, FW_CFG_RAM_SIZE) == ram_size): (-1 == > 134217728) > ERROR:qemu/tests/fw_cfg-test.c:62:test_fw_cfg_nographic: assertion > failed (qfw_cfg_get_u16(fw_cfg, FW_CFG_NOGRAPHIC) == 0): (65535 == 0) > ERROR:qemu/tests/fw_cfg-test.c:67:test_fw_cfg_nb_cpus: assertion > failed (qfw_cfg_get_u16(fw_cfg, FW_CFG_NB_CPUS) == nb_cpus): (65535 == 1) > ERROR:qemu/tests/fw_cfg-test.c:72:test_fw_cfg_max_cpus: assertion > failed (qfw_cfg_get_u16(fw_cfg, FW_CFG_MAX_CPUS) == max_cpus): (65535 > == 1) > ERROR:qemu/tests/fw_cfg-test.c:80:test_fw_cfg_numa: assertion failed > (qfw_cfg_get_u64(fw_cfg, FW_CFG_NUMA) == nb_nodes): (-1 == 0) > ERROR:qemu/tests/fw_cfg-test.c:99:test_fw_cfg_boot_menu: assertion > failed (qfw_cfg_get_u16(fw_cfg, FW_CFG_BOOT_MENU) == boot_menu): > (65535 == 0) > > > (did you test your patch?) > Of course I test it, but only in x86_64.
Here is the result without the fix patch. xxxqemu# QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 tests/fw_cfg-test /x86_64/fw_cfg/signature: OK /x86_64/fw_cfg/id: OK /x86_64/fw_cfg/uuid: OK /x86_64/fw_cfg/ram_size: OK /x86_64/fw_cfg/nographic: OK /x86_64/fw_cfg/nb_cpus: OK /x86_64/fw_cfg/max_cpus: OK /x86_64/fw_cfg/numa: OK /x86_64/fw_cfg/boot_menu: OK /x86_64/fw_cfg/reboot_timeout: ** ERROR:tests/fw_cfg-test.c:108:test_fw_cfg_reboot_timeout: assertion failed (reboot_timeout <= 65535): (4294967295 <= 65535) Aborted xxxqemu# make check-qtest-x86_64 GTESTER check-qtest-x86_64 ** ERROR:tests/fw_cfg-test.c:108:test_fw_cfg_reboot_timeout: assertion failed (reboot_timeout <= 65535): (4294967295 <= 65535) GTester: last random seed: R02Sfed7191ede4ed60d4f3069f9ec808e73 xxxqemu/tests/Makefile.include:805: recipe for target 'check-qtest-x86_64' failed make: *** [check-qtest-x86_64] Error 1 I did it in i386 right now. Following is the results: xxxqemu# QTEST_QEMU_BINARY=i386-softmmu/qemu-system-i386 tests/fw_cfg-test /i386/fw_cfg/signature: OK /i386/fw_cfg/id: OK /i386/fw_cfg/uuid: OK /i386/fw_cfg/ram_size: OK /i386/fw_cfg/nographic: OK /i386/fw_cfg/nb_cpus: OK /i386/fw_cfg/max_cpus: OK /i386/fw_cfg/numa: OK /i386/fw_cfg/boot_menu: OK /i386/fw_cfg/reboot_timeout: ** ERROR:tests/fw_cfg-test.c:108:test_fw_cfg_reboot_timeout: assertion failed (reboot_timeout <= 65535): (4294967295 <= 65535) Aborted xxxqemu# make chek-qtest-i386 make: *** No rule to make target 'chek-qtest-i386'. Stop. xxxqemu# make check-qtest-i386 GTESTER check-qtest-i386 ** ERROR:tests/fw_cfg-test.c:108:test_fw_cfg_reboot_timeout: assertion failed (reboot_timeout <= 65535): (4294967295 <= 65535) GTester: last random seed: R02S7659b379e665961e0060afeb449948b2 xxxqemu/tests/Makefile.include:805: recipe for target 'check-qtest-i386' failed make: *** [check-qtest-i386] Error 1 Thanks, Li Qiang >> fw_cfg = pc_fw_cfg_init(s); >> @@ -125,6 +135,7 @@ int main(int argc, char **argv) >> qtest_add_func("fw_cfg/max_cpus", test_fw_cfg_max_cpus); >> qtest_add_func("fw_cfg/numa", test_fw_cfg_numa); >> qtest_add_func("fw_cfg/boot_menu", test_fw_cfg_boot_menu); >> + qtest_add_func("fw_cfg/reboot_timeout", >> test_fw_cfg_reboot_timeout); >> ret = g_test_run(); >> >