leif wrote:
> Daniel Krenn wrote:
>> On 2016-07-28 23:39, Volker Braun wrote:
>>> As always, you can get the latest beta version from the "develop" git
>>> branch. Alternatively, the self-contained source tarball is at
>>> http://www.sagemath.org/download-latest.html
>>
>> Compiling and testing 7.3.rc0 with "make -j4 ptestlong" showed one
>> failing doctest:
>>
>> File "src/sage/libs/gap/assigned_names.py", line 59, in
>> sage.libs.gap.assigned_names.load_or_compute
>> Failed example:
>>     workspace(name='globals')
>> Expected:
>>     ('...', True)
>> Got:
>>     ('/home/sci/dakrenn/.sage/gap/libgap-globals-8457726060030361270',
>> False)
>>
>>
>> However, testing this again was successful.
> 
> This test *always* fails for me in ptestlong (since quite a while),
> passes when rerun separately.
> 
> 
>> Ideas what the problem could
>> have been?
> 
> No idea, but if you delete the GAP workspaces (in $DOT_SAGE/gap/), the
> test takes orders of magnitude longer... :-)

FWIW, IMHO the doctest doesn't belong there anyway, and is likely to
fail when building Sage.  The tested function is in
src/sage/libs/gap/saved_workspace.py and looks like this:

def workspace(name='workspace'):
    """
    Return the filename of the gap workspace and whether it is up to date.

    INPUT:

    - ``name`` -- string. A name that will become part of the
      workspace filename.

    OUTPUT:

    Pair consisting of a string and a boolean. The string is the
    filename of the saved libgap workspace (or that it should have if
    it doesn't exist). The boolean is whether the workspace is
    up-to-date. You may use the workspace file only if the boolean is
    ``True``.

    EXAMPLES::

        sage: from sage.libs.gap.saved_workspace import workspace
        sage: ws, up_to_date = workspace()
        sage: ws
        '/.../gap/libgap-workspace-...'
        sage: isinstance(up_to_date, bool)
        True
    """
    import os
    import glob
    from sage.env import SAGE_LOCAL, DOT_SAGE
    workspace = os.path.join(DOT_SAGE, 'gap', 'libgap-{0}-{1}'
                        .format(name, abs(hash(SAGE_LOCAL))))
    try:
        workspace_mtime = os.path.getmtime(workspace)
    except OSError:
        # workspace does not exist
        return (workspace, False)
    return (workspace, workspace_mtime > timestamp())


So it's not surprising it regularly fails.


timestamp() is defined above the function, in the same file:

def timestamp():
    # <SNIP>
    libgap_dir = os.path.dirname(__file__)
    files = glob.glob(os.path.join(libgap_dir, '*'))
    if len(files) == 0:
        print('Unable to find LibGAP files.')
        return float('inf')
    return max(map(os.path.getmtime, files))

(It returns the most recent modification time of *all* files in
${SAGE_LOCAL}/lib/python2.7/site-packages/sage/libs/gap/ -- including
'*.pyc' files(!), or infty in case of an unlikely error.)


-leif

-- 
You received this message because you are subscribed to the Google Groups 
"sage-release" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-release.
For more options, visit https://groups.google.com/d/optout.

Reply via email to