diff mbox

[1/1] qtest:Fix the bug about disabling vnc causes "make check" hang

Message ID 1388393215-27511-1-git-send-email-keweihk@gmail.com
State New
Headers show

Commit Message

Kewei Yu Dec. 30, 2013, 8:46 a.m. UTC
When we disabling vnc from "./configure", the qemu can't use the vnc option.
So qtest can't use the "vnc -none ", otherwise "make check" will hang.

Signed-off-by: Kewei Yu <keweihk@gmail.com>
---
 tests/fdc-test.c |    4 ++++
 tests/ide-test.c |   11 ++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

Comments

Andreas Färber Dec. 31, 2013, 12:19 a.m. UTC | #1
Hi,

Am 30.12.2013 09:46, schrieb Kewei Yu:
> When we disabling vnc from "./configure", the qemu can't use the vnc option.
> So qtest can't use the "vnc -none ", otherwise "make check" will hang.
> 
> Signed-off-by: Kewei Yu <keweihk@gmail.com>
> ---
>  tests/fdc-test.c |    4 ++++
>  tests/ide-test.c |   11 ++++++++---
>  2 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/fdc-test.c b/tests/fdc-test.c
> index 38b5b17..80dbdfb 100644
> --- a/tests/fdc-test.c
> +++ b/tests/fdc-test.c
> @@ -538,7 +538,11 @@ int main(int argc, char **argv)
>      /* Run the tests */
>      g_test_init(&argc, &argv, NULL);
>  
> +#ifdef CONFIG_VNC
>      cmdline = g_strdup_printf("-vnc none ");
> +#else
> +    cmdline = NULL;
> +#endif
>  
>      qtest_start(cmdline);
>      qtest_irq_intercept_in(global_qtest, "ioapic");

I have already made -display none a default used by all qtests.
http://git.qemu.org/?p=qemu.git;a=commit;h=2ad645d2854746b55ddfd1d8e951f689cca5d78f

Is there a reason not to do the same for -vnc none?
That would consolidate the #ifdef'ery to one central point.

Regards,
Andreas

> diff --git a/tests/ide-test.c b/tests/ide-test.c
> index d5cec5a..da9e8dd 100644
> --- a/tests/ide-test.c
> +++ b/tests/ide-test.c
> @@ -377,10 +377,15 @@ static void test_bmdma_no_busmaster(void)
>      assert_bit_clear(inb(IDE_BASE + reg_status), DF | ERR);
>  }
>  
> +#ifdef CONFIG_VNC
> +#define QTEST_VNC_PARAM    "-vnc none ";
> +#else
> +#define QTEST_VNC_PARAM
> +#endif
>  static void test_bmdma_setup(void)
>  {
>      ide_test_start(
> -        "-vnc none "
> +        QTEST_VNC_PARAM
>          "-drive file=%s,if=ide,serial=%s,cache=writeback "
>          "-global ide-hd.ver=%s",
>          tmp_path, "testdisk", "version");
> @@ -410,7 +415,7 @@ static void test_identify(void)
>      int ret;
>  
>      ide_test_start(
> -        "-vnc none "
> +        QTEST_VNC_PARAM
>          "-drive file=%s,if=ide,serial=%s,cache=writeback "
>          "-global ide-hd.ver=%s",
>          tmp_path, "testdisk", "version");
> @@ -455,7 +460,7 @@ static void test_flush(void)
>      uint8_t data;
>  
>      ide_test_start(
> -        "-vnc none "
> +        QTEST_VNC_PARAM
>          "-drive file=blkdebug::%s,if=ide,cache=writeback",
>          tmp_path);
>
Stefan Hajnoczi Jan. 2, 2014, 4:08 a.m. UTC | #2
On Tue, Dec 31, 2013 at 01:19:02AM +0100, Andreas Färber wrote:
> Am 30.12.2013 09:46, schrieb Kewei Yu:
> > When we disabling vnc from "./configure", the qemu can't use the vnc option.
> > So qtest can't use the "vnc -none ", otherwise "make check" will hang.
> > 
> > Signed-off-by: Kewei Yu <keweihk@gmail.com>
> > ---
> >  tests/fdc-test.c |    4 ++++
> >  tests/ide-test.c |   11 ++++++++---
> >  2 files changed, 12 insertions(+), 3 deletions(-)
> > 
> > diff --git a/tests/fdc-test.c b/tests/fdc-test.c
> > index 38b5b17..80dbdfb 100644
> > --- a/tests/fdc-test.c
> > +++ b/tests/fdc-test.c
> > @@ -538,7 +538,11 @@ int main(int argc, char **argv)
> >      /* Run the tests */
> >      g_test_init(&argc, &argv, NULL);
> >  
> > +#ifdef CONFIG_VNC
> >      cmdline = g_strdup_printf("-vnc none ");
> > +#else
> > +    cmdline = NULL;
> > +#endif
> >  
> >      qtest_start(cmdline);
> >      qtest_irq_intercept_in(global_qtest, "ioapic");
> 
> I have already made -display none a default used by all qtests.
> http://git.qemu.org/?p=qemu.git;a=commit;h=2ad645d2854746b55ddfd1d8e951f689cca5d78f
> 
> Is there a reason not to do the same for -vnc none?
> That would consolidate the #ifdef'ery to one central point.

Agreed, let's set -vnc none by default in one place (if enabled by
./configure).

