* Re: [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case [not found] ` <4359b7c8.12ac0.169c3e7ba5d.Coremail.liq3ea@163.com> @ 2019-04-05 15:47 ` Philippe Mathieu-Daudé 2019-04-05 15:47 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2019-04-05 15:47 UTC (permalink / raw) To: 李强 Cc: thuth, lvivier, pbonzini, lersek, kraxel, qemu-devel, liq3ea On 3/28/19 11:45 AM, 李强 wrote: > Ping... > > What's your opinion, Philippe? Eh sorry my email client tagged this series as reviewed since your previous v1 was reviewed by Laszlo. I'll review your patches, but please increase the version between series next time so I won't miss it that easily ;) > > Thanks, > Li Qiang ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case 2019-04-05 15:47 ` [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case Philippe Mathieu-Daudé @ 2019-04-05 15:47 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2019-04-05 15:47 UTC (permalink / raw) To: 李强 Cc: lvivier, thuth, liq3ea, qemu-devel, kraxel, pbonzini, lersek [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain; charset="UTF-8", Size: 326 bytes --] On 3/28/19 11:45 AM, ÀîÇ¿ wrote: > Ping... > > What's your opinion, Philippe? Eh sorry my email client tagged this series as reviewed since your previous v1 was reviewed by Laszlo. I'll review your patches, but please increase the version between series next time so I won't miss it that easily ;) > > Thanks, > Li Qiang ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20190319023030.947-3-liq3ea@163.com>]
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case [not found] ` <20190319023030.947-3-liq3ea@163.com> @ 2019-04-18 21:01 ` Philippe Mathieu-Daudé 2019-04-18 21:01 ` Philippe Mathieu-Daudé ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2019-04-18 21:01 UTC (permalink / raw) To: Li Qiang, thuth, lvivier, pbonzini, lersek, kraxel; +Cc: qemu-devel, liq3ea Hi Li, On 3/19/19 3:30 AM, Li Qiang wrote: > Signed-off-by: Li Qiang <liq3ea@163.com> > --- > tests/fw_cfg-test.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c > index 1c5103fe1c..551b51e38f 100644 > --- a/tests/fw_cfg-test.c > +++ b/tests/fw_cfg-test.c > @@ -99,6 +99,17 @@ 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 = 0; > + size_t filesize; > + > + filesize = qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", > + &reboot_timeout, sizeof(reboot_timeout)); > + g_assert_cmpint(filesize, ==, sizeof(reboot_timeout)); > + g_assert_cmpint(reboot_timeout, ==, 15); > +} > + > int main(int argc, char **argv) > { > QTestState *s; > @@ -106,7 +117,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=15"); This modify all tests. I'd rather add a specific test with this option. Doing so, we can easily modify the timeout and add the <0 and >0xffff cases. Can you think of a 'splash-time' test (for commit 6912bb0b3d3b1)? Regards, Phil. > > fw_cfg = pc_fw_cfg_init(s); > > @@ -125,6 +137,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(); > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-04-18 21:01 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Philippe Mathieu-Daudé @ 2019-04-18 21:01 ` Philippe Mathieu-Daudé 2019-04-19 2:23 ` Li Qiang 2019-04-20 10:07 ` Li Qiang 2 siblings, 0 replies; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2019-04-18 21:01 UTC (permalink / raw) To: Li Qiang, thuth, lvivier, pbonzini, lersek, kraxel; +Cc: liq3ea, qemu-devel Hi Li, On 3/19/19 3:30 AM, Li Qiang wrote: > Signed-off-by: Li Qiang <liq3ea@163.com> > --- > tests/fw_cfg-test.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c > index 1c5103fe1c..551b51e38f 100644 > --- a/tests/fw_cfg-test.c > +++ b/tests/fw_cfg-test.c > @@ -99,6 +99,17 @@ 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 = 0; > + size_t filesize; > + > + filesize = qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", > + &reboot_timeout, sizeof(reboot_timeout)); > + g_assert_cmpint(filesize, ==, sizeof(reboot_timeout)); > + g_assert_cmpint(reboot_timeout, ==, 15); > +} > + > int main(int argc, char **argv) > { > QTestState *s; > @@ -106,7 +117,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=15"); This modify all tests. I'd rather add a specific test with this option. Doing so, we can easily modify the timeout and add the <0 and >0xffff cases. Can you think of a 'splash-time' test (for commit 6912bb0b3d3b1)? Regards, Phil. > > fw_cfg = pc_fw_cfg_init(s); > > @@ -125,6 +137,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(); > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-04-18 21:01 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Philippe Mathieu-Daudé 2019-04-18 21:01 ` Philippe Mathieu-Daudé @ 2019-04-19 2:23 ` Li Qiang 2019-04-19 2:23 ` Li Qiang 2019-04-20 10:07 ` Li Qiang 2 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2019-04-19 2:23 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Li Qiang, Thomas Huth, lvivier, Paolo Bonzini, Laszlo Ersek, Gerd Hoffmann, Qemu Developers Philippe Mathieu-Daudé <philmd@redhat.com> 于2019年4月19日周五 上午5:01写道: > Hi Li, > > On 3/19/19 3:30 AM, Li Qiang wrote: > > Signed-off-by: Li Qiang <liq3ea@163.com> > > --- > > tests/fw_cfg-test.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c > > index 1c5103fe1c..551b51e38f 100644 > > --- a/tests/fw_cfg-test.c > > +++ b/tests/fw_cfg-test.c > > @@ -99,6 +99,17 @@ 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 = 0; > > + size_t filesize; > > + > > + filesize = qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", > > + &reboot_timeout, sizeof(reboot_timeout)); > > + g_assert_cmpint(filesize, ==, sizeof(reboot_timeout)); > > + g_assert_cmpint(reboot_timeout, ==, 15); > > +} > > + > > int main(int argc, char **argv) > > { > > QTestState *s; > > @@ -106,7 +117,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=15"); > > This modify all tests. I'd rather add a specific test with this option. > Doing so, we can easily modify the timeout and add the <0 and >0xffff > cases. > > Ok, will do in the next revision. > Can you think of a 'splash-time' test (for commit 6912bb0b3d3b1)? Ok. PS: any comments in the first patch. Thanks, Li Qiang > > Regards, > > Phil. > > > > > fw_cfg = pc_fw_cfg_init(s); > > > > @@ -125,6 +137,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(); > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-04-19 2:23 ` Li Qiang @ 2019-04-19 2:23 ` Li Qiang 0 siblings, 0 replies; 20+ messages in thread From: Li Qiang @ 2019-04-19 2:23 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: lvivier, Thomas Huth, Li Qiang, Qemu Developers, Gerd Hoffmann, Paolo Bonzini, Laszlo Ersek Philippe Mathieu-Daudé <philmd@redhat.com> 于2019年4月19日周五 上午5:01写道: > Hi Li, > > On 3/19/19 3:30 AM, Li Qiang wrote: > > Signed-off-by: Li Qiang <liq3ea@163.com> > > --- > > tests/fw_cfg-test.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c > > index 1c5103fe1c..551b51e38f 100644 > > --- a/tests/fw_cfg-test.c > > +++ b/tests/fw_cfg-test.c > > @@ -99,6 +99,17 @@ 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 = 0; > > + size_t filesize; > > + > > + filesize = qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", > > + &reboot_timeout, sizeof(reboot_timeout)); > > + g_assert_cmpint(filesize, ==, sizeof(reboot_timeout)); > > + g_assert_cmpint(reboot_timeout, ==, 15); > > +} > > + > > int main(int argc, char **argv) > > { > > QTestState *s; > > @@ -106,7 +117,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=15"); > > This modify all tests. I'd rather add a specific test with this option. > Doing so, we can easily modify the timeout and add the <0 and >0xffff > cases. > > Ok, will do in the next revision. > Can you think of a 'splash-time' test (for commit 6912bb0b3d3b1)? Ok. PS: any comments in the first patch. Thanks, Li Qiang > > Regards, > > Phil. > > > > > fw_cfg = pc_fw_cfg_init(s); > > > > @@ -125,6 +137,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(); > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-04-18 21:01 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Philippe Mathieu-Daudé 2019-04-18 21:01 ` Philippe Mathieu-Daudé 2019-04-19 2:23 ` Li Qiang @ 2019-04-20 10:07 ` Li Qiang 2019-04-20 10:07 ` Li Qiang 2 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2019-04-20 10:07 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: Li Qiang, Thomas Huth, lvivier, Paolo Bonzini, Laszlo Ersek, Gerd Hoffmann, Qemu Developers Philippe Mathieu-Daudé <philmd@redhat.com> 于2019年4月19日周五 上午5:01写道: > Hi Li, > > On 3/19/19 3:30 AM, Li Qiang wrote: > > Signed-off-by: Li Qiang <liq3ea@163.com> > > --- > > tests/fw_cfg-test.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c > > index 1c5103fe1c..551b51e38f 100644 > > --- a/tests/fw_cfg-test.c > > +++ b/tests/fw_cfg-test.c > > @@ -99,6 +99,17 @@ 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 = 0; > > + size_t filesize; > > + > > + filesize = qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", > > + &reboot_timeout, sizeof(reboot_timeout)); > > + g_assert_cmpint(filesize, ==, sizeof(reboot_timeout)); > > + g_assert_cmpint(reboot_timeout, ==, 15); > > +} > > + > > int main(int argc, char **argv) > > { > > QTestState *s; > > @@ -106,7 +117,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=15"); > > This modify all tests. I'd rather add a specific test with this option. > Doing so, we can easily modify the timeout and add the <0 and >0xffff > cases. > > Can you think of a 'splash-time' test (for commit 6912bb0b3d3b1)? > > Hi Philippe, I have sent out the new revision patchset. Please notice as the new patchset changed a lot(refactor the fw_cfg_test and add two test cases) I don't bump the version. Thanks, Li Qiang > Regards, > > Phil. > > > > > fw_cfg = pc_fw_cfg_init(s); > > > > @@ -125,6 +137,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(); > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-04-20 10:07 ` Li Qiang @ 2019-04-20 10:07 ` Li Qiang 0 siblings, 0 replies; 20+ messages in thread From: Li Qiang @ 2019-04-20 10:07 UTC (permalink / raw) To: Philippe Mathieu-Daudé Cc: lvivier, Thomas Huth, Li Qiang, Qemu Developers, Gerd Hoffmann, Paolo Bonzini, Laszlo Ersek Philippe Mathieu-Daudé <philmd@redhat.com> 于2019年4月19日周五 上午5:01写道: > Hi Li, > > On 3/19/19 3:30 AM, Li Qiang wrote: > > Signed-off-by: Li Qiang <liq3ea@163.com> > > --- > > tests/fw_cfg-test.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/tests/fw_cfg-test.c b/tests/fw_cfg-test.c > > index 1c5103fe1c..551b51e38f 100644 > > --- a/tests/fw_cfg-test.c > > +++ b/tests/fw_cfg-test.c > > @@ -99,6 +99,17 @@ 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 = 0; > > + size_t filesize; > > + > > + filesize = qfw_cfg_get_file(fw_cfg, "etc/boot-fail-wait", > > + &reboot_timeout, sizeof(reboot_timeout)); > > + g_assert_cmpint(filesize, ==, sizeof(reboot_timeout)); > > + g_assert_cmpint(reboot_timeout, ==, 15); > > +} > > + > > int main(int argc, char **argv) > > { > > QTestState *s; > > @@ -106,7 +117,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=15"); > > This modify all tests. I'd rather add a specific test with this option. > Doing so, we can easily modify the timeout and add the <0 and >0xffff > cases. > > Can you think of a 'splash-time' test (for commit 6912bb0b3d3b1)? > > Hi Philippe, I have sent out the new revision patchset. Please notice as the new patchset changed a lot(refactor the fw_cfg_test and add two test cases) I don't bump the version. Thanks, Li Qiang > Regards, > > Phil. > > > > > fw_cfg = pc_fw_cfg_init(s); > > > > @@ -125,6 +137,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(); > > > > > ^ permalink raw reply [flat|nested] 20+ messages in thread
[parent not found: <20190319023030.947-2-liq3ea@163.com>]
* Re: [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file [not found] ` <20190319023030.947-2-liq3ea@163.com> @ 2019-04-19 7:03 ` Thomas Huth 2019-04-19 7:03 ` Thomas Huth 2019-04-21 18:48 ` Philippe Mathieu-Daudé 0 siblings, 2 replies; 20+ messages in thread From: Thomas Huth @ 2019-04-19 7:03 UTC (permalink / raw) To: Li Qiang, lvivier, pbonzini, philmd, lersek, kraxel; +Cc: qemu-devel, liq3ea On 19/03/2019 03.30, Li Qiang wrote: > This is useful to write qtest about fw_cfg file entry. > > Signed-off-by: Li Qiang <liq3ea@163.com> > --- > tests/libqos/fw_cfg.c | 45 +++++++++++++++++++++++++++++++++++++++++++ > tests/libqos/fw_cfg.h | 2 ++ > 2 files changed, 47 insertions(+) > > diff --git a/tests/libqos/fw_cfg.c b/tests/libqos/fw_cfg.c > index d0889d1e22..2df33df859 100644 > --- a/tests/libqos/fw_cfg.c > +++ b/tests/libqos/fw_cfg.c > @@ -16,12 +16,57 @@ > #include "libqos/fw_cfg.h" > #include "libqtest.h" > #include "qemu/bswap.h" > +#include "hw/nvram/fw_cfg.h" > > void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key) > { > fw_cfg->select(fw_cfg, key); > } > > +/* > + * The caller need check the return value. When the return value is > + * nonzero, it means that some bytes have been transferred. > + * > + * If the fw_cfg file in question is smaller than the allocated & passed-in > + * buffer, then the buffer has been populated only in part. > + * > + * If the fw_cfg file in question is larger than the passed-in > + * buffer, then the return value explains how much room would have been > + * necessary in total. And, while the caller's buffer has been fully > + * populated, it has received only a starting slice of the fw_cfg file. > + */ > +size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, > + void *data, size_t buflen) > +{ > + uint32_t count; > + uint32_t i; > + unsigned char *filesbuf = NULL; > + size_t dsize; > + FWCfgFile *pdir_entry; > + size_t filesize = 0; > + > + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, &count, sizeof(count)); > + count = be32_to_cpu(count); > + dsize = sizeof(uint32_t) + count * sizeof(struct fw_cfg_file); > + filesbuf = g_malloc0(dsize); > + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, filesbuf, dsize); If I get the code right, qfw_cfg_get() fills the whole buffer here... in that case, g_malloc() should be sufficient, so you don't need g_malloc0() here. Thomas ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file 2019-04-19 7:03 ` [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file Thomas Huth @ 2019-04-19 7:03 ` Thomas Huth 2019-04-21 18:48 ` Philippe Mathieu-Daudé 1 sibling, 0 replies; 20+ messages in thread From: Thomas Huth @ 2019-04-19 7:03 UTC (permalink / raw) To: Li Qiang, lvivier, pbonzini, philmd, lersek, kraxel; +Cc: liq3ea, qemu-devel On 19/03/2019 03.30, Li Qiang wrote: > This is useful to write qtest about fw_cfg file entry. > > Signed-off-by: Li Qiang <liq3ea@163.com> > --- > tests/libqos/fw_cfg.c | 45 +++++++++++++++++++++++++++++++++++++++++++ > tests/libqos/fw_cfg.h | 2 ++ > 2 files changed, 47 insertions(+) > > diff --git a/tests/libqos/fw_cfg.c b/tests/libqos/fw_cfg.c > index d0889d1e22..2df33df859 100644 > --- a/tests/libqos/fw_cfg.c > +++ b/tests/libqos/fw_cfg.c > @@ -16,12 +16,57 @@ > #include "libqos/fw_cfg.h" > #include "libqtest.h" > #include "qemu/bswap.h" > +#include "hw/nvram/fw_cfg.h" > > void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key) > { > fw_cfg->select(fw_cfg, key); > } > > +/* > + * The caller need check the return value. When the return value is > + * nonzero, it means that some bytes have been transferred. > + * > + * If the fw_cfg file in question is smaller than the allocated & passed-in > + * buffer, then the buffer has been populated only in part. > + * > + * If the fw_cfg file in question is larger than the passed-in > + * buffer, then the return value explains how much room would have been > + * necessary in total. And, while the caller's buffer has been fully > + * populated, it has received only a starting slice of the fw_cfg file. > + */ > +size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, > + void *data, size_t buflen) > +{ > + uint32_t count; > + uint32_t i; > + unsigned char *filesbuf = NULL; > + size_t dsize; > + FWCfgFile *pdir_entry; > + size_t filesize = 0; > + > + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, &count, sizeof(count)); > + count = be32_to_cpu(count); > + dsize = sizeof(uint32_t) + count * sizeof(struct fw_cfg_file); > + filesbuf = g_malloc0(dsize); > + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, filesbuf, dsize); If I get the code right, qfw_cfg_get() fills the whole buffer here... in that case, g_malloc() should be sufficient, so you don't need g_malloc0() here. Thomas ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file 2019-04-19 7:03 ` [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file Thomas Huth 2019-04-19 7:03 ` Thomas Huth @ 2019-04-21 18:48 ` Philippe Mathieu-Daudé 2019-04-21 18:48 ` Philippe Mathieu-Daudé 1 sibling, 1 reply; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2019-04-21 18:48 UTC (permalink / raw) To: Thomas Huth, Li Qiang, lvivier, pbonzini, lersek, kraxel Cc: qemu-devel, liq3ea Hi Thomas, On 4/19/19 9:03 AM, Thomas Huth wrote: > On 19/03/2019 03.30, Li Qiang wrote: >> This is useful to write qtest about fw_cfg file entry. >> >> Signed-off-by: Li Qiang <liq3ea@163.com> >> --- >> tests/libqos/fw_cfg.c | 45 +++++++++++++++++++++++++++++++++++++++++++ >> tests/libqos/fw_cfg.h | 2 ++ >> 2 files changed, 47 insertions(+) >> >> diff --git a/tests/libqos/fw_cfg.c b/tests/libqos/fw_cfg.c >> index d0889d1e22..2df33df859 100644 >> --- a/tests/libqos/fw_cfg.c >> +++ b/tests/libqos/fw_cfg.c >> @@ -16,12 +16,57 @@ >> #include "libqos/fw_cfg.h" >> #include "libqtest.h" >> #include "qemu/bswap.h" >> +#include "hw/nvram/fw_cfg.h" >> >> void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key) >> { >> fw_cfg->select(fw_cfg, key); >> } >> >> +/* >> + * The caller need check the return value. When the return value is >> + * nonzero, it means that some bytes have been transferred. >> + * >> + * If the fw_cfg file in question is smaller than the allocated & passed-in >> + * buffer, then the buffer has been populated only in part. >> + * >> + * If the fw_cfg file in question is larger than the passed-in >> + * buffer, then the return value explains how much room would have been >> + * necessary in total. And, while the caller's buffer has been fully >> + * populated, it has received only a starting slice of the fw_cfg file. >> + */ >> +size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, >> + void *data, size_t buflen) >> +{ >> + uint32_t count; >> + uint32_t i; >> + unsigned char *filesbuf = NULL; >> + size_t dsize; >> + FWCfgFile *pdir_entry; >> + size_t filesize = 0; >> + >> + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, &count, sizeof(count)); >> + count = be32_to_cpu(count); >> + dsize = sizeof(uint32_t) + count * sizeof(struct fw_cfg_file); >> + filesbuf = g_malloc0(dsize); >> + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, filesbuf, dsize); > > If I get the code right, qfw_cfg_get() fills the whole buffer here... > in that case, g_malloc() should be sufficient, so you don't need > g_malloc0() here. Correct. Apparently Li did address your suggestion in his next iteration of this patch (same subject, Message-Id: <20190420100056.116305-3-liq3ea@163.com>). Thanks, Phil. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file 2019-04-21 18:48 ` Philippe Mathieu-Daudé @ 2019-04-21 18:48 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2019-04-21 18:48 UTC (permalink / raw) To: Thomas Huth, Li Qiang, lvivier, pbonzini, lersek, kraxel Cc: liq3ea, qemu-devel Hi Thomas, On 4/19/19 9:03 AM, Thomas Huth wrote: > On 19/03/2019 03.30, Li Qiang wrote: >> This is useful to write qtest about fw_cfg file entry. >> >> Signed-off-by: Li Qiang <liq3ea@163.com> >> --- >> tests/libqos/fw_cfg.c | 45 +++++++++++++++++++++++++++++++++++++++++++ >> tests/libqos/fw_cfg.h | 2 ++ >> 2 files changed, 47 insertions(+) >> >> diff --git a/tests/libqos/fw_cfg.c b/tests/libqos/fw_cfg.c >> index d0889d1e22..2df33df859 100644 >> --- a/tests/libqos/fw_cfg.c >> +++ b/tests/libqos/fw_cfg.c >> @@ -16,12 +16,57 @@ >> #include "libqos/fw_cfg.h" >> #include "libqtest.h" >> #include "qemu/bswap.h" >> +#include "hw/nvram/fw_cfg.h" >> >> void qfw_cfg_select(QFWCFG *fw_cfg, uint16_t key) >> { >> fw_cfg->select(fw_cfg, key); >> } >> >> +/* >> + * The caller need check the return value. When the return value is >> + * nonzero, it means that some bytes have been transferred. >> + * >> + * If the fw_cfg file in question is smaller than the allocated & passed-in >> + * buffer, then the buffer has been populated only in part. >> + * >> + * If the fw_cfg file in question is larger than the passed-in >> + * buffer, then the return value explains how much room would have been >> + * necessary in total. And, while the caller's buffer has been fully >> + * populated, it has received only a starting slice of the fw_cfg file. >> + */ >> +size_t qfw_cfg_get_file(QFWCFG *fw_cfg, const char *filename, >> + void *data, size_t buflen) >> +{ >> + uint32_t count; >> + uint32_t i; >> + unsigned char *filesbuf = NULL; >> + size_t dsize; >> + FWCfgFile *pdir_entry; >> + size_t filesize = 0; >> + >> + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, &count, sizeof(count)); >> + count = be32_to_cpu(count); >> + dsize = sizeof(uint32_t) + count * sizeof(struct fw_cfg_file); >> + filesbuf = g_malloc0(dsize); >> + qfw_cfg_get(fw_cfg, FW_CFG_FILE_DIR, filesbuf, dsize); > > If I get the code right, qfw_cfg_get() fills the whole buffer here... > in that case, g_malloc() should be sufficient, so you don't need > g_malloc0() here. Correct. Apparently Li did address your suggestion in his next iteration of this patch (same subject, Message-Id: <20190420100056.116305-3-liq3ea@163.com>). Thanks, Phil. ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case @ 2019-01-20 7:13 Li Qiang 2019-01-20 7:13 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Li Qiang 0 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2019-01-20 7:13 UTC (permalink / raw) To: philmd, lersek, kraxel, thuth, lvivier, pbonzini Cc: qemu-devel, liq3ea, Li Qiang The first patch adds a util function to get the fw_cfg file entry. And second adds a reboot-timeout test case. Li Qiang (2): tests: fw_cfg: add a function to get the fw_cfg file entry tests: fw_cfg: add reboot_timeout test case tests/fw_cfg-test.c | 13 ++++++++++++- tests/libqos/fw_cfg.c | 33 +++++++++++++++++++++++++++++++++ tests/libqos/fw_cfg.h | 2 ++ 3 files changed, 47 insertions(+), 1 deletion(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-01-20 7:13 [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case Li Qiang @ 2019-01-20 7:13 ` Li Qiang 2019-01-21 21:38 ` Laszlo Ersek 0 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2019-01-20 7:13 UTC (permalink / raw) To: philmd, lersek, kraxel, thuth, lvivier, pbonzini Cc: qemu-devel, liq3ea, Li Qiang 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..c28e6c3fb5 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, ==, 15); +} + 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=15"); 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(); -- 2.17.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-01-20 7:13 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Li Qiang @ 2019-01-21 21:38 ` Laszlo Ersek 2019-01-22 1:28 ` Li Qiang 0 siblings, 1 reply; 20+ messages in thread From: Laszlo Ersek @ 2019-01-21 21:38 UTC (permalink / raw) To: Li Qiang, philmd, kraxel, thuth, lvivier, pbonzini; +Cc: qemu-devel, liq3ea On 01/20/19 08:13, 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..c28e6c3fb5 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, ==, 15); > +} > + You don't check the return status of qfw_cfg_get_file(), before reading "reboot_timeout". If the qfw_cfg_get_file() fails (returning 0), then the comparison will refer to an indeterminate value. Also, it's theoretically possible for qfw_cfg_get_file() to overwrite only part of the "reboot_timeout" object. So I think we need the function to transfer exactly (sizeof reboot_timeout) bytes. BTW, this reminds me, qfw_cfg_get_file() seems to return the number of bytes that would be necessary for transferring the entire file. That looks like a good idea, but it should be documented. Please add some docs on top of qfw_cfg_get_file(). > 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=15"); > > 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(); > > Looks OK otherwise. Thanks Laszlo ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-01-21 21:38 ` Laszlo Ersek @ 2019-01-22 1:28 ` Li Qiang 2019-01-22 12:10 ` Laszlo Ersek 0 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2019-01-22 1:28 UTC (permalink / raw) To: Laszlo Ersek Cc: Li Qiang, Philippe Mathieu-Daudé, Gerd Hoffmann, Thomas Huth, lvivier, Paolo Bonzini, Qemu Developers Laszlo Ersek <lersek@redhat.com> 于2019年1月22日周二 上午5:38写道: > On 01/20/19 08:13, 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..c28e6c3fb5 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, ==, 15); > > +} > > + > > You don't check the return status of qfw_cfg_get_file(), before reading > "reboot_timeout". If the qfw_cfg_get_file() fails (returning 0), then > the comparison will refer to an indeterminate value. Also, it's > theoretically possible for qfw_cfg_get_file() to overwrite only part of > the "reboot_timeout" object. > > Right. I will change in the next revision. > So I think we need the function to transfer exactly (sizeof > reboot_timeout) bytes. > > What does this mean? check the return of 'qfw_cfg_get_file' if it is sizeof(reboot_timeout)? > BTW, this reminds me, qfw_cfg_get_file() seems to return the number of > bytes that would be necessary for transferring the entire file. That > looks like a good idea, but it should be documented. Please add some > docs on top of qfw_cfg_get_file(). > > The docs like "return 0 means failed and non-zero means successful but the caller need check the exactly size to avoid partially file size" ? Thanks, Li Qiang > > 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=15"); > > > > 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(); > > > > > > Looks OK otherwise. > > Thanks > Laszlo > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2019-01-22 1:28 ` Li Qiang @ 2019-01-22 12:10 ` Laszlo Ersek 0 siblings, 0 replies; 20+ messages in thread From: Laszlo Ersek @ 2019-01-22 12:10 UTC (permalink / raw) To: Li Qiang Cc: Li Qiang, Philippe Mathieu-Daudé, Gerd Hoffmann, Thomas Huth, lvivier, Paolo Bonzini, Qemu Developers On 01/22/19 02:28, Li Qiang wrote: > Laszlo Ersek <lersek@redhat.com> 于2019年1月22日周二 上午5:38写道: > >> On 01/20/19 08:13, 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..c28e6c3fb5 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, ==, 15); >>> +} >>> + >> >> You don't check the return status of qfw_cfg_get_file(), before reading >> "reboot_timeout". If the qfw_cfg_get_file() fails (returning 0), then >> the comparison will refer to an indeterminate value. Also, it's >> theoretically possible for qfw_cfg_get_file() to overwrite only part of >> the "reboot_timeout" object. >> >> > Right. I will change in the next revision. > > > >> So I think we need the function to transfer exactly (sizeof >> reboot_timeout) bytes. >> >> > What does this mean? check the return of 'qfw_cfg_get_file' if it is > sizeof(reboot_timeout)? Yes, that's what I meant. >> BTW, this reminds me, qfw_cfg_get_file() seems to return the number of >> bytes that would be necessary for transferring the entire file. That >> looks like a good idea, but it should be documented. Please add some >> docs on top of qfw_cfg_get_file(). >> >> > The docs like "return 0 means failed and non-zero means successful but > the caller need check the exactly size to avoid partially file size" ? Yes. A bit more precisely, when the return value is nonzero, it means that some bytes have been transferred. If the fw_cfg file in question is smaller than the allocated & passed-in buffer, then the buffer has been populated only in part. Vice versa, if the fw_cfg file in question is larger than the passed-in buffer, then the return value explains how much room would have been necessary in total. And, while the caller's buffer has been fully populated, it has received only a starting slice of the fw_cfg file. In the comparison that follows qfw_cfg_get_file(), we want to be sure that the "reboot_timeout" integer object has been fully populated, *plus* that we aren't ignoring any trailing bytes from the fw_cfg file. Hence the strict equality on the size. Thanks Laszlo ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Qemu-devel] [PATCH 0/2] test: fw_cfg: add reboot-timeout test case @ 2018-10-28 12:40 Li Qiang 2018-10-28 12:40 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Li Qiang 0 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2018-10-28 12:40 UTC (permalink / raw) To: pbonzini, thuth, lvivier; +Cc: philmd, qemu-devel, Li Qiang This patchset is the test case for the following patch: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg05254.html Li Qiang (2): tests: fw_cfg: add a function to get the fw_cfg file entry tests: fw_cfg: add reboot_timeout test case tests/fw_cfg-test.c | 13 ++++++++++++- tests/libqos/fw_cfg.c | 30 ++++++++++++++++++++++++++++++ tests/libqos/fw_cfg.h | 2 ++ 3 files changed, 44 insertions(+), 1 deletion(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2018-10-28 12:40 [Qemu-devel] [PATCH 0/2] test: fw_cfg: add reboot-timeout " Li Qiang @ 2018-10-28 12:40 ` Li Qiang 2018-10-30 0:08 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 20+ messages in thread From: Li Qiang @ 2018-10-28 12:40 UTC (permalink / raw) To: pbonzini, thuth, lvivier; +Cc: philmd, qemu-devel, Li Qiang 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"); 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(); -- 2.17.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2018-10-28 12:40 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Li Qiang @ 2018-10-30 0:08 ` Philippe Mathieu-Daudé 2018-10-30 1:20 ` li qiang 2018-10-30 4:33 ` 李强 0 siblings, 2 replies; 20+ messages in thread From: Philippe Mathieu-Daudé @ 2018-10-30 0:08 UTC (permalink / raw) To: Li Qiang, pbonzini, thuth, lvivier; +Cc: qemu-devel 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(); > > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2018-10-30 0:08 ` Philippe Mathieu-Daudé @ 2018-10-30 1:20 ` li qiang 2018-10-30 4:33 ` 李强 1 sibling, 0 replies; 20+ messages in thread From: li qiang @ 2018-10-30 1:20 UTC (permalink / raw) To: Philippe Mathieu-Daudé, Li Qiang, pbonzini@redhat.com, thuth@redhat.com, lvivier@redhat.com Cc: qemu-devel@nongnu.org 在 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(); >> > ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout test case 2018-10-30 0:08 ` Philippe Mathieu-Daudé 2018-10-30 1:20 ` li qiang @ 2018-10-30 4:33 ` 李强 1 sibling, 0 replies; 20+ messages in thread From: 李强 @ 2018-10-30 4:33 UTC (permalink / raw) To: Philippe Mathieu-Daudé; +Cc: pbonzini, thuth, lvivier, qemu-devel 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(); >> >> ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2019-04-21 18:49 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20190319023030.947-1-liq3ea@163.com> [not found] ` <4359b7c8.12ac0.169c3e7ba5d.Coremail.liq3ea@163.com> 2019-04-05 15:47 ` [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case Philippe Mathieu-Daudé 2019-04-05 15:47 ` Philippe Mathieu-Daudé [not found] ` <20190319023030.947-3-liq3ea@163.com> 2019-04-18 21:01 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Philippe Mathieu-Daudé 2019-04-18 21:01 ` Philippe Mathieu-Daudé 2019-04-19 2:23 ` Li Qiang 2019-04-19 2:23 ` Li Qiang 2019-04-20 10:07 ` Li Qiang 2019-04-20 10:07 ` Li Qiang [not found] ` <20190319023030.947-2-liq3ea@163.com> 2019-04-19 7:03 ` [Qemu-devel] [PATCH 1/2] tests: fw_cfg: add a function to get the fw_cfg file Thomas Huth 2019-04-19 7:03 ` Thomas Huth 2019-04-21 18:48 ` Philippe Mathieu-Daudé 2019-04-21 18:48 ` Philippe Mathieu-Daudé 2019-01-20 7:13 [Qemu-devel] [PATCH 0/2] tests: fw_cfg: add reboot-timeout test case Li Qiang 2019-01-20 7:13 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Li Qiang 2019-01-21 21:38 ` Laszlo Ersek 2019-01-22 1:28 ` Li Qiang 2019-01-22 12:10 ` Laszlo Ersek -- strict thread matches above, loose matches on Subject: below -- 2018-10-28 12:40 [Qemu-devel] [PATCH 0/2] test: fw_cfg: add reboot-timeout " Li Qiang 2018-10-28 12:40 ` [Qemu-devel] [PATCH 2/2] tests: fw_cfg: add reboot_timeout " Li Qiang 2018-10-30 0:08 ` Philippe Mathieu-Daudé 2018-10-30 1:20 ` li qiang 2018-10-30 4:33 ` 李强
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).