cpython: Issue #11651: Improve Makefile test targets.
http://hg.python.org/cpython/rev/b76684d62a8d changeset: 71645:b76684d62a8d user: Nadeem Vawda <nadeem.vawda@gmail.com> date: Sun Jul 31 01:09:04 2011 +0200 summary: Issue #11651: Improve Makefile test targets. - Use -j0 option by default - Remove duplicate test run in "make test" and "make testuniversal" - Remove "make memtest" altogether files: Makefile.pre.in | 40 +++++++++++++----------------------- 1 files changed, 15 insertions(+), 25 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -747,23 +747,22 @@ ###################################################################### -# Test the interpreter (twice, once without .pyc files, once with) -# In the past, we've had problems where bugs in the marshalling or -# elsewhere caused bytecode read from .pyc files to behave differently -# than bytecode generated directly from a .py source file. Sometimes -# the bytecode read from a .pyc file had the bug, somtimes the directly -# generated bytecode. This is sometimes a very shy bug needing a lot of -# sample data. - -TESTOPTS= -l $(EXTRATESTOPTS) +# Run a basic set of regression tests. +# This excludes some tests that are particularly resource-intensive. +TESTOPTS= -j0 $(EXTRATESTOPTS) TESTPROG= $(srcdir)/Lib/test/regrtest.py TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) -Wd -E -bb $(TESTPYTHONOPTS) TESTTIMEOUT= 3600 test: all platform - -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f - -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) +# Run the full test suite twice - once without .pyc files, and once with. +# In the past, we've had problems where bugs in the marshalling or +# elsewhere caused bytecode read from .pyc files to behave differently +# than bytecode generated directly from a .py source file. Sometimes +# the bytecode read from a .pyc file had the bug, sometimes the directly +# generated bytecode. This is sometimes a very shy bug needing a lot of +# sample data. testall: all platform -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f $(TESTPYTHON) $(srcdir)/Lib/compileall.py @@ -771,21 +770,18 @@ -$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS) $(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS) -# Run the unitests for both architectures in a Universal build on OSX -# Must be run on an Intel box. +# Run the test suite for both architectures in a Universal build on OSX. +# Must be run on an Intel box. testuniversal: all platform if [ `arch` != 'i386' ];then \ echo "This can only be used on OSX/i386" ;\ exit 1 ;\ fi - -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f - -$(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS) $(TESTPYTHON) $(TESTPROG) -uall $(TESTOPTS) $(RUNSHARED) /usr/libexec/oah/translate ./$(BUILDPYTHON) -E $(TESTPROG) -uall $(TESTOPTS) - -# Like testall, but with a single pass only -# run an optional script to include some information about the build environment +# Like testall, but with only one pass. +# Run an optional script to include information about the build environment. buildbottest: all platform -@if which pybuildbot.identify >/dev/null 2>&1; then \ pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \ @@ -801,12 +797,6 @@ -$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS) $(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS) -MEMTESTOPTS= $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \ - test_longexp -memtest: all platform - -rm -f $(srcdir)/Lib/test/*.py[co] - -$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) - $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) install: altinstall bininstall @@ -1381,7 +1371,7 @@ Python/thread.o: @THREADHEADERS@ # Declare targets that aren't real files -.PHONY: all build_all sharedmods oldsharedmods test quicktest memtest +.PHONY: all build_all sharedmods oldsharedmods test quicktest .PHONY: install altinstall oldsharedinstall bininstall altbininstall .PHONY: maninstall libinstall inclinstall libainstall sharedinstall .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure -- Repository URL: http://hg.python.org/cpython
On Sun, Jul 31, 2011 at 9:09 AM, nadeem.vawda <python-checkins@python.org> wrote:
http://hg.python.org/cpython/rev/b76684d62a8d changeset: 71645:b76684d62a8d user: Nadeem Vawda <nadeem.vawda@gmail.com> date: Sun Jul 31 01:09:04 2011 +0200 summary: Issue #11651: Improve Makefile test targets.
- Use -j0 option by default - Remove duplicate test run in "make test" and "make testuniversal"
That seems very questionable - the rationale for running the test suite twice by default to ensure PYC generation is working correctly still holds. Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia
On Sun, Jul 31, 2011 at 10:26 AM, Nick Coghlan <ncoghlan@gmail.com> wrote:
On Sun, Jul 31, 2011 at 9:09 AM, nadeem.vawda <python-checkins@python.org> wrote:
- Remove duplicate test run in "make test" and "make testuniversal"
That seems very questionable - the rationale for running the test suite twice by default to ensure PYC generation is working correctly still holds.
The consensus on the tracker was that it isn't worth doubling the time taken to run "make test" to check for a class of bug that seems to be relatively rare. For changes that touch anything as far-reaching as .pyc generation, you should be using "make testall" anyway (and that does still use two passes). Cheers, Nadeem
On Jul 31, 2011, at 06:26 PM, Nick Coghlan wrote:
That seems very questionable - the rationale for running the test suite twice by default to ensure PYC generation is working correctly still holds.
Agreed. I'd at least like to have seen discussion on python-dev instead of just in the tracker. FWIW, I wasn't even aware of this issue. -Barry
On Jul 31, 2011, at 06:55 AM, Barry Warsaw wrote:
On Jul 31, 2011, at 06:26 PM, Nick Coghlan wrote:
That seems very questionable - the rationale for running the test suite twice by default to ensure PYC generation is working correctly still holds.
Agreed. I'd at least like to have seen discussion on python-dev instead of just in the tracker. FWIW, I wasn't even aware of this issue.
Er, nm. I need coffee. -B
On Sun, 31 Jul 2011 18:26:42 +1000 Nick Coghlan <ncoghlan@gmail.com> wrote:
On Sun, Jul 31, 2011 at 9:09 AM, nadeem.vawda <python-checkins@python.org> wrote:
http://hg.python.org/cpython/rev/b76684d62a8d changeset: 71645:b76684d62a8d user: Nadeem Vawda <nadeem.vawda@gmail.com> date: Sun Jul 31 01:09:04 2011 +0200 summary: Issue #11651: Improve Makefile test targets.
- Use -j0 option by default - Remove duplicate test run in "make test" and "make testuniversal"
That seems very questionable - the rationale for running the test suite twice by default to ensure PYC generation is working correctly still holds.
But nobody did it anyway, even the buildbots. Regards Antoine.
participants (5)
-
Antoine Pitrou
-
Barry Warsaw
-
Nadeem Vawda
-
nadeem.vawda
-
Nick Coghlan