sage: fix transient ecl error (#54285)
Sometimes the doctests fail because ecl races to create a directory. This should fix that by making sure each process has its own directory.
This commit is contained in:
parent
a26117593d
commit
d34f44db45
pkgs/applications/science/math/sage
@ -0,0 +1,19 @@
|
||||
diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
|
||||
index 02e18e67e7..2ebf6eb35f 100644
|
||||
--- a/src/sage/doctest/forker.py
|
||||
+++ b/src/sage/doctest/forker.py
|
||||
@@ -1075,6 +1075,14 @@ class SageDocTestRunner(doctest.DocTestRunner, object):
|
||||
sage: set(ex2.predecessors) == set([ex0,ex1])
|
||||
True
|
||||
"""
|
||||
+
|
||||
+ # Fix ECL dir race conditions by using a separate dir for each process
|
||||
+ # (https://trac.sagemath.org/ticket/26968)
|
||||
+ os.environ['MAXIMA_USERDIR'] = "{}/sage-maxima-{}".format(
|
||||
+ tempfile.gettempdir(),
|
||||
+ os.getpid()
|
||||
+ )
|
||||
+
|
||||
if isinstance(globs, RecordingDict):
|
||||
globs.start()
|
||||
example.sequence_number = len(self.history)
|
@ -46,6 +46,9 @@ stdenv.mkDerivation rec {
|
||||
# tests) are also run. That is necessary to test dochtml individually. See
|
||||
# https://trac.sagemath.org/ticket/26110 for an upstream discussion.
|
||||
./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
|
||||
|
||||
# Fixes a potential race condition which can lead to transient doctest failures.
|
||||
./patches/fix-ecl-race.patch
|
||||
];
|
||||
|
||||
# Patches needed because of package updates. We could just pin the versions of
|
||||
|
Loading…
Reference in New Issue
Block a user