Jeffrey Yasskin [Fri, 21 Mar 2008 18:48:04 +0000 (18:48 +0000)]
Speed test_threading up from 14s to .5s, and avoid a deadlock on certain
failures. The test for enumerate-after-join is now a little less rigorous, but
the bug it references says the error happened in the first couple iterations,
so 100 iterations should still be enough.
cProfile was useful for identifying the slow tests here.
Jeffrey Yasskin [Fri, 21 Mar 2008 05:51:37 +0000 (05:51 +0000)]
Try to fix test_signal breakages on Linux due to r61687. It appears that at
least two of the linux build bots aren't leaving zombie processes around for
os.waitpid to wait for, causing ECHILD errors. This would be a symptom of a bug
somewhere, but probably not in signal itself.
Gregory P. Smith [Thu, 20 Mar 2008 05:41:53 +0000 (05:41 +0000)]
Attempt to fix the Solaris Sparc 10 buildbot. It was failing with an invalid
argument error on ioctl. This was caused by the added test_fcntl ioctl test
that hard coded 0 as the fd to use. Without a terminal, this fails on solaris.
(it passed from the command line on sol 10, both 32 and 64 bit)
Also, test_ioctl exists so I moved the test into there where it belongs.
Trent Nelson [Thu, 20 Mar 2008 00:58:44 +0000 (00:58 +0000)]
Revert r61650; the intent of this commit was to try and address alarm failures on some of the build slaves. As Neal points out, it's called after test_main(), so it's not going to factor into the test when run via regrtest.py (and removes the original functionality that Jeffrey wanted that would kill the test if it took longer than 3 seconds to run when executing it directly during development).
Gregory P. Smith [Wed, 19 Mar 2008 23:03:25 +0000 (23:03 +0000)]
Prevent ioctl op codes from being sign extended from int to unsigned long
when used on platforms that actually define ioctl as taking an unsigned long.
(the BSDs and OS X / Darwin)
Adds a unittest for fcntl.ioctl that tests what happens with both positive and
negative numbers.
This was done because of issue1471 but I'm not able to reproduce -that- problem
in the first place on Linux 32bit or 64bit or OS X 10.4 & 10.5 32bit or 64 bit.
Trent Nelson [Wed, 19 Mar 2008 22:51:42 +0000 (22:51 +0000)]
Bump the SIGALM delay from 3 seconds to 20 seconds, mainly in an effort to see if it fixes the alarm failures in this test experienced by some of the buildbots.
Trent Nelson [Wed, 19 Mar 2008 21:11:55 +0000 (21:11 +0000)]
Fix the x64 Windows build environment used by the buildbots. %VS90COMNTOOLS%\vsvars32.bat is fine for 32-bit builds, but doesn't work for x64 builds, regardless of /MACHINE:AMD64 and /USECL:MS_OPTERON flags passed to cl.exe. Launch the x86_64 cross compilation environment via '%VS90COMNTOOLS%\..\..\VC\vcvarsall.bat x86_amd64'. I don't have access to any systems *without* Visual Studio 2008 Professional installed (i.e. just Express Edition), so I can't test if x64 compilation works w/ VS Express at the moment.
Additionally, force a clean in our build.bat files before building, just whilst we're going through these build system updates.
And finally, add in the missing MACHINE=AMD64 option to our Tcl/Tk x64 build.
Trent Nelson [Wed, 19 Mar 2008 07:45:19 +0000 (07:45 +0000)]
Refine the Visual Studio 2008 build solution in order to improve how we deal with external components, as well as fixing outstanding issues with Windows x64 build support. Introduce two new .vcproj files, _bsddb44.vcproj and sqlite3.vcproj, which replace the previous pre-link event scripts for _bsddb and _sqlite3 respectively. The new project files inherit from our property files as if they were any other Python module. This has numerous benefits. First, the components get built with exactly the same compiler flags and settings as the rest of Python. Second, it makes it much easier to debug problems in the external components when they're part of the build system. Third, they'll benefit from profile guided optimisation in the release builds, just like the rest of Python core.
I've also introduced a slightly new pattern for managing externals in subversion. New components get checked in as <name>-<version>.x, where <version> matches the exact vendor version string. After the initial import of the external component, the .x is tagged as .0 (i.e. tcl-8.4.18.x -> tcl-8.4.18.0). Some components may not need any tweaking, whereas there are others that might (tcl/tk fall into this bucket). In that case, the relevant modifications are made to the .x branch, which will be subsequently tagged as .1 (and then n+1 going forward) when they build successfully and all tests pass. Buildbots will be converted to rely on these explicit tags only, which makes it easy for us to switch them over to a new version as and when required. (Simple change to external(-amd64).bat: if we've bumped tcl to 8.4.18.1, change the .bat to rmdir 8.4.18.0 if it exists and check out a new .1 copy.)
Trent Nelson [Wed, 19 Mar 2008 06:28:24 +0000 (06:28 +0000)]
Issue2290: Support x64 Windows builds that live in pcbuild/amd64. Without it, sysutils._python_build() returns the wrong directory, which causes the test_get_config_h_filename method in Lib/distutils/tests/test_sysconfig.py to fail.
Added fixer for zip, and refactored a bit of code in the process. Closing #2171.
........
r61599 | david.wolever | 2008-03-19 00:04:26 -0500 (Mi, 19 Mär 2008) | 3 lines
Removed a bunch of duplicate code -- it's in util now.
........
r61601 | martin.v.loewis | 2008-03-19 00:21:12 -0500 (Mi, 19 Mär 2008) | 2 lines
Eric Smith [Tue, 18 Mar 2008 23:45:49 +0000 (23:45 +0000)]
Backport of the print function, using a __future__ import.
This work is substantially Anthony Baxter's, from issue 1633807. I just freshened it, made a few minor tweaks,
and added the test cases. I also created issue 2412,
which is to check for 2to3's behavior with the print
function. I also added myself to ACKS.
Gregory P. Smith [Tue, 18 Mar 2008 22:27:41 +0000 (22:27 +0000)]
Add a test to make sure zlib.crc32 and binascii.crc32 return the same thing.
Fix a buglet in binascii.crc32, the second optional argument could previously
have a signedness mismatch with the C variable its going into.
Steven Bethard [Tue, 18 Mar 2008 22:08:20 +0000 (22:08 +0000)]
Add py3k warnings for code and method inequality comparisons. This should resolve issue 2373. The codeobject.c and methodobject.c changes are both just backports of the Python 3 code.
Gregory P. Smith [Tue, 18 Mar 2008 19:05:32 +0000 (19:05 +0000)]
Fix chown on 64-bit linux. It needed to take a long (64-bit on 64bit linux) as
uid and gid input to accept values >=2**31 as valid while still accepting
negative numbers to pass -1 to chown for "no change".
Steven Bethard [Tue, 18 Mar 2008 19:04:32 +0000 (19:04 +0000)]
_have_soundcard() is a bad check for winsound.Beep, since you can have a soundcard but have the beep driver disabled. This revision basically disables the beep tests by wrapping them in a try/except. The Right Way To Do It is to come up with a _have_enabled_beep_driver() and use that.
Brett Cannon [Tue, 18 Mar 2008 17:25:13 +0000 (17:25 +0000)]
Add Tools/scripts/patchcheck.py. Invoked from ``make check``, the script does
some verification:
- Runs reindent.py on all .py files.
- Checks if any changes in Doc exist.
- Whether Misc/ACKS was changed.
- Whether Misc/NEWS was changed.
The hope is that ``make check`` can become a command anybody can run to get
reminders about what all the requisite steps needed to create a proper
patch/checkin.
Trent Nelson [Tue, 18 Mar 2008 07:32:47 +0000 (07:32 +0000)]
The behaviour of winsound.Beep() seems to differ between different versions of Windows when there's either:
a) no sound card entirely
b) legacy beep driver has been disabled
c) the legacy beep driver has been uninstalled
Sometimes RuntimeErrors are raised, sometimes they're not. If _have_soundcard() returns False, don't expect winsound.Beep() to raise a RuntimeError, as this clearly isn't the case, as demonstrated by the various Win32 XP buildbots.
Trent Nelson [Tue, 18 Mar 2008 07:02:12 +0000 (07:02 +0000)]
Issue 2286: bump up the stack size of the 64-bit debug python_d.exe to 2100000. The default value of 200000 causes a stack overflow at 1965 iterations of r_object() in marshal.c, 35 iterations before the 2000 limit enforced by MAX_MARSHAL_STACK_DEPTH.
Jeffrey Yasskin [Tue, 18 Mar 2008 05:12:41 +0000 (05:12 +0000)]
Speed up test_dict by about 10x by only checking selected dict literal sizes,
instead of every integer from 0 to 400. Exhaustive testing wastes time without
providing enough more assurance that the code is correct.
Jeffrey Yasskin [Tue, 18 Mar 2008 04:56:06 +0000 (04:56 +0000)]
Speed test_thread up from 51.328s to 0.081s by reducing its sleep times. We
still sleep at all to make it likely that all threads are active at the same
time.
Finish backporting new buffer API to Python 2.6. Left to do: memoryview object and structmodule. But, these need to be finished in Python 3.0 first. No objects support the new buffer API in Python 2.6 as of yet, and except for the memoryview object, I don't think they will.