| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #! /usr/bin/env python
- import sys, os, getopt, struct, unittest
- from distutils.spawn import spawn
- build = True
- verbosity = 2
- build_base = None
- here = os.path.dirname(os.path.abspath(__file__))
- os.chdir(here)
- def bits():
- """determine if running on a 32 bit or 64 bit platform
- """
- return struct.calcsize("P") * 8
- # -- parse options
- try:
- opts, args = getopt.getopt(sys.argv[1:], "nqb:")
- if args:
- raise getopt.GetoptError("too many arguments")
- except getopt.GetoptError:
- sys.exit("run-tests.py: error: %s" % sys.exc_info()[1])
- for o, a in opts:
- if o == "-q":
- verbosity = 0
- elif o == "-n":
- build = False
- elif o == "-b":
- build_base = a
- # -- build greenlet
- if build:
- if verbosity == 0:
- cmd = [sys.executable, "setup.py", "-q", "build_ext", "-q", "-i"]
- else:
- cmd = [sys.executable, "setup.py", "build_ext", "-i"]
- spawn(cmd, search_path=0)
- # -- find greenlet but skip the one in "."
- if not build:
- oldpath = sys.path[:]
- sys.path.remove(here)
- import greenlet
- if not build:
- sys.path[:] = oldpath
- sys.stdout.write("python %s (%s bit) using greenlet %s from %s\n" %
- (sys.version.split()[0], bits(), greenlet.__version__, greenlet.__file__))
- sys.stdout.flush()
- # -- run tests
- from tests import test_collector
- result = unittest.TextTestRunner(verbosity=verbosity).run(test_collector(build_base))
- if result.failures or result.errors:
- sys.exit(1)
|