Commit Graph

83 Commits

Author SHA1 Message Date
Victor Stinner 5dd470ef1d Issue #12469: fix signal order check of test_signal
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).
2011-07-05 01:32:06 +02:00
Victor Stinner 68757ac884 Issue #12469: test_signal checks wakeup signals order, except on freebsd6
On FreeBSD 6, when signals are unblocked, FreeBSD 6 delivers signals in the
reverse order of their number.
2011-07-05 01:15:08 +02:00
Victor Stinner 87e78ce1c6 Issue #12469: partial revert of 024827a9db64, freebsd6 thread initialization
* Don't create a thread at startup anymore to initialize the pthread library:
   it changes the behaviour of many functions related to signal handling like
   sigwait()
 * Reenable test_sigtimedwait_poll() on FreeBSD 6
2011-07-04 22:53:49 +02:00
Victor Stinner 0a01f13af8 Issue #12469: replace assertions by explicit if+raise 2011-07-04 18:06:35 +02:00
Victor Stinner d554cdf8b9 (merge 3.2) Issue #12469: Run wakeup and pending signal tests in a subprocess
to run the test in a fresh process with only one thread and to not change
signal handling of the parent process.
2011-07-04 17:49:40 +02:00
Victor Stinner e40b3aabfb Issue #12469: Run "wakeup" signal tests in subprocess to run the test in a
fresh process with only one thread and to not change signal handling of the
parent process.
2011-07-04 17:35:10 +02:00
Victor Stinner 19e5bcdd9c (merge 3.2) Issue #12363: increase the timeout of siginterrupt() tests
Move also the "ready" trigger after the installation of the signal handler and
the call to siginterrupt().

Use a timeout of 5 seconds instead of 3. Two seconds are supposed to be enough,
but some of our buildbots are really slow (especially the FreeBSD 6 VM).
2011-07-01 15:59:54 +02:00
Victor Stinner dfde0d4650 Issue #12363: increase the timeout of siginterrupt() tests
Move also the "ready" trigger after the installation of the signal handler and
the call to siginterrupt().

Use a timeout of 5 seconds instead of 3. Two seconds are supposed to be enough,
but some of our buildbots are really slow (especially the FreeBSD 6 VM).
2011-07-01 15:58:39 +02:00
Victor Stinner 8d64248c69 Issue #12363: improve siginterrupt() tests
Backport commits 968b9ff9a059 and aff0a7b0cb12 from the default branch to 3.2
branch. Extract of the changelog messages:

"The previous tests used time.sleep() to synchronize two processes. If the host
was too slow, the test could fail.

The new tests only use one process, but they use a subprocess to:

- have only one thread
- have a timeout on the blocking read (select cannot be used in the test,
select always fail with EINTR, the kernel doesn't restart it)
- not touch signal handling of the parent process"

and

"Add a basic synchronization code between the child and the parent processes:
the child writes "ready" to stdout."

I replaced .communicate(timeout=3.0) by an explicit waiting loop using
Popen.poll().
2011-07-01 15:24:50 +02:00
Victor Stinner 9e8b82f1e1 Issue #12303: run sig*wait*() tests in a subprocesss
... instead of using fork(): sig*wait*() functions behave differently (not
correctly) after a fork, especially on FreeBSD 6.

Skip also test_sigtimedwait_poll() on FreeBSD 6 because of a kernel bug.
2011-06-29 10:43:02 +02:00
Ross Lagerwall 7f485785dd Fix test_signal on Windows after #12303. 2011-06-25 15:03:52 +02:00
Ross Lagerwall bc808224b6 Issue #12303: Add sigwaitinfo() and sigtimedwait() to the signal module. 2011-06-25 12:13:40 +02:00
Victor Stinner e71db4450c Issue #12392: fix thread initialization on FreeBSD 6
On FreeBSD6, pthread_kill() doesn't work on the main thread before the creation
of the first thread. Create therefore a dummy thread (no-op) a startup to
initialize the pthread library.

Add also a test for this use case, test written by Charles-François Natali.
2011-06-24 20:52:27 +02:00
Victor Stinner 4527365ee4 Issue #12363: improve siginterrupt() tests
Add a basic synchronization code between the child and the parent processes:
the child writes "ready" to stdout.
2011-06-22 22:15:51 +02:00
Victor Stinner d628496323 Close #12363: fix a race condition in siginterrupt() tests
The previous tests used time.sleep() to synchronize two processes. If the host
was too slow, the test could fail.

The new tests only use one process, but they use a subprocess to:

 - have only one thread
 - have a timeout on the blocking read (select cannot be used in the test,
   select always fail with EINTR, the kernel doesn't restart it)
 - not touch signal handling of the parent process
2011-06-20 23:28:09 +02:00
Victor Stinner 415007e30d Issue #12316: Fix sigwait() test using threads
Spawn a new process instead of using fork(). Patch written by Charles-François
Natali.
2011-06-13 16:19:06 +02:00
Victor Stinner 7f294d1e19 Issue #8407: skip sigwait() tests if pthread_sigmask() is missing
The new tests now requires pthread_sigmask(). Skip the test if the function is
missing, e.g. if Python is compiled without threads.
2011-06-10 14:02:10 +02:00
Victor Stinner 46591664fa Issue #8407: write error message on sigwait test failure 2011-06-10 13:53:32 +02:00
Victor Stinner af4946020e Issue #8407: Make signal.sigwait() tests more reliable
Block the signal before calling sigwait(). Use os.fork() to ensure that we have
only one thread.

Initial patch written by Charles-François Natali.
2011-06-10 12:48:13 +02:00
Victor Stinner 10c30d6764 Issue #8407: signal.sigwait() releases the GIL
Initial patch by Charles-François Natali.
2011-06-10 01:39:53 +02:00
Victor Stinner 2082268025 Issue #8407: test_signal doesn't check signal delivery order
Tthe signal delivery order is not portable or reliable.
2011-05-31 22:31:09 +02:00
Victor Stinner 2a12974bca Close #12028: Make threading._get_ident() public, rename it to
threading.get_ident() and document it. This function was used by
_thread.get_ident().
2011-05-30 23:02:52 +02:00
Victor Stinner c13ef66649 Issue #8407: Fix the signal handler of the signal module: if it is called
twice, it now writes the number of the second signal into the wakeup fd.
2011-05-25 02:35:58 +02:00
Victor Stinner 3a7f0f05c1 Issue #8407: Remove debug code from test_signal
I don't think that we still need it.
2011-05-08 02:10:36 +02:00
Victor Stinner d49b1f14de Issue #8407: The signal handler writes the signal number as a single byte
instead of a nul byte into the wakeup file descriptor. So it is possible to
wait more than one signal and know which signals were raised.
2011-05-08 02:03:15 +02:00
Victor Stinner b3e7219abf Issue #8407: Add pthread_kill(), sigpending() and sigwait() functions to the
signal module.
2011-05-08 01:46:11 +02:00
Victor Stinner 35b300c5fd Issue #8407: signal.pthread_sigmask() returns a set instead of a list
Update the doc. Refactor also related tests.
2011-05-04 13:20:35 +02:00
Victor Stinner 6fd49e152a Issue #11998, issue #8407: workaround _tkinter issue in test_signal
The _tkinter module loads the Tcl library which creates a thread waiting events
in select(). This thread receives signals blocked by all other threads. We
cannot test blocked signals if the _tkinter module is loaded.
2011-05-04 12:38:03 +02:00
Victor Stinner f44ce8748d Issue #8407: disable faulthandler timeout thread on all platforms
The problem is not specific to Mac OS X.
2011-05-03 17:20:31 +02:00
Victor Stinner d0e516db50 Issue #8407: pthread_sigmask() checks immediatly if signal handlers have been
called. The test checks that SIG_UNBLOCK calls immediatly the signal handler of
the pending SIGUSR1. Improve also the tests using an exception (division by
zero) instead of a flag (a function attribute).
2011-05-03 14:57:12 +02:00
Victor Stinner 2d4a91e0d0 Issue #8407: Fix pthread_sigmask() tests on Mac OS X
Disable faulthandler timeout thread on Mac OS X: it interacts with
pthread_sigmask() tests.
2011-05-03 14:11:22 +02:00
Victor Stinner a929335961 Issue #8407, issue #11859: Add signal.pthread_sigmask() function to fetch
and/or change the signal mask of the calling thread.

Fix also tests of test_io using threads and an alarm: use pthread_sigmask() to
ensure that the SIGALRM signal is received by the main thread.

Original patch written by Jean-Paul Calderone.
2011-04-30 15:21:58 +02:00
Antoine Pitrou 8189ab85e3 Call reap_children() where appropriate 2011-03-20 17:35:32 +01:00
Ezio Melotti 19f2aeba67 Merged revisions 86596 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86596 | ezio.melotti | 2010-11-20 21:04:17 +0200 (Sat, 20 Nov 2010) | 1 line

  #9424: Replace deprecated assert* methods in the Python test suite.
........
2010-11-21 01:30:29 +00:00
Gregory P. Smith 397cd8a1fc Merged revisions 85586-85587,85596-85598 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85586 | gregory.p.smith | 2010-10-16 17:17:24 -0700 (Sat, 16 Oct 2010) | 2 lines

  fix for netbsd.
........
  r85587 | gregory.p.smith | 2010-10-16 17:43:10 -0700 (Sat, 16 Oct 2010) | 3 lines

  applying netbsd-wizs-mod.patch from issue5510 -
   fixes for netbsd (and dragonflybsd?)
........
  r85596 | gregory.p.smith | 2010-10-16 19:14:36 -0700 (Sat, 16 Oct 2010) | 6 lines

  Fix multiprocessing Semaphore's on netbsd5. SEM_VALUE_MAX is defined
  as (~0U) on NetBSD which was causing it to appear as -1 when used as
  a signed int for _multprocessing.SemLock.SEM_VALUE_MAX.  This works
  around the problem by substituting INT_MAX on systems where it appears
  negative when used as an int.
........
  r85597 | gregory.p.smith | 2010-10-16 19:57:19 -0700 (Sat, 16 Oct 2010) | 2 lines

  skip test_itimer_virtual on NetBSD to prevent the test suite from hanging.
........
  r85598 | gregory.p.smith | 2010-10-16 20:09:12 -0700 (Sat, 16 Oct 2010) | 2 lines

  Avoid hanging the test on netbsd5.
........
2010-10-17 04:23:21 +00:00
Brian Curtin eccd4d910d Merged revisions 85140 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85140 | brian.curtin | 2010-10-01 09:49:24 -0500 (Fri, 01 Oct 2010) | 4 lines

  Fix #10003. Add SIGBREAK to the set of valid signals on Windows.

  This fixes a regression noticed by bzr, introduced by issue #9324.
........
2010-10-01 15:09:53 +00:00
Brian Curtin 912443c861 Merged revisions 84556 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r84556 | brian.curtin | 2010-09-06 11:04:10 -0500 (Mon, 06 Sep 2010) | 7 lines

  Clean up the fix to #9324 with some of the suggestions raised on python-dev
  in response to the original checkin.

  Move the validation from the original loop into a switch statement,
  and adjust a platform check in the tests.
........
2010-09-06 16:10:04 +00:00
Brian Curtin 80cd4bff53 Merged revisions 83771 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83771 | brian.curtin | 2010-08-06 22:47:21 -0500 (Fri, 06 Aug 2010) | 3 lines

  Fix an assertRaises situation and typo. Also pass all tests to run_unittest
  rather than do it by platform -- the proper skips are in place already.
........
2010-08-07 03:52:38 +00:00
Brian Curtin 3f004b1cc0 Merged revisions 83763 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83763 | brian.curtin | 2010-08-06 14:27:32 -0500 (Fri, 06 Aug 2010) | 3 lines

  Fix #9324: Add parameter validation to signal.signal on Windows in order
  to prevent crashes.
........
2010-08-06 19:34:52 +00:00
Benjamin Peterson 9b140f650f Merged revisions 81201 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r81201 | benjamin.peterson | 2010-05-15 12:52:12 -0500 (Sat, 15 May 2010) | 9 lines

  Merged revisions 81200 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r81200 | benjamin.peterson | 2010-05-15 12:48:55 -0500 (Sat, 15 May 2010) | 1 line

    use TestCase skip method
  ........
................
2010-05-15 18:00:56 +00:00
Stefan Krah 174ba00050 Merged revisions 81188 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r81188 | stefan.krah | 2010-05-15 11:41:27 +0200 (Sat, 15 May 2010) | 10 lines

  Merged revisions 81185 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r81185 | stefan.krah | 2010-05-15 11:31:08 +0200 (Sat, 15 May 2010) | 4 lines

    If the timeout is exceeded, count the tests as skipped instead of just
    issuing a warning.
  ........
................
2010-05-15 09:45:07 +00:00
Jean-Paul Calderone 9c39bc7265 Merged revisions 81016 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r81016 | jean-paul.calderone | 2010-05-08 23:18:57 -0400 (Sat, 08 May 2010) | 9 lines

  Merged revisions 81007 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r81007 | jean-paul.calderone | 2010-05-08 16:06:02 -0400 (Sat, 08 May 2010) | 1 line

    Skip signal handler re-installation if it is not necessary.  Issue 8354.
  ........
................
2010-05-09 03:25:16 +00:00
R. David Murray 44546f89a8 Merged revisions 80296 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80296 | r.david.murray | 2010-04-20 21:51:57 -0400 (Tue, 20 Apr 2010) | 14 lines

  Merged revisions 80144 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80144 | r.david.murray | 2010-04-17 01:26:26 -0400 (Sat, 17 Apr 2010) | 8 lines

    Issue #3864: Skip three test_signal tests on freebsd6 due to platform bug.

    Two itimer tests and an interprocess signal test fail on FreeBSD 6 if
    any test that starts a thread runs before test_signal.  Since FreeBSD7
    does not show this behavior, the bug is most likely a platform bug,
    so this patch just skips the failing tests on freebsd6.
  ........
................
2010-04-21 01:59:28 +00:00
Stefan Krah f1da97304d Merged revisions 80240 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r80240 | stefan.krah | 2010-04-20 10:13:03 +0200 (Tue, 20 Apr 2010) | 15 lines

  Merged revisions 80238 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r80238 | stefan.krah | 2010-04-20 09:59:10 +0200 (Tue, 20 Apr 2010) | 9 lines


    1) The timeout in the itimer tests was too low for slow or heavily
       loaded machines.

    2) Even with the increased timeout, the OS does not guarantee that
       a process will get a certain amount of virtual time in 60s, so
       the failure is changed to a diagnostic.
  ........
................
2010-04-20 08:15:14 +00:00
Mark Dickinson 1e9d54c15a Merged revisions 76185 via svnmerge from
svn+ssh://pythondev@www.python.org/python/branches/py3k

................
  r76185 | mark.dickinson | 2009-11-09 20:08:57 +0000 (Mon, 09 Nov 2009) | 9 lines

  Merged revisions 76182 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r76182 | mark.dickinson | 2009-11-09 19:54:51 +0000 (Mon, 09 Nov 2009) | 1 line

    Add extra information to a test_signal failure message to aid diagnosis of buildbot failure.
  ........
................
2009-11-09 20:10:01 +00:00
Mark Dickinson 78373474d7 Merged revisions 75988 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r75988 | mark.dickinson | 2009-10-31 10:38:43 +0000 (Sat, 31 Oct 2009) | 9 lines

  Merged revisions 75986 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75986 | mark.dickinson | 2009-10-31 10:36:06 +0000 (Sat, 31 Oct 2009) | 2 lines

    Issue #7042:  Use a better mechanism for testing timers in test_signal.
  ........
................
2009-10-31 10:39:21 +00:00
Mark Dickinson 9507887544 Merged revisions 75238 via svnmerge from
svn+ssh://pythondev@www.python.org/python/branches/py3k

................
  r75238 | mark.dickinson | 2009-10-04 19:43:54 +0100 (Sun, 04 Oct 2009) | 11 lines

  Merged revisions 75236 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r75236 | mark.dickinson | 2009-10-04 19:38:39 +0100 (Sun, 04 Oct 2009) | 4 lines

    Issue #7042:  Fix test_signal failure on OS X 10.6 64-bit builds
    (and also, with luck, on the x86 FreeBSD buildbot), by making sure
    that some user time is used in test_itimer_virtual.
  ........
................
2009-10-04 18:47:48 +00:00
Georg Brandl ab91fdef1f Merged revisions 73715 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k

........
  r73715 | benjamin.peterson | 2009-07-01 01:06:06 +0200 (Mi, 01 Jul 2009) | 1 line

  convert old fail* assertions to assert*
........
2009-08-13 08:51:18 +00:00
Raymond Hettinger 722d8c30a5 Remove unused import 2009-06-18 22:21:03 +00:00
Raymond Hettinger 686057b8fa Use new form of with-statement instead of contextlib.nested(). 2009-06-04 00:11:54 +00:00