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
Thomas Huth Sept. 3, 2020, 5:58 a.m. UTC | #2
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)