On Wed, 24 Aug 2022, Bin Meng wrote:
> From: Bin Meng <bin.m...@windriver.com>
>
> Single quotes in the arguments (oem_id='CRASH ') are not removed in
> the Windows environment before it is passed to the QEMU executable.
> The space in the argument causes the "-acpitable" option parser to
> think that all of its parameters are done, hence it complains:
>
> '-acpitable' requires one of 'data' or 'file'
>
> Change to use double quotes which works fine on all platforms.
>
> Also /dev/null does not work on win32, and nul should be used.
>
> Signed-off-by: Bin Meng <bin.m...@windriver.com>
> ---
>
> tests/qtest/bios-tables-test.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> index 36783966b0..0148ce388c 100644
> --- a/tests/qtest/bios-tables-test.c
> +++ b/tests/qtest/bios-tables-test.c
> @@ -1615,6 +1615,12 @@ static void test_acpi_virt_viot(void)
> free_test_data(&data);
> }
>
> +#ifndef _WIN32
> +# define DEV_NULL "/dev/null"
> +#else
> +# define DEV_NULL "nul"
> +#endif
> +
> static void test_acpi_q35_slic(void)
> {
> test_data data = {
> @@ -1622,9 +1628,9 @@ static void test_acpi_q35_slic(void)
> .variant = ".slic",
> };
>
> - test_acpi_one("-acpitable sig=SLIC,oem_id='CRASH ',oem_table_id='ME',"
> - "oem_rev=00002210,asl_compiler_id='qemu',"
> - "asl_compiler_rev=00000000,data=/dev/null",
> + test_acpi_one("-acpitable sig=SLIC,oem_id=\"CRASH \",oem_table_id=ME,"
> + "oem_rev=00002210,asl_compiler_id=qemu,"
ME and qemu should be surrounded by quotes. They are string arguments.
https://www.qemu.org/docs/master/interop/qemu-qmp-ref.html?highlight=oem_table_id
> + "asl_compiler_rev=00000000,data=" DEV_NULL,
> &data);
> free_test_data(&data);
> }
> --
> 2.34.1
>
>