micropython

Annotated test_all.py

443:583b1de09eec
2011-07-05 Paul Boddie Simplified ObjectSet merging which seemed to be attempting to combine individual values.
paul@233 1
#!/usr/bin/env python
paul@233 2
paul@233 3
import sys
paul@233 4
import os
paul@233 5
from glob import glob
paul@317 6
import operator
paul@233 7
paul@352 8
libdirs = [
paul@352 9
    os.path.join(os.path.split(__file__)[0], "lib"),
paul@352 10
    "/usr/share/micropython/lib"
paul@352 11
    ]
paul@352 12
paul@233 13
# Main program.
paul@233 14
paul@233 15
if __name__ == "__main__":
paul@233 16
    args = sys.argv[1:]
paul@352 17
    path = libdirs + sys.path[:]
paul@233 18
    path.append("tests")
paul@233 19
paul@233 20
    # Process all tests.
paul@233 21
paul@233 22
    try:
paul@233 23
        _f = args.index("-f")
paul@233 24
        filenames = args[_f+1:]
paul@407 25
        args = args[:_f]
paul@233 26
    except ValueError:
paul@233 27
        filenames = glob(os.path.join("tests", "*.py"))
paul@233 28
paul@233 29
    filenames.sort()
paul@233 30
paul@407 31
    # Make some arguments for the test program.
paul@407 32
paul@407 33
    args.append("-t")
paul@407 34
    if "-tb" not in args:
paul@407 35
        args.append("-exit")
paul@407 36
paul@233 37
    results = []
paul@233 38
paul@233 39
    for filename in filenames:
paul@233 40
        print "Processing", filename
paul@441 41
        status = os.system("%s test.py %s %s" % (sys.executable, filename, " ".join(args)))
paul@441 42
        if status == 2:
paul@441 43
            print "Interrupted!"
paul@441 44
            break
paul@441 45
paul@441 46
        success = status == 0
paul@407 47
        print "Test successful?", success and "Yes" or "No"
paul@407 48
        results.append((filename, success))
paul@233 49
paul@362 50
    failed = [result[0] for result in results if not result[1]]
paul@362 51
    if failed:
paul@362 52
        print
paul@362 53
        print "Failed tests:"
paul@362 54
        for filename in failed:
paul@362 55
            print filename
paul@317 56
paul@317 57
    print
paul@317 58
    print "All successful?"
paul@317 59
    print reduce(operator.and_, [x[1] for x in results], 1) and "Yes" or "No"
paul@233 60
paul@233 61
# vim: tabstop=4 expandtab shiftwidth=4