diff mbox series

[2/2] tests: fw_cfg: add reboot_timeout test case

Message ID 20181028124004.30494-3-liq3ea@163.com (mailing list archive)
State New, archived
Headers show
Series test: fw_cfg: add reboot-timeout test case | expand

Commit Message

Li Qiang Oct. 28, 2018, 12:40 p.m. UTC
Signed-off-by: Li Qiang <liq3ea@163.com>
---
 tests/fw_cfg-test.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Oct. 30, 2018, 12:08 a.m. UTC | #1
On 28/10/18 13:40, Li Qiang wrote:
> Signed-off-by: Li Qiang <liq3ea@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?)

>   
>       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();
>   
>
li qiang Oct. 30, 2018, 1:20 a.m. UTC | #2
在 2018/10/30 8:08, Philippe Mathieu-Daudé 写道:
> On 28/10/18 13:40, Li Qiang wrote:
>> Signed-off-by: Li Qiang <liq3ea@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();
>>
>
Li Qiang Oct. 30, 2018, 4:33 a.m. UTC | #3
At 2018-10-30 08:08:55, "Philippe Mathieu-Daudé" <philmd@redhat.com> wrote:
>On 28/10/18 13:40, Li Qiang wrote:
>> Signed-off-by: Li Qiang <liq3ea@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);

>


Hi here I think use qtest_add_func is ok because there is no need
to make such an exception as all of them uses qtest_add_func.


Second, the uuid is also uses by all the cases though some of them are not needed.
Third, the -boot option will not affect the other cases.


Thanks,
Li Qiang


>... 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?)
>
>>   
>>       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();
>>   
>>
diff mbox series

Patch

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");
 
     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();