diff --git a/src/libraries/Native/Unix/System.Native/pal_signal.h b/src/libraries/Native/Unix/System.Native/pal_signal.h index 146fdabbfceb14..c3c21009dc836c 100644 --- a/src/libraries/Native/Unix/System.Native/pal_signal.h +++ b/src/libraries/Native/Unix/System.Native/pal_signal.h @@ -40,8 +40,8 @@ typedef enum PosixSignalSIGQUIT = -3, PosixSignalSIGTERM = -4, PosixSignalSIGCHLD = -5, - PosixSignalSIGWINCH = -6, - PosixSignalSIGCONT = -7, + PosixSignalSIGCONT = -6, + PosixSignalSIGWINCH = -7, PosixSignalSIGTTIN = -8, PosixSignalSIGTTOU = -9, PosixSignalSIGTSTP = -10 diff --git a/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/PosixSignalRegistrationTests.Unix.cs b/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/PosixSignalRegistrationTests.Unix.cs index 4b0c9fc01dea3a..f844b4d160a884 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/PosixSignalRegistrationTests.Unix.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/PosixSignalRegistrationTests.Unix.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. using Xunit; +using System.Diagnostics; +using System.Globalization; using System.Threading; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; @@ -57,7 +59,16 @@ public void SignalHandlerCalledForKnownSignals(PosixSignal s) semaphore.Release(); }); - kill(signal); + // Use 'kill' command with signal name to validate the signal pal mapping. + string sigArg = signalStr.StartsWith("SIG") ? signalStr.Substring(3) : signalStr; + using var process = Process.Start(new ProcessStartInfo + { + FileName = "/bin/sh", // Use a shell because not all platforms include a 'kill' executable. + ArgumentList = { "-c", $"kill -s {sigArg} {Environment.ProcessId.ToString()}" } + }); + process.WaitForExit(); + Assert.Equal(0, process.ExitCode); + bool entered = semaphore.Wait(SuccessTimeout); Assert.True(entered); }, s.ToString()).Dispose();