Opened 12 years ago

Last modified 10 years ago

## #9224 closed enhancement

# Unify sage-test and sage-ptest — at Version 5

Reported by: | Mitesh Patel | Owned by: | Minh Van Nguyen |
---|---|---|---|

Priority: | minor | Milestone: | sage-duplicate/invalid/wontfix |

Component: | doctest coverage | Keywords: | testlong maketest parallel race condition unique doctest directories |

Cc: | Carl Witty, Dan Drake, David Kirkby, John Palmieri, Leif Leonhardy, wjp | Merged in: | |

Authors: | Reviewers: | ||

Report Upstream: | N/A | Work issues: | |

Branch: | Commit: | ||

Dependencies: | Stopgaps: |

### Description (last modified by )

We currently have separate single and multi-threaded Sage doctest scripts. In particular, `sage -t ...`

invokes `SAGE_ROOT/local/bin/sage-test`

and `sage -tp ...`

invokes `sage-ptest`

. These files share many lines of almost functionally identical identical code. Unifying these scripts should make it easier to maintain and extend the Sage doctest system.

### Change History (5)

### comment:1 follow-up: 2 Changed 12 years ago by

### comment:2 Changed 12 years ago by

Replying to mpatel:

What if we start with mapping

`sage -t ...`

to`sage -tp 1 ...`

?

This sounds great to me. It immediately removes the code duplication and is very easy to implement. Perhaps it's worth asking on sage-devel about this, in case anyone knows of a substantive difference between "-t" and "-tp 1", but I think this is a good idea.

### comment:3 Changed 12 years ago by

I'm looking at this, and it might be a bit trickier than I thought. Doing "sage -tp 1 ..." tests to see if Sage starts, which we don't want. That's easy to fix, though. What might be harder is that sage-ptest has some awful code in it. The test_file function, according to comments, is supposed to return a 4-tuple, but sometimes it returns a 3-tuple (line 122); there's a bare "except", which is probably not a good idea; the function that processes the tuples just mentioned does this:

F = result[0] ret = result[1] finished_time = result[2] ol = result[3]

The "result" usually is a 4-tuple: (filename, return_code, time, some_string). But sometimes it returns a 3-tuple: (-5, 0, some_string). So the code above sometimes gets a filename for F, and sometimes gets the integer -5. Then there's this:

if ol!="" and (not ol.isspace()): if (ol[len(ol)-1]=="\n"): ol=ol[0:len(ol)-1] print ol

Why is that not

if ol and not ol.isspace(): print ol.rstrip()

? There is some strange stuff in sage-ptest.

### comment:4 Changed 12 years ago by

See #9243 for a related ticket -- it feels weird to be or'ing return codes together when the basic return codes are not powers of 2.

### comment:5 Changed 12 years ago by

Description: | modified (diff) |
---|

**Note:**See TracTickets for help on using tickets.

It seems the merger is overdue, although I doubt I can work on it in the immediate future, e.g., before #8641 closes.

What if we start with mapping

`sage -t ...`

to`sage -tp 1 ...`

?