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

Yonggang Luo posted 6 patches 5 years, 1 month ago
Maintainers: Ed Maste <emaste@freebsd.org>, Cleber Rosa <crosa@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, Li-Wen Hsu <lwhsu@freebsd.org>, Wen Congyang <wencongyang2@huawei.com>, Richard Henderson <rth@twiddle.net>, Xie Changlong <xiechanglong.d@gmail.com>
There is a newer version of this series
[PATCH 5/6] tests: handling signal on win32 properly
Posted by Yonggang Luo 5 years, 1 month ago
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)
-- 
2.27.0.windows.1


Re: [PATCH 5/6] tests: handling signal on win32 properly
Posted by Paolo Bonzini 5 years, 1 month ago
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


Re: [PATCH 5/6] tests: handling signal on win32 properly
Posted by 罗勇刚 (Yonggang Luo) 5 years, 1 month ago
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
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo
Re: [PATCH 5/6] tests: handling signal on win32 properly
Posted by Thomas Huth 5 years, 1 month ago
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


Re: [PATCH 5/6] tests: handling signal on win32 properly
Posted by Paolo Bonzini 5 years, 1 month ago
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
>
>