I wonder if we should use -nodefaults too?  That may require adding some
new options to explicitly set up devices used by existing tests.

Stefan
Markus Armbruster Jan. 7, 2014, 10:35 a.m. UTC | #3
Stefan Hajnoczi <stefanha@redhat.com> writes:

> On Tue, Dec 31, 2013 at 01:19:02AM +0100, Andreas Färber wrote:
>> Am 30.12.2013 09:46, schrieb Kewei Yu:
>> > When we disabling vnc from "./configure", the qemu can't use the vnc option.
>> > So qtest can't use the "vnc -none ", otherwise "make check" will hang.
>> > 
>> > Signed-off-by: Kewei Yu <keweihk@gmail.com>
>> > ---
>> >  tests/fdc-test.c |    4 ++++
>> >  tests/ide-test.c |   11 ++++++++---
>> >  2 files changed, 12 insertions(+), 3 deletions(-)
>> > 
>> > diff --git a/tests/fdc-test.c b/tests/fdc-test.c
>> > index 38b5b17..80dbdfb 100644
>> > --- a/tests/fdc-test.c
>> > +++ b/tests/fdc-test.c
>> > @@ -538,7 +538,11 @@ int main(int argc, char **argv)
>> >      /* Run the tests */
>> >      g_test_init(&argc, &argv, NULL);
>> >  
>> > +#ifdef CONFIG_VNC
>> >      cmdline = g_strdup_printf("-vnc none ");
>> > +#else
>> > +    cmdline = NULL;
>> > +#endif
>> >  
>> >      qtest_start(cmdline);
>> >      qtest_irq_intercept_in(global_qtest, "ioapic");
>> 
>> I have already made -display none a default used by all qtests.
>> http://git.qemu.org/?p=qemu.git;a=commit;h=2ad645d2854746b55ddfd1d8e951f689cca5d78f
>> 
>> Is there a reason not to do the same for -vnc none?
>> That would consolidate the #ifdef'ery to one central point.
>
> Agreed, let's set -vnc none by default in one place (if enabled by
> ./configure).
>
> I wonder if we should use -nodefaults too?  That may require adding some
> new options to explicitly set up devices used by existing tests.

Try and see what explodes?
Andreas Färber Jan. 7, 2014, 11:36 a.m. UTC | #4
Am 07.01.2014 11:35, schrieb Markus Armbruster:
> Stefan Hajnoczi <stefanha@redhat.com> writes:
>> On Tue, Dec 31, 2013 at 01:19:02AM +0100, Andreas Färber wrote:
>>> Am 30.12.2013 09:46, schrieb Kewei Yu:
>>>> diff --git a/tests/fdc-test.c b/tests/fdc-test.c
>>>> index 38b5b17..80dbdfb 100644
>>>> --- a/tests/fdc-test.c
>>>> +++ b/tests/fdc-test.c
>>>> @@ -538,7 +538,11 @@ int main(int argc, char **argv)
>>>>      /* Run the tests */
>>>>      g_test_init(&argc, &argv, NULL);
>>>>  
>>>> +#ifdef CONFIG_VNC
>>>>      cmdline = g_strdup_printf("-vnc none ");
>>>> +#else
>>>> +    cmdline = NULL;
>>>> +#endif
>>>>  
>>>>      qtest_start(cmdline);
>>>>      qtest_irq_intercept_in(global_qtest, "ioapic");
>>>
>>> I have already made -display none a default used by all qtests.
>>> http://git.qemu.org/?p=qemu.git;a=commit;h=2ad645d2854746b55ddfd1d8e951f689cca5d78f
>>>
>>> Is there a reason not to do the same for -vnc none?
>>> That would consolidate the #ifdef'ery to one central point.
>>
>> Agreed, let's set -vnc none by default in one place (if enabled by
>> ./configure).
>>
>> I wonder if we should use -nodefaults too?  That may require adding some
>> new options to explicitly set up devices used by existing tests.
> 
> Try and see what explodes?

I fear that will render my qom-test useless, which is supposed to test
our defaults. If -nodefaults drops serial ports, floppy drives, etc.
that will reduce its usefulness. Unless of course we find a way to
override -nodefaults with some generic -defaults options. :)
I haven't noticed anyone actually adding qtests along with new machines,
adding them to qom-test already required some poking of mine.

