diff mbox

[FOR,2.1,1/5] tests/test-qmp-event: fix for GLib < 2.31

Message ID CAFEAcA8wWyajUks21rDsH2_7VrZp0sWoQQuyH6CvNX+-7QRrPA@mail.gmail.com
State Not Applicable
Headers show

Commit Message

Peter Maydell June 29, 2014, 8:31 p.m. UTC
On 27 June 2014 19:28, Luiz Capitulino <lcapitulino@redhat.com> wrote:
> On Wed, 25 Jun 2014 15:15:35 +0200
> Paolo Bonzini <pbonzini@redhat.com> wrote:
>
>> Il 25/06/2014 15:13, Luiz Capitulino ha scritto:
>> > On Tue, 24 Jun 2014 16:33:56 -0700
>> > Wenchao Xia <wenchaoqemu@gmail.com> wrote:
>> >
>> >> From: Paolo Bonzini <pbonzini@redhat.com>
>> >>
>> >> On old GLib, the test needs a g_thread_init call.
>> >>
>> >> Reported-by: Wenchao Xia <wenchaoqemu@gmail.com>
>> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>> >> Tested-by: Wenchao Xia <wenchaoqemu@gmail.com>
>> >> Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com>
>> >> ---
>> >>  tests/test-qmp-event.c |    1 +
>> >>  1 files changed, 1 insertions(+), 0 deletions(-)
>> >>
>> >> diff --git a/tests/test-qmp-event.c b/tests/test-qmp-event.c
>> >> index cb1e441..17c6444 100644
>> >> --- a/tests/test-qmp-event.c
>> >> +++ b/tests/test-qmp-event.c
>> >> @@ -251,6 +251,7 @@ static void test_event_d(TestEventData *data,
>> >>
>> >>  int main(int argc, char **argv)
>> >>  {
>> >> +    g_thread_init(NULL);
>> >>      qmp_event_set_func_emit(event_test_emit);
>> >>
>> >>      g_test_init(&argc, &argv, NULL);
>> >
>> > This breaks make check on F20:
>> >
>> > """
>> > /home/lcapitulino/work/src/upstream/qmp-unstable/tests/test-qmp-event.c: In function ‘main’:
>> > /home/lcapitulino/work/src/upstream/qmp-unstable/tests/test-qmp-event.c:254:5: error: ‘g_thread_init’ is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:260) [-Werror=deprecated-declarations]
>> >      g_thread_init(NULL);
>> >      ^
>> > cc1: all warnings being treated as errors
>> > make: *** [tests/test-qmp-event.o] Error 1
>> > """
>> >
>> > I think the best way to fix this is to make util/osdep.c:thread_init()
>> > public (maybe by moving it to include/glib-compat.h) and use that instead.
>> > Also, note that thread_init()'s body is duplicated in a few other places,
>> > so maybe those places should call it too.
>> >
>> > You may want to do this in a different series, then I can skip this patch
>> > and apply the rest of the series.
>> >
>>
>> Thanks Luiz, it's a good suggestion.
>
> Paolo, Wenchao, are one of one going to work on this?

Ping! Can we have at least a local fix using glib version #ifdefs before
Tuesday please? Otherwise we need to do something like this
to avoid shipping an rc0 which doesn't pass make check on some
systems.

                   tests/test-qapi-event.o

thanks
-- PMM

Comments

Paolo Bonzini June 30, 2014, 10:53 a.m. UTC | #1
Il 29/06/2014 22:31, Peter Maydell ha scritto:
> On 27 June 2014 19:28, Luiz Capitulino <lcapitulino@redhat.com> wrote:
>> On Wed, 25 Jun 2014 15:15:35 +0200
>> Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>>> Il 25/06/2014 15:13, Luiz Capitulino ha scritto:
>>>> On Tue, 24 Jun 2014 16:33:56 -0700
>>>> Wenchao Xia <wenchaoqemu@gmail.com> wrote:
>>>>
>>>>> From: Paolo Bonzini <pbonzini@redhat.com>
>>>>>
>>>>> On old GLib, the test needs a g_thread_init call.
>>>>>
>>>>> Reported-by: Wenchao Xia <wenchaoqemu@gmail.com>
>>>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>>>> Tested-by: Wenchao Xia <wenchaoqemu@gmail.com>
>>>>> Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com>
>>>>> ---
>>>>>  tests/test-qmp-event.c |    1 +
>>>>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>>>>
>>>>> diff --git a/tests/test-qmp-event.c b/tests/test-qmp-event.c
>>>>> index cb1e441..17c6444 100644
>>>>> --- a/tests/test-qmp-event.c
>>>>> +++ b/tests/test-qmp-event.c
>>>>> @@ -251,6 +251,7 @@ static void test_event_d(TestEventData *data,
>>>>>
>>>>>  int main(int argc, char **argv)
>>>>>  {
>>>>> +    g_thread_init(NULL);
>>>>>      qmp_event_set_func_emit(event_test_emit);
>>>>>
>>>>>      g_test_init(&argc, &argv, NULL);
>>>>
>>>> This breaks make check on F20:
>>>>
>>>> """
>>>> /home/lcapitulino/work/src/upstream/qmp-unstable/tests/test-qmp-event.c: In function ‘main’:
>>>> /home/lcapitulino/work/src/upstream/qmp-unstable/tests/test-qmp-event.c:254:5: error: ‘g_thread_init’ is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:260) [-Werror=deprecated-declarations]
>>>>      g_thread_init(NULL);
>>>>      ^
>>>> cc1: all warnings being treated as errors
>>>> make: *** [tests/test-qmp-event.o] Error 1
>>>> """
>>>>
>>>> I think the best way to fix this is to make util/osdep.c:thread_init()
>>>> public (maybe by moving it to include/glib-compat.h) and use that instead.
>>>> Also, note that thread_init()'s body is duplicated in a few other places,
>>>> so maybe those places should call it too.
>>>>
>>>> You may want to do this in a different series, then I can skip this patch
>>>> and apply the rest of the series.
>>>>
>>>
>>> Thanks Luiz, it's a good suggestion.
>>
>> Paolo, Wenchao, are one of one going to work on this?
>
> Ping! Can we have at least a local fix using glib version #ifdefs before
> Tuesday please? Otherwise we need to do something like this
> to avoid shipping an rc0 which doesn't pass make check on some
> systems.

I'll send the patch today.  thread_init() is a bit tricky because it is 
a __constructor__ but it is not included in the binary because no other 
function is included from the same file.

BTW, the make check limitation is currently mentioned in the changelog.

Paolo

> diff --git a/tests/Makefile b/tests/Makefile
> index 7e53d0d..a1a0dae 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -27,8 +27,6 @@ check-unit-y += tests/test-string-input-visitor$(EXESUF)
>  gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
>  check-unit-y += tests/test-string-output-visitor$(EXESUF)
>  gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
> -check-unit-y += tests/test-qmp-event$(EXESUF)
> -gcov-files-test-qmp-event-y += qapi/qmp-event.c
>  check-unit-y += tests/test-opts-visitor$(EXESUF)
>  gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
>  check-unit-y += tests/test-coroutine$(EXESUF)
> @@ -213,7 +211,7 @@ test-obj-y = tests/check-qint.o
> tests/check-qstring.o tests/check-qdict.o \
>         tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
>         tests/test-qmp-commands.o tests/test-visitor-serialization.o \
>         tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
> -       tests/test-opts-visitor.o tests/test-qmp-event.o
> +       tests/test-opts-visitor.o
>
>  test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
>                    tests/test-qapi-event.o
>
> thanks
> -- PMM
>
>
Wenchao Xia July 1, 2014, 2:32 p.m. UTC | #2
于 2014/6/30 18:53, Paolo Bonzini 写道:
> Il 29/06/2014 22:31, Peter Maydell ha scritto:
>> On 27 June 2014 19:28, Luiz Capitulino <lcapitulino@redhat.com> wrote:
>>> On Wed, 25 Jun 2014 15:15:35 +0200
>>> Paolo Bonzini <pbonzini@redhat.com> wrote:
>>>
>>>> Il 25/06/2014 15:13, Luiz Capitulino ha scritto:
>>>>> On Tue, 24 Jun 2014 16:33:56 -0700
>>>>> Wenchao Xia <wenchaoqemu@gmail.com> wrote:
>>>>>
>>>>>> From: Paolo Bonzini <pbonzini@redhat.com>
>>>>>>
>>>>>> On old GLib, the test needs a g_thread_init call.
>>>>>>
>>>>>> Reported-by: Wenchao Xia <wenchaoqemu@gmail.com>
>>>>>> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>>>>>> Tested-by: Wenchao Xia <wenchaoqemu@gmail.com>
>>>>>> Signed-off-by: Wenchao Xia <wenchaoqemu@gmail.com>
>>>>>> ---
>>>>>>  tests/test-qmp-event.c |    1 +
>>>>>>  1 files changed, 1 insertions(+), 0 deletions(-)
>>>>>>
>>>>>> diff --git a/tests/test-qmp-event.c b/tests/test-qmp-event.c
>>>>>> index cb1e441..17c6444 100644
>>>>>> --- a/tests/test-qmp-event.c
>>>>>> +++ b/tests/test-qmp-event.c
>>>>>> @@ -251,6 +251,7 @@ static void test_event_d(TestEventData *data,
>>>>>>
>>>>>>  int main(int argc, char **argv)
>>>>>>  {
>>>>>> +    g_thread_init(NULL);
>>>>>>      qmp_event_set_func_emit(event_test_emit);
>>>>>>
>>>>>>      g_test_init(&argc, &argv, NULL);
>>>>>
>>>>> This breaks make check on F20:
>>>>>
>>>>> """
>>>>> /home/lcapitulino/work/src/upstream/qmp-unstable/tests/test-qmp-event.c:
>>>>> In function ‘main’:
>>>>> /home/lcapitulino/work/src/upstream/qmp-unstable/tests/test-qmp-event.c:254:5:
>>>>> error: ‘g_thread_init’ is deprecated (declared at
>>>>> /usr/include/glib-2.0/glib/deprecated/gthread.h:260)
>>>>> [-Werror=deprecated-declarations]
>>>>>      g_thread_init(NULL);
>>>>>      ^
>>>>> cc1: all warnings being treated as errors
>>>>> make: *** [tests/test-qmp-event.o] Error 1
>>>>> """
>>>>>
>>>>> I think the best way to fix this is to make util/osdep.c:thread_init()
>>>>> public (maybe by moving it to include/glib-compat.h) and use that
>>>>> instead.
>>>>> Also, note that thread_init()'s body is duplicated in a few other
>>>>> places,
>>>>> so maybe those places should call it too.
>>>>>
>>>>> You may want to do this in a different series, then I can skip this
>>>>> patch
>>>>> and apply the rest of the series.
>>>>>
>>>>
>>>> Thanks Luiz, it's a good suggestion.
>>>
>>> Paolo, Wenchao, are one of one going to work on this?
>>
>> Ping! Can we have at least a local fix using glib version #ifdefs before
>> Tuesday please? Otherwise we need to do something like this
>> to avoid shipping an rc0 which doesn't pass make check on some
>> systems.
>
> I'll send the patch today.  thread_init() is a bit tricky because it is
> a __constructor__ but it is not included in the binary because no other
> function is included from the same file.
>
> BTW, the make check limitation is currently mentioned in the changelog.
>
> Paolo
>
   I am not free these days for the issue, thanks for fixing it instead
of me!


>> diff --git a/tests/Makefile b/tests/Makefile
>> index 7e53d0d..a1a0dae 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -27,8 +27,6 @@ check-unit-y +=
>> tests/test-string-input-visitor$(EXESUF)
>>  gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
>>  check-unit-y += tests/test-string-output-visitor$(EXESUF)
>>  gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
>> -check-unit-y += tests/test-qmp-event$(EXESUF)
>> -gcov-files-test-qmp-event-y += qapi/qmp-event.c
>>  check-unit-y += tests/test-opts-visitor$(EXESUF)
>>  gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
>>  check-unit-y += tests/test-coroutine$(EXESUF)
>> @@ -213,7 +211,7 @@ test-obj-y = tests/check-qint.o
>> tests/check-qstring.o tests/check-qdict.o \
>>         tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
>>         tests/test-qmp-commands.o tests/test-visitor-serialization.o \
>>         tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
>> -       tests/test-opts-visitor.o tests/test-qmp-event.o
>> +       tests/test-opts-visitor.o
>>
>>  test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \
>>                    tests/test-qapi-event.o
>>
>> thanks
>> -- PMM
>>
>>
>
diff mbox

Patch

diff --git a/tests/Makefile b/tests/Makefile
index 7e53d0d..a1a0dae 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -27,8 +27,6 @@  check-unit-y += tests/test-string-input-visitor$(EXESUF)
 gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c
 check-unit-y += tests/test-string-output-visitor$(EXESUF)
 gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
-check-unit-y += tests/test-qmp-event$(EXESUF)
-gcov-files-test-qmp-event-y += qapi/qmp-event.c
 check-unit-y += tests/test-opts-visitor$(EXESUF)
 gcov-files-test-opts-visitor-y = qapi/opts-visitor.c
 check-unit-y += tests/test-coroutine$(EXESUF)
@@ -213,7 +211,7 @@  test-obj-y = tests/check-qint.o
tests/check-qstring.o tests/check-qdict.o \
        tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \
        tests/test-qmp-commands.o tests/test-visitor-serialization.o \
        tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \
-       tests/test-opts-visitor.o tests/test-qmp-event.o
+       tests/test-opts-visitor.o

 test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \