Commit Graph

90 Commits

Author SHA1 Message Date
Nick Coghlan 60b3ac7482 Close #18396: fix spurious test_signal failure on Windows
signal.getsignal returns None for some signals if faulthandler
is enabled (Patch by Jeremy Kloth)
2013-08-03 22:56:30 +10:00
Victor Stinner 91f9bdd773 Issue #18238: Skip test_signal.test_sigwaitinfo_interrupted() on AIX
sigwaitinfo() can be interrupted on Linux (raises InterruptedError), but not on
AIX.
2013-06-17 21:51:56 +02:00
Benjamin Peterson c68a4a048c check windows fd validity (closes #16992) 2013-01-18 00:10:24 -05:00
Andrew Svetlov 5b89840d9c Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov 737fb89dd1 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Victor Stinner 643cd68ea4 Issue #13964: signal.sigtimedwait() timeout is now a float instead of a tuple
Add a private API to convert an int or float to a C timespec structure.
2012-03-02 22:54:03 +01:00
Charles-François Natali 027f9a3600 Issue #13084: Fix a test_signal failure: the delivery order is only defined for
real-time signals.
2011-10-02 18:36:05 +02:00
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