Commit Graph

38967 Commits

Author SHA1 Message Date
Trent Nelson e41b0061dd - Issue #2550: The approach used by client/server code for obtaining ports
to listen on in network-oriented tests has been refined in an effort to
  facilitate running multiple instances of the entire regression test suite
  in parallel without issue.  test_support.bind_port() has been fixed such
  that it will always return a unique port -- which wasn't always the case
  with the previous implementation, especially if socket options had been
  set that affected address reuse (i.e. SO_REUSEADDR, SO_REUSEPORT).  The
  new implementation of bind_port() will actually raise an exception if it
  is passed an AF_INET/SOCK_STREAM socket with either the SO_REUSEADDR or
  SO_REUSEPORT socket option set.  Furthermore, if available, bind_port()
  will set the SO_EXCLUSIVEADDRUSE option on the socket it's been passed.
  This currently only applies to Windows.  This option prevents any other
  sockets from binding to the host/port we've bound to, thus removing the
  possibility of the 'non-deterministic' behaviour, as Microsoft puts it,
  that occurs when a second SOCK_STREAM socket binds and accepts to a
  host/port that's already been bound by another socket.  The optional
  preferred port parameter to bind_port() has been removed.  Under no
  circumstances should tests be hard coding ports!

  test_support.find_unused_port() has also been introduced, which will pass
  a temporary socket object to bind_port() in order to obtain an unused port.
  The temporary socket object is then closed and deleted, and the port is
  returned.  This method should only be used for obtaining an unused port
  in order to pass to an external program (i.e. the -accept [port] argument
  to openssl's s_server mode) or as a parameter to a server-oriented class
  that doesn't give you direct access to the underlying socket used.

  Finally, test_support.HOST has been introduced, which should be used for
  the host argument of any relevant socket calls (i.e. bind and connect).

  The following tests were updated to following the new conventions:
    test_socket, test_smtplib, test_asyncore, test_ssl, test_httplib,
    test_poplib, test_ftplib, test_telnetlib, test_socketserver,
    test_asynchat and test_socket_ssl.

  It is now possible for multiple instances of the regression test suite to
  run in parallel without issue.
2008-04-08 23:47:30 +00:00
Amaury Forgeot d'Arc 02f33b43dc Add a NEWS entry for previous checkin 2008-04-08 23:10:07 +00:00
Amaury Forgeot d'Arc 7adc776ea6 Issue 2408: remove the _types module
It was only used as a helper in types.py to access types (GetSetDescriptorType and MemberDescriptorType),
when they can easily be obtained with python code.
These expressions even work with Jython.

I don't know what the future of the types module is; (cf. discussion in http://bugs.python.org/issue1605 )
at least this change makes it simpler.
2008-04-08 22:07:05 +00:00
Amaury Forgeot d'Arc 24f3c5c646 Prevent an error when inspect.isabstract() is called with something else than a new-style class. 2008-04-08 21:51:57 +00:00
Amaury Forgeot d'Arc 4b798bdf8a Issue2564: Prevent a hang in "import test.autotest", which runs the entire test
suite as a side-effect of importing the module.

- in test_capi, a thread tried to import other modules
- re.compile() imported sre_parse again on every call.
2008-04-08 21:27:42 +00:00
Andrew M. Kuchling abf8e015c2 Add items 2008-04-08 21:22:53 +00:00
Martin v. Löwis 775e10d9e6 Suppress compilation of py3_ files upon installation. 2008-04-08 16:48:35 +00:00
Andrew M. Kuchling eba0004198 Typographical fix: 32bit -> 32-bit, 64bit -> 64-bit 2008-04-08 01:33:10 +00:00
Andrew M. Kuchling 5b1070a32b Typo fix 2008-04-07 23:57:21 +00:00
Andrew M. Kuchling 34be7cec31 Write PEP 3127 section; add items 2008-04-07 23:57:07 +00:00
Georg Brandl 4a1672368d #2525: update timezone info examples in the docs. 2008-04-07 18:51:59 +00:00
Martin v. Löwis 1e72feced3 Make the "private CRT" case work, by editing the
manifest in DLLs to refer to the root copy of the CRT.
2008-04-07 16:34:04 +00:00
Martin v. Löwis 46a8be7a35 Drop support for 7.1 CRT. 2008-04-07 14:55:53 +00:00
Martin v. Löwis e411f8955f Make private_crt feature object a global variable. 2008-04-07 14:54:16 +00:00
Martin v. Löwis 54d489a97f Delete ALLUSERS property merged from CRT merge module, so that per-user installations become possible again. 2008-04-07 14:53:34 +00:00
Mark Summerfield 528576031d changed "2500 components" to "several thousand" since the number keeps
growning:-)
2008-04-07 07:39:23 +00:00
Gregory P. Smith c20adf8ef2 Use the new PyFile_IncUseCount & PyFile_DecUseCount calls appropriatly
within the standard library.  These modules use PyFile_AsFile and later
release the GIL while operating on the previously returned FILE*.
2008-04-07 06:33:21 +00:00
Martin v. Löwis d918e4e068 Bug #2388: Fix gcc warnings when compiling with --enable-unicode=ucs4. 2008-04-07 03:08:28 +00:00
Mark Hammond 295814e463 correct heading underline for new "Cross-compiling on Windows" section 2008-04-07 01:59:40 +00:00
Mark Hammond 495cf99aaf Issue #2513: enable 64bit cross compilation on windows. 2008-04-07 01:53:39 +00:00
Gregory P. Smith aa63d0d4af Make file objects as thread safe as the underlying libc FILE* implementation.
close() will now raise an IOError if any operations on the file object
are currently in progress in other threads.

