diff mbox series

[5/6] tests: handling signal on win32 properly

Message ID 20200902170054.810-6-luoyonggang@gmail.com
State New
Headers show
Series Green the msys2 CI make | expand

Commit Message

Yonggang Luo Sept. 2, 2020, 5 p.m. UTC
SIGABRT should use signal(SIGABRT, sigabrt_handler) to handle on win32

The error:
E:/CI-Cor-Ready/xemu/qemu.org/tests/test-replication.c:559:33: error: invalid use of undefined type 'struct sigaction'
  559 |     sigact = (struct sigaction) {
      |                                 ^

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/test-replication.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Paolo Bonzini Sept. 2, 2020, 5:04 p.m. UTC | #1
On 02/09/20 19:00, Yonggang Luo wrote:
> SIGABRT should use signal(SIGABRT, sigabrt_handler) to handle on win32
> 
> The error:
> E:/CI-Cor-Ready/xemu/qemu.org/tests/test-replication.c:559:33: error: invalid use of undefined type 'struct sigaction'
>   559 |     sigact = (struct sigaction) {
>       |                                 ^
> 
> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> ---
>  tests/test-replication.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tests/test-replication.c b/tests/test-replication.c
> index e0b03dafc2..9ab3666a90 100644
> --- a/tests/test-replication.c
> +++ b/tests/test-replication.c
> @@ -554,6 +554,9 @@ static void sigabrt_handler(int signo)
>  
>  static void setup_sigabrt_handler(void)
>  {
> +#ifdef _WIN32
> +    signal(SIGABRT, sigabrt_handler);
> +#else
>      struct sigaction sigact;
>  
>      sigact = (struct sigaction) {
> @@ -562,6 +565,7 @@ static void setup_sigabrt_handler(void)
>      };
>      sigemptyset(&sigact.sa_mask);
>      sigaction(SIGABRT, &sigact, NULL);
> +#endif
>  }
>  
>  int main(int argc, char **argv)
> 

This is already fixed by a patch from Thomas.

Paolo
Yonggang Luo Sept. 2, 2020, 5:09 p.m. UTC | #2
OK, waiting for it upstream.

On Thu, Sep 3, 2020 at 1:04 AM Paolo Bonzini <pbonzini@redhat.com> wrote:

> On 02/09/20 19:00, Yonggang Luo wrote:
> > SIGABRT should use signal(SIGABRT, sigabrt_handler) to handle on win32
> >
> > The error:
> > E:/CI-Cor-Ready/xemu/qemu.org/tests/test-replication.c:559:33: error:
> invalid use of undefined type 'struct sigaction'
> >   559 |     sigact = (struct sigaction) {
> >       |                                 ^
> >
> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> > ---
> >  tests/test-replication.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/tests/test-replication.c b/tests/test-replication.c
> > index e0b03dafc2..9ab3666a90 100644
> > --- a/tests/test-replication.c
> > +++ b/tests/test-replication.c
> > @@ -554,6 +554,9 @@ static void sigabrt_handler(int signo)
> >
> >  static void setup_sigabrt_handler(void)
> >  {
> > +#ifdef _WIN32
> > +    signal(SIGABRT, sigabrt_handler);
> > +#else
> >      struct sigaction sigact;
> >
> >      sigact = (struct sigaction) {
> > @@ -562,6 +565,7 @@ static void setup_sigabrt_handler(void)
> >      };
> >      sigemptyset(&sigact.sa_mask);
> >      sigaction(SIGABRT, &sigact, NULL);
> > +#endif
> >  }
> >
> >  int main(int argc, char **argv)
> >
>
> This is already fixed by a patch from Thomas.
>
> Paolo
>
>
Thomas Huth Sept. 3, 2020, 5:58 a.m. UTC | #3
On 02/09/2020 19.04, Paolo Bonzini wrote:
> On 02/09/20 19:00, Yonggang Luo wrote:
>> SIGABRT should use signal(SIGABRT, sigabrt_handler) to handle on win32
>>
>> The error:
>> E:/CI-Cor-Ready/xemu/qemu.org/tests/test-replication.c:559:33: error: invalid use of undefined type 'struct sigaction'
>>   559 |     sigact = (struct sigaction) {
>>       |                                 ^
>>
>> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
>> ---
>>  tests/test-replication.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/tests/test-replication.c b/tests/test-replication.c
>> index e0b03dafc2..9ab3666a90 100644
>> --- a/tests/test-replication.c
>> +++ b/tests/test-replication.c
>> @@ -554,6 +554,9 @@ static void sigabrt_handler(int signo)
>>  
>>  static void setup_sigabrt_handler(void)
>>  {
>> +#ifdef _WIN32
>> +    signal(SIGABRT, sigabrt_handler);
>> +#else
>>      struct sigaction sigact;
>>  
>>      sigact = (struct sigaction) {
>> @@ -562,6 +565,7 @@ static void setup_sigabrt_handler(void)
>>      };
>>      sigemptyset(&sigact.sa_mask);
>>      sigaction(SIGABRT, &sigact, NULL);
>> +#endif
>>  }
>>  
>>  int main(int argc, char **argv)
>>
> 
> This is already fixed by a patch from Thomas.

Well, my patch was to simply disable test-replication on Windows ... if
it is working with this modification here, that's certainly better than
disabling it.

 Thomas
Paolo Bonzini Sept. 3, 2020, 7 a.m. UTC | #4
Yes, I guess that's true. I will queue it instead.

Paolo

Il gio 3 set 2020, 07:58 Thomas Huth <thuth@redhat.com> ha scritto:

> On 02/09/2020 19.04, Paolo Bonzini wrote:
> > On 02/09/20 19:00, Yonggang Luo wrote:
> >> SIGABRT should use signal(SIGABRT, sigabrt_handler) to handle on win32
> >>
> >> The error:
> >> E:/CI-Cor-Ready/xemu/qemu.org/tests/test-replication.c:559:33: error:
> invalid use of undefined type 'struct sigaction'
> >>   559 |     sigact = (struct sigaction) {
> >>       |                                 ^
> >>
> >> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
> >> ---
> >>  tests/test-replication.c | 4 ++++
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/tests/test-replication.c b/tests/test-replication.c
> >> index e0b03dafc2..9ab3666a90 100644
> >> --- a/tests/test-replication.c
> >> +++ b/tests/test-replication.c
> >> @@ -554,6 +554,9 @@ static void sigabrt_handler(int signo)
> >>
> >>  static void setup_sigabrt_handler(void)
> >>  {
> >> +#ifdef _WIN32
> >> +    signal(SIGABRT, sigabrt_handler);
> >> +#else
> >>      struct sigaction sigact;
> >>
> >>      sigact = (struct sigaction) {
> >> @@ -562,6 +565,7 @@ static void setup_sigabrt_handler(void)
> >>      };
> >>      sigemptyset(&sigact.sa_mask);
> >>      sigaction(SIGABRT, &sigact, NULL);
> >> +#endif
> >>  }
> >>
> >>  int main(int argc, char **argv)
> >>
> >
> > This is already fixed by a patch from Thomas.
>
> Well, my patch was to simply disable test-replication on Windows ... if
> it is working with this modification here, that's certainly better than
> disabling it.
>
>  Thomas
>
>
diff mbox series

Patch

diff --git a/tests/test-replication.c b/tests/test-replication.c
index e0b03dafc2..9ab3666a90 100644
--- a/tests/test-replication.c
+++ b/tests/test-replication.c
@@ -554,6 +554,9 @@  static void sigabrt_handler(int signo)
 
 static void setup_sigabrt_handler(void)
 {
+#ifdef _WIN32
+    signal(SIGABRT, sigabrt_handler);
+#else
     struct sigaction sigact;
 
     sigact = (struct sigaction) {
@@ -562,6 +565,7 @@  static void setup_sigabrt_handler(void)
     };
     sigemptyset(&sigact.sa_mask);
     sigaction(SIGABRT, &sigact, NULL);
+#endif
 }
 
 int main(int argc, char **argv)