Closed robertwb closed 11 years ago
Description changed:
---
+++
@@ -1,8 +1,8 @@
There are several improvements that would be good to make, including but not limited to:
1. Forking rather than starting up a new Sage each time.
-2. Customizeable comparison rather than mutating doctests into new doctests.
-3. Avoiding the use of writing out temporary files.
+2. Customizeable comparison rather than mutating doctests into new doctests (e.g. followup to #10952).
+3. Eliminate need to write temporary files for every doctested file.
4. Provide mechanisms for recording and comparing timings.
5. Constant headaches caused by the difference in doctesting library vs. non-library files.
Description changed:
---
+++
@@ -1,9 +1,18 @@
There are several improvements that would be good to make, including but not limited to:
1. Forking rather than starting up a new Sage each time.
+
2. Customizeable comparison rather than mutating doctests into new doctests (e.g. followup to #10952).
+
3. Eliminate need to write temporary files for every doctested file.
+
4. Provide mechanisms for recording and comparing timings.
+
5. Constant headaches caused by the difference in doctesting library vs. non-library files.
+
+Code at
+
http://code.google.com/p/sagemath-timer/
+
+does most of the above, should be added to the sage library.
Description changed:
---
+++
@@ -10,6 +10,7 @@
5. Constant headaches caused by the difference in doctesting library vs. non-library files.
+6. The ability to drop into a debugger if a doctest raises an exception.
Code at
I'm working on this. E-mail me if you want to collaborate.
Description changed:
---
+++
@@ -12,6 +12,8 @@
6. The ability to drop into a debugger if a doctest raises an exception.
+7. The ability to run different doctests in the same file in parallel.
+
Code at
http://code.google.com/p/sagemath-timer/
Description changed:
---
+++
@@ -1,21 +1,13 @@
There are several improvements that would be good to make, including but not limited to:
1. Forking rather than starting up a new Sage each time.
+2. Customizable comparison rather than mutating doctests into new doctests (e.g. followup to #10952).
+3. Eliminate need to write temporary files for every doctested file.
+4. Constant headaches caused by the difference in doctesting library vs. non-library files.
+5. The ability to drop into a debugger if a doctest raises an exception.
-2. Customizeable comparison rather than mutating doctests into new doctests (e.g. followup to #10952).
-
-3. Eliminate need to write temporary files for every doctested file.
-
-4. Provide mechanisms for recording and comparing timings.
-
-5. Constant headaches caused by the difference in doctesting library vs. non-library files.
-
-6. The ability to drop into a debugger if a doctest raises an exception.
-
-7. The ability to run different doctests in the same file in parallel.
-
-Code at
+Robert's code is at
http://code.google.com/p/sagemath-timer/
-does most of the above, should be added to the sage library.
+and does most of the above (plus more which has been moved to followup tickets #12720 and #12722)
Dependencies: #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384
Changed dependencies from #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384 to #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384
12415_2.patch seems to contain a lot of tempfile changes, could you split out the doctest changes into a separate patch (or are these affecting doctests?)
apparently even I forget my trac username is not what it should be
Changed dependencies from #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384 to #13145, #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384
Changed dependencies from #13145, #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384 to #13146, #13145, #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384
Changed dependencies from #13146, #13145, #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384 to #13147,#13146, #13145, #12723, #12392, #12393, #12395, #12396, #12397, #12381, #12382, #12383, #12384
I've moved the patches dealing with temporary files to #13147.
Description changed:
---
+++
@@ -11,3 +11,5 @@
http://code.google.com/p/sagemath-timer/
and does most of the above (plus more which has been moved to followup tickets #12720 and #12722)
+
+Apply [attachment: 12415_stderr.patch,](https://github.com/sagemath/sage/files/ticket12415/3df95252d095e0ff2177ca171ef9634d.gz) [attachment: 12415_doctest_fixes.patch,](https://github.com/sagemath/sage/files/ticket12415/5e0b23d995017a7b6b3d2800c98454e1.gz) [attachment: 12415_framework.patch](https://github.com/sagemath/sage-prod/files/10654698/12415_framework.patch.gz)
Description changed:
---
+++
@@ -12,4 +12,4 @@
and does most of the above (plus more which has been moved to followup tickets #12720 and #12722)
-Apply [attachment: 12415_stderr.patch,](https://github.com/sagemath/sage/files/ticket12415/3df95252d095e0ff2177ca171ef9634d.gz) [attachment: 12415_doctest_fixes.patch,](https://github.com/sagemath/sage/files/ticket12415/5e0b23d995017a7b6b3d2800c98454e1.gz) [attachment: 12415_framework.patch](https://github.com/sagemath/sage-prod/files/10654698/12415_framework.patch.gz)
+**Apply** [attachment: 12415_stderr.patch,](https://github.com/sagemath/sage/files/ticket12415/3df95252d095e0ff2177ca171ef9634d.gz) [attachment: 12415_doctest_fixes.patch,](https://github.com/sagemath/sage/files/ticket12415/5e0b23d995017a7b6b3d2800c98454e1.gz) [attachment: 12415_framework.patch](https://github.com/sagemath/sage-prod/files/10654698/12415_framework.patch.gz)
Ready for review!
There are still a few known issues:
sage.rings.polynomial.multi_polynomial_libsingular
to do with garbage collection. I'm working on it.But I wanted to get some other people involved in reviewing.
This may be a silly question, but how do I use the new framework? Don't we need changes to the scripts repo, too? (If I just run sage -t FILES
, I don't see the various messages, like Doctesting ...
, that should be printed by run_doctests
are not printed, so sage -t
is not yet using the new framework.)
One of the patches also didn't apply cleanly to 5.1.beta5:
hg qimport -P ~/Downloads/12415_stderr.patch
adding 12415_stderr.patch to series file
applying 12415_stderr.patch
patching file sage/lfunctions/lcalc.py
Hunk #1 FAILED at 226
1 out of 2 hunks FAILED -- saving rejects to file sage/lfunctions/lcalc.py.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh 12415_stderr.patch
Did you apply the new dependencies (#13145, #13146, #13147)? There are some more patches to other repositories: I'll update the ticket description.
Description changed:
---
+++
@@ -12,4 +12,10 @@
and does most of the above (plus more which has been moved to followup tickets #12720 and #12722)
-**Apply** [attachment: 12415_stderr.patch,](https://github.com/sagemath/sage/files/ticket12415/3df95252d095e0ff2177ca171ef9634d.gz) [attachment: 12415_doctest_fixes.patch,](https://github.com/sagemath/sage/files/ticket12415/5e0b23d995017a7b6b3d2800c98454e1.gz) [attachment: 12415_framework.patch](https://github.com/sagemath/sage-prod/files/10654698/12415_framework.patch.gz)
+**Apply** [attachment: 12415_stderr_vs_51b5.patch,](https://github.com/sagemath/sage/files/ticket12415/c7a4af89fe800f7cdb7c2cc42809d45b.gz) [attachment: 12415_doctest_fixes.patch,](https://github.com/sagemath/sage/files/ticket12415/5e0b23d995017a7b6b3d2800c98454e1.gz) [attachment: 12415_framework.patch](https://github.com/sagemath/sage-prod/files/10654698/12415_framework.patch.gz)
+
+**Apply** [attachment: 12415_script.patch](https://github.com/sagemath/sage-prod/files/10654697/12415_script.patch.gz) to the scripts repo
+
+**Apply** [attachment: 12415_sagenb_fixes.patch](https://github.com/sagemath/sage/files/ticket12415/12415_sagenb_fixes.patch.gz) to the sagenb repo (fixes doctest errors)
+
+**Apply** [attachment: 12415_spkg_bin_sage.patch](https://github.com/sagemath/sage-prod/files/10654696/12415_spkg_bin_sage.patch.gz) to `$SAGE_ROOT/spkg/bin/sage` (there's no repo here so you need to use patch)
The description is updated: let me know if you have any more problems. I think you need to apply 12415_stderr_vs_51b5.patch instead of 12415_stderr.patch.
Regarding attachment: 12415_spkg_bin_sage.patch, the file in question should be part of the root repo.
One regression: with the old set-up, running sage -tp FILES
(with no argument for tp
) would choose the number of threads automatically. With the new set-up, this command gives an error, because FILES
is not an integer. Therefore I think that, for example, make ptestlong
will fail. (The file sage-runtests says that the default value for nthreads is 1, but I don't think optparse is dealing with the missing argument properly here. Also, passing the argument 0 causes doctests to never happen: maybe it's using 0 threads instead of minimum(8, cpu_count())
.
I would suggest the following two changes: for the scripts repo:
diff --git a/sage-runtests b/sage-runtests
--- a/sage-runtests
+++ b/sage-runtests
@@ -5,7 +5,7 @@ import optparse, os, sys
if __name__ == "__main__":
parser = optparse.OptionParser()
- parser.add_option("-p", "--nthreads", type=int, default=1, metavar="N", help="tests in parallel using N threads with 0 interpreted as minimum(8, cpu_count())")
+ parser.add_option("-p", "--nthreads", type="string", default=1, metavar="N", help="tests in parallel using N threads with 0 interpreted as minimum(8, cpu_count())")
parser.add_option("--serial", action="store_true", default=False, help="run tests in a single process in series")
parser.add_option("--timeout", type=int, default=-1, help="timeout (in seconds) for doctesting one file")
parser.add_option("-a", "--all", action="store_true", default=False, help="test all files in the Sage library")
@@ -49,7 +49,20 @@ if __name__ == "__main__":
parser.add_option("--stats_path", "--stats-path", default=os.path.join(os.path.expanduser("~/.sage/timings2.json")), \
help="path to a json dictionary for the latest run storing a timing for each file")
+ options, args = parser.parse_args()
+ try:
+ options.nthreads = int(options.nthreads)
+ except ValueError:
+ args.insert(0, options.nthreads.strip())
+ options.nthreads = 0
+
+ if options.nthreads == 0:
+ try:
+ options.nthreads = int(os.environ['SAGE_NUM_THREADS_PARALLEL'])
+ except KeyError:
+ options.nthreads = 1
+
from sage.doctest.control import DocTestController
- DC = DocTestController(*parser.parse_args())
+ DC = DocTestController(options, args)
err = DC.run()
sys.exit(err)
and for the Sage library:
diff --git a/sage/doctest/control.py b/sage/doctest/control.py
--- a/sage/doctest/control.py
+++ b/sage/doctest/control.py
@@ -433,8 +433,9 @@ class DocTestController(SageObject):
else:
nother += 1
if nfiles + ndbsources + nother:
- self.log("Doctesting %s."%(", ".join((["%s file%s"%(nfiles, "s" if nfiles > 1 else "")] if nfiles else []) +
- (["%s other sources"%nother] if nother else []))))
+ self.log("Doctesting %s"%(", ".join((["%s file%s"%(nfiles, "s" if nfiles > 1 else "")] if nfiles else []) +
+ (["%s other sources"%nother] if nother else [])))
+ + " using %s threads."%self.options.nthreads if self.options.nthreads > 1 else ".")
self.reporter = DocTestReporter(self)
self.dispatcher = DocTestDispatcher(self)
try:
Or something like that. I guess you should also print the number of threads when you print "Doctesting entire Sage library.", etc.
I've updated the option parsing to allow -p to take no options (though I used a callback so that the -p doesn't have to be last). I changed 12415_spkg_bin_sage.patch to be an actual patch against the root repository. I also made a small change to the debug functionality (printing the doctest that failed before dropping into the debugger).
Since I'm modifying four repositories, I'll just update the patches rather than creating lots of referee patches (unless the referee objects!).
Description changed:
---
+++
@@ -18,4 +18,4 @@
**Apply** [attachment: 12415_sagenb_fixes.patch](https://github.com/sagemath/sage/files/ticket12415/12415_sagenb_fixes.patch.gz) to the sagenb repo (fixes doctest errors)
-**Apply** [attachment: 12415_spkg_bin_sage.patch](https://github.com/sagemath/sage-prod/files/10654696/12415_spkg_bin_sage.patch.gz) to `$SAGE_ROOT/spkg/bin/sage` (there's no repo here so you need to use patch)
+**Apply** [attachment: 12415_spkg_bin_sage.patch](https://github.com/sagemath/sage-prod/files/10654696/12415_spkg_bin_sage.patch.gz) to the root repo
sage/parallel/decorate.py
: Use
Unhandled SIG...
(on systems, this would give a SIGBUS: Bus Error instead)
Please explain why you're adding nodoctest
to some of the files in doc/
?
Are all the options in sage-runtests
actually implemented? (it seems some of them are meant for #12720, these should not be added here)
I guess you're no longer using the scripts sage-test
, sage-ptest
, sage-doctest
, sage-maketest
, perhaps sage-test-new
and sage-test-import
. Remove these.
Why does the doctesting framework need to be imported from sage.all
?
Replying to @jdemeyer:
Why does the doctesting framework need to be imported from
sage.all
?
I don't think it needs to be, but it makes it easy to test (and debug) doctests from within Sage:
sage: run_doctests(sage.rings.integer)
...
You have two instances of
except:
in the new code.
The one for os.kill()
should just catch OSError
, for the other one replace
except KeyboardInterrupt:
pass
except:
by
except Exception:
Replace
import multiprocessing
options.nthreads = os.getenv('SAGE_NUM_THREADS_PARALLEL',min(8, multiprocessing.cpu_count()))
by
options.nthreads = int(os.getenv('SAGE_NUM_THREADS_PARALLEL', 1))
(don't reinvent the sage-num-threads.py
wheel)
Reviewer: Jeroen Demeyer
Planning to make a reviewer patch, so hang on...
Author: David Roe, Robert Bradshaw
This actually fails on the very first thing I tried (after applying all patches and doing sage -b
):
jdemeyer@sage:/release/sage-5.1.beta5-doctest$ ./sage -t devel/sage/sage/rings/padics/
argv ['/release/sage-5.1.beta5-doctest/local/bin/sage-runtests', 'devel/sage/sage/rings/padics/']
Traceback (most recent call last):
File "/release/sage-5.1.beta5-doctest/local/bin/sage-runtests", line 68, in <module>
DC = DocTestController(*parser.parse_args())
File "/release/sage-5.1.beta5-doctest/local/lib/python2.7/site-packages/sage/doctest/control.py", line 116, in __init__
if options.nthreads == 0:
AttributeError: Values instance has no attribute 'nthreads'
Am I doing something wrong?
Building from scratch and doing make ptest
gives:
argv ['/release/merger/sage-5.1.beta5-12415/local/bin/sage-runtests', '-p', '--sagenb', 'devel/sage/doc/common', 'devel/sage/doc/de', 'devel/sage/doc/en', 'devel/sage/doc/fr', 'devel/sage/doc/ru', 'devel/sage/doc/tr', 'devel/sage/sage']
next_arg: --sagenb
Running doctests with ID 2012-06-25-12-57-22-d71deecd.
Doctesting the Sage notebook.
Doctesting 2067 files using 6 threads
Usage: sage -docbuild [OPTIONS] DOCUMENT (FORMAT | COMMAND)
sage-runtests: error: no such option: -p
**********************************************************************
File "programming", line 620, in programming
Failed example:
for i in range(5):
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 572, in _run
compileflags, 1)
File "<doctest programming[0]>", line 1
for i in range(5):
^
SyntaxError: unexpected EOF while parsing
**********************************************************************
1 items had failures:
1 of 113 in programming
***Test Failed*** 1 failures.
**********************************************************************
File "programming", line 578, in programming
Failed example:
for i in range(5):
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 572, in _run
compileflags, 1)
File "<doctest programming[0]>", line 1
for i in range(5):
^
SyntaxError: unexpected EOF while parsing
**********************************************************************
1 items had failures:
1 of 113 in programming
***Test Failed*** 1 failures.
**********************************************************************
File "sage.misc.sh", line 20, in sage.misc.sh.Sh.eval
Failed example:
sh.eval('''echo "Hello there"\nif [ $? -eq 0 ]; then\necho "good"\nfi''')
Expected:
/...
''
Got:
Hello there
good
/release/merger/sage-5.1.beta5-12415
''
**********************************************************************
File "interfaces", line 331, in interfaces
Failed example:
maxima.plot3d("[cos(x)*(3 + y*cos(x/2)), sin(x)*(3 + y*cos(x/2)),\
y*sin(x/2)]", "[x, -4, 4]", "[y, -4, 4]",\
'[plot_format, openmath]') # not tested
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 572, in _run
compileflags, 1)
File "<doctest interfaces[0]>", line 2
maxima.plot3d("[cos(x)*(3 + y*cos(x/2)), sin(x)*(3 + y*cos(x/2)),\
y*sin(x/2)]", "[x, -4, 4]", "[y, -4, 4]",\
^
SyntaxError: unexpected character after line continuation character
**********************************************************************
1 items had failures:
1 of 57 in interfaces
***Test Failed*** 1 failures.
**********************************************************************
1 items had failures:
1 of 1 in sage.misc.sh.Sh.eval
***Test Failed*** 1 failures.
**********************************************************************
File "sage.doctest.control", line 246, in sage.doctest.control.DocTestController.add_files
Failed example:
DC = DocTestController(DD, [])
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
self.execute(example, compiled, test.globs)
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 835, in execute
exec compiled in globs
File "<doctest sage.doctest.control.DocTestController.add_files[2]>", line 1, in <module>
DC = DocTestController(DD, [])
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/control.py", line 127, in __init__
self.logfile = open(options.logfile, 'a')
IOError: [Errno 2] No such file or directory: '/release/merger/sage-5.1.beta5-12415/home/.sage//tmp/test.log'
**********************************************************************
File "sage.doctest.control", line 247, in sage.doctest.control.DocTestController.add_files
Failed example:
DC.add_files()
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
self.execute(example, compiled, test.globs)
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 835, in execute
exec compiled in globs
File "<doctest sage.doctest.control.DocTestController.add_files[3]>", line 1, in <module>
DC.add_files()
NameError: name 'DC' is not defined
**********************************************************************
File "sage.doctest.control", line 249, in sage.doctest.control.DocTestController.add_files
Failed example:
(os.path.join(os.environ['SAGE_ROOT'], 'devel', 'sage', 'sage'), True) in DC.files
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
self.execute(example, compiled, test.globs)
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 835, in execute
exec compiled in globs
File "<doctest sage.doctest.control.DocTestController.add_files[4]>", line 1, in <module>
(os.path.join(os.environ['SAGE_ROOT'], 'devel', 'sage', 'sage'), True) in DC.files
NameError: name 'DC' is not defined
**********************************************************************
File "sage.doctest.control", line 418, in sage.doctest.control.DocTestController.run_doctests
Failed example:
DC.run_doctests()
Expected:
Doctesting 1 file.
sage -t .../sage/rings/homset.py
[... tests, ... s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: ... seconds
cpu time: ... seconds
cumulative wall time: ... seconds
Got:
.
sage -t /release/merger/sage-5.1.beta5-12415/devel/sage/sage/rings/homset.py
[15 tests, 0.3 s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: 0.8 seconds
cpu time: 0.1 seconds
cumulative wall time: 0.3 seconds
**********************************************************************
File "interfaces", line 318, in interfaces
Failed example:
maxima.plot3d("[cos(x)*(3 + y*cos(x/2)), sin(x)*(3 + y*cos(x/2)),\
y*sin(x/2)]", "[x, -4, 4]", "[y, -4, 4]",\
'[plot_format, openmath]') # not tested
Exception raised:
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 572, in _run
compileflags, 1)
File "<doctest interfaces[0]>", line 2
maxima.plot3d("[cos(x)*(3 + y*cos(x/2)), sin(x)*(3 + y*cos(x/2)),\
y*sin(x/2)]", "[x, -4, 4]", "[y, -4, 4]",\
^
SyntaxError: unexpected character after line continuation character
**********************************************************************
1 items had failures:
1 of 57 in interfaces
***Test Failed*** 1 failures.
**********************************************************************
File "sage.doctest.control", line 479, in sage.doctest.control.DocTestController.cleanup
Failed example:
DC.run()
Expected:
Running doctests with ID ...
Doctesting 1 file.
sage -t .../rings/infinity.py
[... tests, ... s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: ... seconds
cpu time: ... seconds
cumulative wall time: ... seconds
0
Got:
Running doctests with ID 2012-06-25-12-57-35-cf5e164b.
.
sage -t /release/merger/sage-5.1.beta5-12415/devel/sage/sage/rings/infinity.py
[220 tests, 12.8 s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: 13.8 seconds
cpu time: 1.0 seconds
cumulative wall time: 12.8 seconds
0
**********************************************************************
File "sage.doctest.control", line 619, in sage.doctest.control.DocTestController.run
Failed example:
DC.run()
Expected:
Running doctests with ID ...
Doctesting 1 file.
sage -t .../sage/sets/non_negative_integers.py
[... tests, ... s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: ... seconds
cpu time: ... seconds
cumulative wall time: ... seconds
0
Got:
Running doctests with ID 2012-06-25-12-57-49-f475b4d8.
.
sage -t /release/merger/sage-5.1.beta5-12415/devel/sage/sage/sets/non_negative_integers.py
[41 tests, 0.5 s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: 1.4 seconds
cpu time: 0.1 seconds
cumulative wall time: 0.5 seconds
0
**********************************************************************
File "sage.doctest.control", line 660, in sage.doctest.control.run_doctests
Failed example:
run_doctests(sage.rings.infinity)
Expected:
Doctesting .../sage/rings/infinity.py
Running doctests with ID ...
Doctesting 1 file.
sage -t .../sage/rings/infinity.py
[... tests, ... s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: ... seconds
cpu time: ... seconds
cumulative wall time: ... seconds
Got:
Doctesting /release/merger/sage-5.1.beta5-12415/devel/sage/sage/rings/infinity.py
Running doctests with ID 2012-06-25-12-57-50-38f106c7.
.
sage -t /release/merger/sage-5.1.beta5-12415/devel/sage/sage/rings/infinity.py
[220 tests, 20.3 s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: 22.3 seconds
cpu time: 1.0 seconds
cumulative wall time: 20.3 seconds
**********************************************************************
5 items had failures:
3 of 13 in sage.doctest.control.DocTestController.add_files
1 of 10 in sage.doctest.control.DocTestController.cleanup
1 of 6 in sage.doctest.control.DocTestController.run
1 of 7 in sage.doctest.control.DocTestController.run_doctests
1 of 1 in sage.doctest.control.run_doctests
***Test Failed*** 7 failures.
**********************************************************************
File "sage.parallel.decorate", line 559, in sage.parallel.decorate.fork
Failed example:
g()
Expected:
<BLANKLINE>
------------------------------------------------------------------------
Unhandled SIGSEGV: A segmentation fault occurred in Sage.
This probably occurred because a *compiled* component of Sage has a bug
in it and is not properly wrapped with sig_on(), sig_off(). You might
want to run Sage under gdb with 'sage -gdb' to debug this.
Sage will now terminate.
------------------------------------------------------------------------
'NO DATA'
Got:
/release/merger/sage-5.1.beta5-12415/local/lib/libcsage.so(print_backtrace+0x2b)[0x2b39ebbaf66e]
/release/merger/sage-5.1.beta5-12415/local/lib/libcsage.so(sigdie+0x14)[0x2b39ebbaf69b]
/release/merger/sage-5.1.beta5-12415/local/lib/libcsage.so(sage_signal_handler+0x20b)[0x2b39ebbaf189]
/lib/libpthread.so.0[0x2b39e86417d0]
/lib/libc.so.6(strlen+0x30)[0x2b39e8f532f0]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyString_FromString+0x1b)[0x2b39e82e486b]
/release/merger/sage-5.1.beta5-12415/home/.sage//temp/sage.math.washington.edu/28931//spyx//_release_merger_sage_5_1_beta5_12415_home__sage_temp_sage_math_washington_edu_28931_tmp_0_spyx/_release_merger_sage_5_1_beta5_12415_home__sage_temp_sage_math_washington_edu_28931_tmp_0_spyx_0.so[0x2aaaaaab0abd]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5a63)[0x2b39e833b2a3]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82c1979]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x37bf)[0x2b39e8338fff]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82b6b09]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82c952d]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82c9acb]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82f0568]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1299)[0x2b39e8336ad9]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5ae4)[0x2b39e833b324]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x2b39e833d432]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x714e)[0x2b39e833c98e]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5ae4)[0x2b39e833b324]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5ae4)[0x2b39e833b324]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82c1979]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82a487f]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82f563a]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x37bf)[0x2b39e8338fff]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82c1979]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82a487f]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82f523c]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82f0568]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1299)[0x2b39e8336ad9]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82c1979]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82a487f]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82f523c]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0[0x2b39e82f0568]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyObject_Call+0x68)[0x2b39e82942c8]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x1299)[0x2b39e8336ad9]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x69c5)[0x2b39e833c205]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x852)[0x2b39e833d312]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x2b39e833d432]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyRun_FileExFlags+0xc1)[0x2b39e83611b1]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(PyRun_SimpleFileExFlags+0x1f9)[0x2b39e8361489]
/release/merger/sage-5.1.beta5-12415/local/lib/libpython2.7.so.1.0(Py_Main+0xb15)[0x2b39e8373e65]
/lib/libc.so.6(__libc_start_main+0xf4)[0x2b39e8ef61f4]
python[0x400679]
<BLANKLINE>
------------------------------------------------------------------------
Unhandled SIGSEGV: A segmentation fault occurred in Sage.
This probably occurred because a *compiled* component of Sage has a bug
in it and is not properly wrapped with sig_on(), sig_off(). You might
want to run Sage under gdb with 'sage -gdb' to debug this.
Sage will now terminate.
------------------------------------------------------------------------
'NO DATA'
**********************************************************************
1 items had failures:
1 of 17 in sage.parallel.decorate.fork
***Test Failed*** 1 failures.
**********************************************************************
File "sage.tests.startup", line 6, in sage.tests.startup
Failed example:
if os.uname()[1] == 'sage.math.washington.edu':
print float(os.popen("sage -startuptime>/dev/null; sage -startuptime|grep sage.all").readlines()[0].split()[1]) < 2.0
else: print True # nothing when not on sage.math
Expected:
True
Got:
False
**********************************************************************
File "sage.rings.polynomial.multi_polynomial_libsingular", line 420, in sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular.__copy__
Failed example:
len(ring_refcount_dict) == n
Expected:
True
Got:
False
**********************************************************************
File "sage.rings.polynomial.plural", line 2738, in sage.rings.polynomial.plural.new_NRing
Failed example:
z*x
Expected:
x*z
Got:
Exception KeyError: (The ring pointer 0x2b3a04886e90,) in 'sage.libs.singular.ring.singular_ring_delete' ignored
x*z
**********************************************************************
File "sage.rings.polynomial.plural", line 2856, in sage.rings.polynomial.plural.SCA
Failed example:
E = SCA(QQ, ['x', 'y', 'z'], [0, 1], order = 'degrevlex')
Expected nothing
Got:
Exception KeyError: (The ring pointer 0x2b3a048af1a0,) in 'sage.libs.singular.ring.singular_ring_delete' ignored
**********************************************************************
File "sage.matrix.benchmark", line 11, in sage.matrix.benchmark
Failed example:
b.report([b.det_ZZ], 'Test', systems=['sage'])
Expected:
======================================================================
Test
======================================================================
...
======================================================================
Got:
Linux sage.math.washington.edu 2.6.24-28-server #1 SMP Fri Feb 11 18:08:32 UTC 2011 x86_64 GNU/Linux
======================================================================
Test
======================================================================
<BLANKLINE>
<BLANKLINE>
----------------------------------------------------------------------
Dense integer determinant over ZZ.
Given an n x n matrix A over ZZ with random entries
between min and max, inclusive, compute det(A).
<BLANKLINE>
**********************************************************************
2 items had failures:
1 of 8 in sage.rings.polynomial.plural.SCA
1 of 17 in sage.rings.polynomial.plural.new_NRing
***Test Failed*** 2 failures.
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: ``200``)
- ``min`` - minimal value for entries of matrix (default: ``1``)
- ``max`` - maximal value for entries of matrix (default: ``100``)
- ``system`` - either 'sage' or 'magma' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.det_ZZ(200)
sage: tm = b.det_ZZ(200, system='magma') # optional - magma
sage
1.560
======================================================================
**********************************************************************
1 items had failures:
1 of 16 in sage.rings.polynomial.multi_polynomial_libsingular.MPolynomialRing_libsingular.__copy__
***Test Failed*** 1 failures.
**********************************************************************
1 items had failures:
1 of 2 in sage.tests.startup
***Test Failed*** 1 failures.
**********************************************************************
File "sage.matrix.benchmark", line 38, in sage.matrix.benchmark.report
Failed example:
b.report([b.det_ZZ], 'Test', systems=['sage'])
Expected:
======================================================================
Test
======================================================================
...
======================================================================
Got:
Linux sage.math.washington.edu 2.6.24-28-server #1 SMP Fri Feb 11 18:08:32 UTC 2011 x86_64 GNU/Linux
======================================================================
Test
======================================================================
<BLANKLINE>
<BLANKLINE>
----------------------------------------------------------------------
Dense integer determinant over ZZ.
Given an n x n matrix A over ZZ with random entries
between min and max, inclusive, compute det(A).
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: ``200``)
- ``min`` - minimal value for entries of matrix (default: ``1``)
- ``max`` - maximal value for entries of matrix (default: ``100``)
- ``system`` - either 'sage' or 'magma' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.det_ZZ(200)
sage: tm = b.det_ZZ(200, system='magma') # optional - magma
sage
1.330
======================================================================
**********************************************************************
File "sage.doctest.forker", line 925, in sage.doctest.forker.SageDocTestRunner.report_unexpected_exception
Failed example:
"ArithmeticError" in tb
Expected:
True
Got:
False
**********************************************************************
File "sage.doctest.forker", line 1185, in sage.doctest.forker.DocTestWorker.__init__
Failed example:
run_doctests(sage.rings.big_oh) # indirect doctest
Expected:
Doctesting .../sage/rings/big_oh.py
Running doctests with ID ...
Doctesting 1 file.
sage -t .../sage/rings/big_oh.py
[... tests, ... s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: ... seconds
cpu time: ... seconds
cumulative wall time: ... seconds
Got:
Doctesting /release/merger/sage-5.1.beta5-12415/devel/sage/sage/rings/big_oh.py
Running doctests with ID 2012-06-25-12-59-29-e5a039b5.
.
sage -t /release/merger/sage-5.1.beta5-12415/devel/sage/sage/rings/big_oh.py
[17 tests, 1.4 s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: 1.9 seconds
cpu time: 0.4 seconds
cumulative wall time: 1.4 seconds
**********************************************************************
File "sage.doctest.forker", line 1211, in sage.doctest.forker.DocTestWorker.run
Failed example:
run_doctests(sage.symbolic.units) # indirect doctest
Expected:
Doctesting .../sage/symbolic/units.py
Running doctests with ID ...
Doctesting 1 file.
sage -t .../sage/symbolic/units.py
[... tests, ... s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: ... seconds
cpu time: ... seconds
cumulative wall time: ... seconds
Got:
Doctesting /release/merger/sage-5.1.beta5-12415/devel/sage/sage/symbolic/units.py
Running doctests with ID 2012-06-25-12-59-31-e804e534.
.
sage -t /release/merger/sage-5.1.beta5-12415/devel/sage/sage/symbolic/units.py
[82 tests, 0.4 s]
------------------------------------------------------------------------
All tests passed!
------------------------------------------------------------------------
Total time for all tests: 0.7 seconds
cpu time: 0.2 seconds
cumulative wall time: 0.4 seconds
**********************************************************************
3 items had failures:
1 of 1 in sage.doctest.forker.DocTestWorker.__init__
1 of 1 in sage.doctest.forker.DocTestWorker.run
1 of 18 in sage.doctest.forker.SageDocTestRunner.report_unexpected_exception
***Test Failed*** 3 failures.
**********************************************************************
File "sage.tests.cmdline", line 270, in sage.tests.cmdline.test_executable
Failed example:
ret
Expected:
0
Got:
1
**********************************************************************
File "sage.tests.cmdline", line 272, in sage.tests.cmdline.test_executable
Failed example:
out.find("All tests passed!") >= 0
Expected:
True
Got:
False
**********************************************************************
File "sage.tests.cmdline", line 275, in sage.tests.cmdline.test_executable
Failed example:
ret
Expected:
0
Got:
1
**********************************************************************
File "sage.tests.cmdline", line 277, in sage.tests.cmdline.test_executable
Failed example:
out.find("All tests passed!") >= 0
Expected:
True
Got:
False
**********************************************************************
File "sage.tests.cmdline", line 291, in sage.tests.cmdline.test_executable
Failed example:
ret
Expected:
128
Got:
1
**********************************************************************
File "sage.tests.cmdline", line 293, in sage.tests.cmdline.test_executable
Failed example:
out.find("1 items had failures:") >= 0
Expected:
True
Got:
False
**********************************************************************
1 items had failures:
6 of 183 in sage.tests.cmdline.test_executable
***Test Failed*** 6 failures.
**********************************************************************
File "sage.matrix.benchmark", line 566, in sage.matrix.benchmark.report_GF
Failed example:
b.report_GF(systems=['sage'])
Expected:
======================================================================
Dense benchmarks over GF with prime 16411
======================================================================
...
======================================================================
Got:
Linux sage.math.washington.edu 2.6.24-28-server #1 SMP Fri Feb 11 18:08:32 UTC 2011 x86_64 GNU/Linux
======================================================================
Dense benchmarks over GF with prime 16411
======================================================================
<BLANKLINE>
<BLANKLINE>
----------------------------------------------------------------------
Rank over GF(p):
Given a n x (n+10) matrix over GF(p) with random entries, compute the rank.
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: 300)
- ``p`` - prime number (default: ``16411``)
- ``system`` - either 'magma' or 'sage' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.rank_GF(1000)
sage: tm = b.rank_GF(1000, system='magma') # optional - magma
sage
0.160
----------------------------------------------------------------------
Rank over GF(p): Given a (n + 10) x n matrix over GF(p) with
random entries, compute the rank.
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: 300)
- ``p`` - prime number (default: ``16411``)
- ``system`` - either 'magma' or 'sage' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.rank2_GF(500)
sage: tm = b.rank2_GF(500, system='magma') # optional - magma
sage
0.170
----------------------------------------------------------------------
Given a n+1 x n matrix over GF(p) with random
entries, compute the nullspace.
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: 300)
- ``p`` - prime number (default: ``16411``)
- ``system`` - either 'magma' or 'sage' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.nullspace_GF(300)
sage: tm = b.nullspace_GF(300, system='magma') # optional - magma
sage
0.820
----------------------------------------------------------------------
Given a n x n matrix over GF with random entries, compute the
charpoly.
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: 100)
- ``p`` - prime number (default: ``16411``)
- ``system`` - either 'magma' or 'sage' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.charpoly_GF(100)
sage: tm = b.charpoly_GF(100, system='magma') # optional - magma
sage
0.060
----------------------------------------------------------------------
Given an n x n matrix A over GF(p) with random entries, compute
A * (A+1).
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: 100)
- ``p`` - prime number (default: ``16411``)
- ``system`` - either 'magma' or 'sage' (default: 'sage')
- ``times`` - number of experiments (default: ``3``)
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.matrix_multiply_GF(100, p=19)
sage: tm = b.matrix_multiply_GF(100, p=19, system='magma') # optional - magma
sage
0.003
----------------------------------------------------------------------
Dense determinant over GF(p).
Given an n x n matrix A over GF with random entries compute
det(A).
<BLANKLINE>
INPUT:
<BLANKLINE>
- ``n`` - matrix dimension (default: 300)
- ``p`` - prime number (default: ``16411``)
- ``system`` - either 'magma' or 'sage' (default: 'sage')
<BLANKLINE>
EXAMPLES::
<BLANKLINE>
sage: import sage.matrix.benchmark as b
sage: ts = b.det_GF(1000)
sage: tm = b.det_GF(1000, system='magma') # optional - magma
sage
0.090
======================================================================
**********************************************************************
3 items had failures:
1 of 2 in sage.matrix.benchmark
1 of 2 in sage.matrix.benchmark.report
1 of 2 in sage.matrix.benchmark.report_GF
***Test Failed*** 3 failures.
------------------------------------------------------------------------
Doctests interrupted: 0/2067 files tested
------------------------------------------------------------------------
Total time for all tests: 181.4 seconds
cpu time: 0.0 seconds
cumulative wall time: 0.0 seconds
Traceback (most recent call last):
File "/release/merger/sage-5.1.beta5-12415/local/bin/sage-runtests", line 69, in <module>
err = DC.run()
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/control.py", line 645, in run
self.run_doctests()
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/control.py", line 446, in run_doctests
self.dispatcher.dispatch()
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 1130, in dispatch
self._parallel_dispatch()
File "/release/merger/sage-5.1.beta5-12415/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 1072, in _parallel_dispatch
w.start()
File "/release/merger/sage-5.1.beta5-12415/local/lib/python/multiprocessing/process.py", line 130, in start
self._popen = Popen(self)
File "/release/merger/sage-5.1.beta5-12415/local/lib/python/multiprocessing/forking.py", line 120, in __init__
self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
Replying to @jdemeyer:
Planning to make a reviewer patch
...after you guys fix the more serious errors.
Some of these are due to a bug in the change I just made to -p. I'm working on fixing those.
Some look like you didn't apply the patch to the sagenb repo. Did you forget, or is something else going on?
Some are due to the fact that in your tests, os.system calls are happening before the python process gets far enough, so results that were printed to the screen in the wrong order. I'm guessing this may relate to the fact that you're running on /release, since my tests on sage.math didn't show the same behavior.
I'm in the process of fixing stuff.
There's some code in the current doctesting code to output xml results, which I'm not currently duplicating. Is this used somewhere?
Currently sage -t --new is broken. I'm trying to figure out why.
Alright, I'm going to start running tests. There are still some remaining issues, but the patches are in a state where someone else might want to look at them. :-)
Remaining problems:
sage -t
doesn't work; I'm not sure whether it did beforeI'll see if I find more when running sage -t --all
.
Replying to @roed314:
Some are due to the fact that in your tests, os.system calls are happening before the python process gets far enough, so results that were printed to the screen in the wrong order.
Use sys.stdout.flush()
(and/or the same for stderr
) before os.system()
to overcome this. The difference is probably that my output was sent to a pipe, as opposed to directly to the terminal. In the latter case, flushing is automatic.
True, I might not have applied all patches correctly.
It doesn't make sense to patch the old notebook. Please work with the flask notebook instead (i.e. make this ticket depend on #11080 and preferably #13121).
Replying to @kini:
It doesn't make sense to patch the old notebook. Please work with the flask notebook instead (i.e. make this ticket depend on #11080 and preferably #13121).
I agree that it doesn't make much sense to patch the old notebook, but if this can get a positive review quickly I'd rather not wait on #11080 and #13121. The changes to the old notebook are pretty minor.
Design question: when running tests in parallel, failed examples are printed as they arise, meaning that examples from different files are intermingled. Is this a problem that needs to be fixed?
The only tests I have failing on sage.math are sage.tests.startup
and sage.rings.polynomial.multi_polynomial_libsingular
(due to #13145).
Replying to @roed314:
Design question: when running tests in parallel, failed examples are printed as they arise, meaning that examples from different files are intermingled. Is this a problem that needs to be fixed?
It might not be truly a problem, but I prefer the current model where the tests for one file are grouped.
There are several improvements that would be good to make, including but not limited to:
Robert's code is at
http://code.google.com/p/sagemath-timer/
Apply attachment: 12415_framework.patch, attachment: 12415_doctest_fixes.patch, attachment: 12415_doc.patch, attachment: 12415_review.patch, attachment: 12415_test.patch, attachment: 12415_review_review.patch, attachment: 12415_review3.patch, attachment: 12415_manifest.patch, attachment: 12415_rebase_58.patch
Apply attachment: 12415_script.patch and attachment: 12415_script_review.patch to the scripts repo
Apply attachment: 12415_spkg_bin_sage.patch to the root repo
For follow-up or other doctest-related tickets see #11337.
Depends on #13147 Depends on #13146 Depends on #13145 Depends on #12723 Depends on #12392 Depends on #12393 Depends on #12395 Depends on #12396 Depends on #12397 Depends on #12381 Depends on #12382 Depends on #12383 Depends on #12384 Depends on #11871 Depends on #13195 Depends on #13121 Depends on #13748 Depends on #13899 Depends on #12719 Depends on #5155 Depends on #14070 Depends on #14079 Depends on #14150 Depends on #14158 Depends on #14182 Depends on #14184 Depends on #14054 Depends on #14063 Depends on #13605 Depends on #14111 Depends on #14254 Depends on #14242 Depends on #14253
CC: @kini @ohanar @jhpalmieri
Component: doctest framework
Author: David Roe, Robert Bradshaw, Jeroen Demeyer
Reviewer: Jeroen Demeyer, David Roe
Merged: sage-5.9.beta0
Issue created by migration from https://trac.sagemath.org/ticket/12415