Most code was written by Antoine Pitrou (pitrou).  Additional testing,
documentation and test suite cleanup done by me (gregory.p.smith).

Fixes issue 815646 and 595601 (as well as many other bugs and
references to this problem dating back to the dawn of Python).
2008-04-06 23:11:17 +00:00
Jeffrey Yasskin ee76777846 Add enough debugging information to diagnose failures where the
HandlerBException is ignored, and fix one such problem, where it was thrown
during the __del__ method of the previous Popen object.

We may want to find a better way of printing verbose information so it's not
spammy when the test passes.
2008-04-06 23:04:28 +00:00
Trent Nelson 5a4d66824a Don't run kill_python as part of the build process. Change the buildbots so they have to call it explicitly instead. 2008-04-06 20:51:23 +00:00
Skip Montanaro 28112d0cb6 type 2008-04-06 17:05:57 +00:00
Mark Hammond 8a3c8716e8 From issue 1753245 - better _winreg support for x64.
Adds _winreg.DisableReflectionKey, EnableReflectionKey, QueryReflectionKey,
KEY_WOW64_64KEY and KEY_WOW64_32KEY.
2008-04-06 01:42:06 +00:00
Thomas Wouters 2fab8f1abb Fix test_distutils to not fail when running 'make test' from a Python build
directory that is not the source directory (ie, one created using
'/path/to/source/configure'.) Leaves this test very slightly degraded in
that particular case, compared to the build-in-sourcedir case, but that case
isn't a particularly strong test either: neither test the actual path that
will be used after installing. There isn't a particularly good way to test
this, and a poor test beats a failing test.
2008-04-05 23:39:15 +00:00
Skip Montanaro 9e0fa7a13e Declare inittimezone static. 2008-04-05 19:47:47 +00:00
Andrew M. Kuchling 2185241a63 Write PEP 3119 section 2008-04-05 18:15:30 +00:00
Georg Brandl 3b1202dfe8 Mention that the tuple returned by __reduce__ is pickled as normal. 2008-04-05 17:45:58 +00:00
Andrew M. Kuchling 217057f098 Markup fixes; write PEP 3118 section 2008-04-05 15:57:46 +00:00
Martin v. Löwis db508be07e Add script to merge msvcr90. 2008-04-05 15:50:58 +00:00
Martin v. Löwis 4dc3415def Add two features to distinguish between private and SxS CRT. 2008-04-05 15:48:36 +00:00
Martin v. Löwis 5f187fba31 Extend sizes of various fields, to support the CRT90 merge module. 2008-04-05 15:45:25 +00:00
Neal Norwitz 8510195ceb Prevent test_sqlite from hanging on older versions of sqlite.
The problem is that when trying to do the second insert, sqlite seems to sleep
for a very long time.  Here is the output from strace:

  read(6, "SQLite format 3\0\4\0\1\1\0@  \0\0\0\1\0\0\0\0"..., 1024) = 1024
  nanosleep({4294, 966296000},  <unfinished ...>

I don't know which version this was fixed in, but 3.2.1 definitely fails.
2008-04-05 04:26:31 +00:00
Andrew M. Kuchling b2ff8a7b0d Various edits 2008-04-05 03:38:39 +00:00
Andrew M. Kuchling 1f2af8c6e4 Markup fix; explain what interval timers do; typo fix 2008-04-05 02:47:07 +00:00
Andrew M. Kuchling 9ff4aea24c Minor edits 2008-04-05 02:42:20 +00:00
Trent Nelson 4bffe8293f Revert r62152 (Issue #2550). Being able to observe the results of all the buildbots was certainly useful. All of the platforms that have some form of BSD lineage -- FreeBSD, OS X, Solaris and Tru64 -- all pass the test. Windows and Linux, on the other hand, don't. Windows I knew about, Linux was a surprise. Knowing this, I believe a more appropriate fix will revolve around test_support.bind_socket() -- this method needs to return a port that nothing in the system has bound already. The best way to do this may just be to rely on ephemeral ports, rather than having the user specify a desired port, then fall back to four random ports, then try 0. 2008-04-04 20:04:09 +00:00
Thomas Heller f790648c8c News entry for: Sync with files from the just released libffi 3.0.5 version. 2008-04-04 19:43:25 +00:00
Thomas Heller c4ef47611f More files from libffi 3.0.5.
Removed libffi.pc.in because it is not needed for ctypes.
2008-04-04 19:14:42 +00:00
Trent Nelson b8e120c7c0 Issue 2550: extend test_socket.py to test SO_REUSEADDR semantics when bind() is called on identical (host, port) combinations in two separate sockets. This should raise an EADDRINUSE socket.error in all cases, irrespective of whether or not SO_REUSEADDR is set on the sockets. However, with Windows, when SO_REUSEADDR is set on the sockets, no error is thrown (an error is thrown when the option isn't set), which results in an extremely wedged python process whenever accept() is called on either of the bound sockets. I'm committing this test now to observe if it's only Windows that has this behaviour (via the buildbots). Note: this WILL break all Windows buildbots for now; once I've observed the results on other platforms, I'll revert, then start looking into a patch. 2008-04-04 17:26:21 +00:00
Jeffrey Yasskin e71d8124c2 Oops again. EINTR is in errno, not signal. 2008-04-04 16:48:19 +00:00
Thomas Heller e1929d5133 Sync with files from the just released libffi 3.0.5 version. 2008-04-04 16:01:54 +00:00
Fred Drake 449651558c stupid, stupid, stupid! 2008-04-04 11:38:51 +00:00
Fred Drake fe7056240b my previous change did what I said it should not: it changed the current
directory to the directory in which the setup.py script lived (which made
__file__ wrong)

fixed, with test that the script is run in the current directory of the caller
2008-04-04 11:31:14 +00:00
Thomas Heller dc96a77c3a Issue #2544: On HP-UX systems, use 'gcc -shared' for linking when gcc
is used as compiler.
2008-04-04 10:07:55 +00:00
Thomas Heller 8e8ba151dd Issue #2543: Make ctypes compatible (again) with Python 2.3, 2.4, and 2.5. 2008-04-04 08:35:44 +00:00
Fred Drake 46c58c17f1 - Issue #2385: distutils.core.run_script() makes __file__ available, so the
controlled environment will more closely mirror the typical script
  environment.  This supports setup.py scripts that refer to data files.
2008-04-04 05:41:30 +00:00
Jeffrey Yasskin 2b860db35c Doh! os.read() raises an OSError, not an IOError when it's interrupted.
And fix some flakiness in test_itimer_prof, which could detect that the timer
had reached 0 before the signal arrived announcing that fact.
2008-04-04 04:51:19 +00:00
Barry Warsaw ba43774d1c post release updates 2008-04-04 01:34:41 +00:00