End of last year I was preparing some qtests for optional PCI devices,
but even such stubs are hard to share across multiple shoulders due to
resulting Makefile conflicts...

Andreas
Markus Armbruster Jan. 9, 2014, 1:33 p.m. UTC | #5
Andreas Färber <afaerber@suse.de> writes:

> Am 07.01.2014 11:35, schrieb Markus Armbruster:
>> Stefan Hajnoczi <stefanha@redhat.com> writes:
>>> On Tue, Dec 31, 2013 at 01:19:02AM +0100, Andreas Färber wrote:
>>>> Am 30.12.2013 09:46, schrieb Kewei Yu:
>>>>> diff --git a/tests/fdc-test.c b/tests/fdc-test.c
>>>>> index 38b5b17..80dbdfb 100644
>>>>> --- a/tests/fdc-test.c
>>>>> +++ b/tests/fdc-test.c
>>>>> @@ -538,7 +538,11 @@ int main(int argc, char **argv)
>>>>>      /* Run the tests */
>>>>>      g_test_init(&argc, &argv, NULL);
>>>>>  
>>>>> +#ifdef CONFIG_VNC
>>>>>      cmdline = g_strdup_printf("-vnc none ");
>>>>> +#else
>>>>> +    cmdline = NULL;
>>>>> +#endif
>>>>>  
>>>>>      qtest_start(cmdline);
>>>>>      qtest_irq_intercept_in(global_qtest, "ioapic");
>>>>
>>>> I have already made -display none a default used by all qtests.
>>>> http://git.qemu.org/?p=qemu.git;a=commit;h=2ad645d2854746b55ddfd1d8e951f689cca5d78f
>>>>
>>>> Is there a reason not to do the same for -vnc none?
>>>> That would consolidate the #ifdef'ery to one central point.
>>>
>>> Agreed, let's set -vnc none by default in one place (if enabled by
>>> ./configure).
>>>
>>> I wonder if we should use -nodefaults too?  That may require adding some
>>> new options to explicitly set up devices used by existing tests.
>> 
>> Try and see what explodes?
>
> I fear that will render my qom-test useless, which is supposed to test
> our defaults. If -nodefaults drops serial ports, floppy drives, etc.
> that will reduce its usefulness. Unless of course we find a way to
> override -nodefaults with some generic -defaults options. :)
> I haven't noticed anyone actually adding qtests along with new machines,
> adding them to qom-test already required some poking of mine.
>
> End of last year I was preparing some qtests for optional PCI devices,
> but even such stubs are hard to share across multiple shoulders due to
> resulting Makefile conflicts...
>
> Andreas

(Loosely) related: should we set QEMU_AUDIO_DRV=none to stop the "audio:
Could not init `oss' audio driver" complaints?
diff mbox

Patch

diff --git a/tests/fdc-test.c b/tests/fdc-test.c
index 38b5b17..80dbdfb 100644
--- a/tests/fdc-test.c
+++ b/tests/fdc-test.c
@@ -538,7 +538,11 @@  int main(int argc, char **argv)
     /* Run the tests */
     g_test_init(&argc, &argv, NULL);
 
+#ifdef CONFIG_VNC
     cmdline = g_strdup_printf("-vnc none ");
+#else
+    cmdline = NULL;
+#endif
 
     qtest_start(cmdline);
     qtest_irq_intercept_in(global_qtest, "ioapic");
diff --git a/tests/ide-test.c b/tests/ide-test.c
index d5cec5a..da9e8dd 100644
--- a/tests/ide-test.c
+++ b/tests/ide-test.c
@@ -377,10 +377,15 @@  static void test_bmdma_no_busmaster(void)
     assert_bit_clear(inb(IDE_BASE + reg_status), DF | ERR);
 }
 
+#ifdef CONFIG_VNC
+#define QTEST_VNC_PARAM    "-vnc none ";
+#else
+#define QTEST_VNC_PARAM
+#endif
 static void test_bmdma_setup(void)
 {
     ide_test_start(
-        "-vnc none "
+        QTEST_VNC_PARAM
         "-drive file=%s,if=ide,serial=%s,cache=writeback "
         "-global ide-hd.ver=%s",
         tmp_path, "testdisk", "version");
@@ -410,7 +415,7 @@  static void test_identify(void)
     int ret;
 
     ide_test_start(
-        "-vnc none "
+        QTEST_VNC_PARAM
         "-drive file=%s,if=ide,serial=%s,cache=writeback "
         "-global ide-hd.ver=%s",
         tmp_path, "testdisk", "version");
@@ -455,7 +460,7 @@  static void test_flush(void)
     uint8_t data;
 
     ide_test_start(
-        "-vnc none "
+        QTEST_VNC_PARAM
         "-drive file=blkdebug::%s,if=ide,cache=writeback",
         tmp_path);