| ... | ... | @@ -739,7 +739,7 @@ test "shutdown socket" { |
| 739 | 739 | os.closeSocket(sock); |
| 740 | 740 | } |
| 741 | 741 | |
| 742 | | var signal_test_failed = true; |
| 742 | var signal_test_handler_called_count: u32 = 0; |
| 743 | 743 | |
| 744 | 744 | test "sigaction" { |
| 745 | 745 | if (native_os == .wasi or native_os == .windows) |
| ... | ... | @@ -756,11 +756,11 @@ test "sigaction" { |
| 756 | 756 | switch (native_os) { |
| 757 | 757 | .netbsd => { |
| 758 | 758 | if (sig == os.SIG.USR1 and sig == info.info.signo) |
| 759 | | signal_test_failed = false; |
| 759 | signal_test_handler_called_count += 1; |
| 760 | 760 | }, |
| 761 | 761 | else => { |
| 762 | 762 | if (sig == os.SIG.USR1 and sig == info.signo) |
| 763 | | signal_test_failed = false; |
| 763 | signal_test_handler_called_count += 1; |
| 764 | 764 | }, |
| 765 | 765 | } |
| 766 | 766 | } |
| ... | ... | @@ -782,10 +782,19 @@ test "sigaction" { |
| 782 | 782 | try testing.expect((old_sa.flags & os.SA.SIGINFO) != 0); |
| 783 | 783 | // Invoke the handler. |
| 784 | 784 | try os.raise(os.SIG.USR1); |
| 785 | | try testing.expect(signal_test_failed == false); |
| 785 | try testing.expect(signal_test_handler_called_count == 1); |
| 786 | 786 | // Check if the handler has been correctly reset to SIG_DFL |
| 787 | 787 | try os.sigaction(os.SIG.USR1, null, &old_sa); |
| 788 | 788 | try testing.expectEqual(os.SIG.DFL, old_sa.handler.handler); |
| 789 | // ensure we can ignore a signal |
| 790 | sa.handler = .{ .handler = os.SIG.IGN }; |
| 791 | try os.sigaction(os.SIG.USR1, &sa, null); |
| 792 | // and ensure it is now ignored |
| 793 | try os.raise(os.SIG.USR1); |
| 794 | try testing.expect(signal_test_handler_called_count == 1); |
| 795 | // and that ignored state is returned when querying |
| 796 | try os.sigaction(os.SIG.USR1, null, &old_sa); |
| 797 | try testing.expectEqual(os.SIG.IGN, old_sa.handler.handler.?); |
| 789 | 798 | } |
| 790 | 799 | |
| 791 | 800 | test "dup & dup2" { |