]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #12469: fix signal order check of test_signal
authorVictor Stinner <victor.stinner@haypocalc.com>
Mon, 4 Jul 2011 23:32:06 +0000 (01:32 +0200)
committerVictor Stinner <victor.stinner@haypocalc.com>
Mon, 4 Jul 2011 23:32:06 +0000 (01:32 +0200)
When signals are unblocked, pending signal ared delivered in the reverse order
of their number (also on Linux, not only on FreeBSD 6).

Don't sort signals by their number if signals were not blocked (test_signum).

Lib/test/test_signal.py

index 21113bee5a3eb55935d56a5287fba014aeda5976..c349252dbc0780dd10f0c10227a058ac56a2654c 100644 (file)
@@ -240,10 +240,6 @@ class WakeupSignalTests(unittest.TestCase):
         def check_signum(signals):
             data = os.read(read, len(signals)+1)
             raised = struct.unpack('%uB' % len(data), data)
-            if sys.platform == 'freebsd6':
-                # when signals are unblocked, FreeBSD 6 delivers signals in the
-                # reverse order of their number
-                signals = tuple(sorted(signals, reverse=False))
             if raised != signals:
                 raise Exception("%r != %r" % (raised, signals))
 
@@ -323,6 +319,11 @@ class WakeupSignalTests(unittest.TestCase):
     @unittest.skipUnless(hasattr(signal, 'pthread_sigmask'),
                          'need signal.pthread_sigmask()')
     def test_pending(self):
+        signals = (signal.SIGUSR1, signal.SIGUSR2)
+        # when signals are unblocked, pending signal ared delivered in the
+        # reverse order of their number
+        signals = tuple(sorted(signals, reverse=True))
+
         self.check_wakeup("""def test():
             signum1 = signal.SIGUSR1
             signum2 = signal.SIGUSR2
@@ -335,7 +336,7 @@ class WakeupSignalTests(unittest.TestCase):
             os.kill(os.getpid(), signum2)
             # Unblocking the 2 signals calls the C signal handler twice
             signal.pthread_sigmask(signal.SIG_UNBLOCK, (signum1, signum2))
-        """,  signal.SIGUSR1, signal.SIGUSR2)
+        """,  *signals)
 
 
 @unittest.skipIf(sys.platform == "win32", "Not valid on Windows")