diff options
author | bertagaz <bertagaz@ptitcanardnoir.org> | 2011-06-14 15:26:19 +0200 |
---|---|---|
committer | bertagaz <bertagaz@ptitcanardnoir.org> | 2011-06-14 15:26:19 +0200 |
commit | 30e9097985656920f01a72efc1088caa2b8d41b3 (patch) | |
tree | bedbdb1aaa484af467e538110ab4c0c95985b6b8 /misc/build_helpers |
Imported Upstream version 0.5.29upstream/0.5.29
Diffstat (limited to 'misc/build_helpers')
-rw-r--r-- | misc/build_helpers/run_trial.py | 55 | ||||
-rw-r--r-- | misc/build_helpers/show-tool-versions.py | 124 |
2 files changed, 179 insertions, 0 deletions
diff --git a/misc/build_helpers/run_trial.py b/misc/build_helpers/run_trial.py new file mode 100644 index 0000000..eb9c63a --- /dev/null +++ b/misc/build_helpers/run_trial.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import os, sys, re + +modulename = None +for i in xrange(1, len(sys.argv)): + if not sys.argv[i].startswith('-'): + modulename = sys.argv[i] + break + +if modulename is None: + raise AssertionError("no test module specified") + +__import__(modulename) +srcfile = sys.modules[modulename].__file__ +srcdir = os.path.dirname(os.path.realpath(srcfile)) +for i in modulename.split('.'): + srcdir = os.path.dirname(srcdir) + +if os.path.normcase(srcdir).endswith('.egg'): + srcdir = os.path.dirname(srcdir) +elif os.path.normcase(os.path.basename(srcdir)) == 'site-packages': + srcdir = os.path.dirname(srcdir) + if re.search(r'python.+\..+', os.path.normcase(os.path.basename(srcdir))): + srcdir = os.path.dirname(srcdir) + if os.path.normcase(os.path.basename(srcdir)) == 'lib': + srcdir = os.path.dirname(srcdir) + +srcdir = os.path.normcase(os.path.normpath(srcdir)) +cwd = os.path.normcase(os.path.normpath(os.getcwd())) + +same = (srcdir == cwd) +if not same: + try: + same = os.path.samefile(srcdir, cwd) + except AttributeError, e: + e # hush pyflakes + +if not same: + msg = ("We seem to be testing the code at %r\n" + "(according to the source filename %r),\n" + "but expected to be testing the code at %r.\n" + % (srcdir, srcfile, cwd)) + if (not isinstance(cwd, unicode) and + cwd.decode(sys.getfilesystemencoding(), 'replace') != os.path.normcase(os.path.normpath(os.getcwdu()))): + msg += ("However, this may be a false alarm because the current directory path\n" + "is not representable in the filesystem encoding. This script needs to be\n" + "run from the source directory to be tested, at a non-Unicode path.") + else: + msg += "This script needs to be run from the source directory to be tested." + + raise AssertionError(msg) + +from twisted.scripts.trial import run +run()
\ No newline at end of file diff --git a/misc/build_helpers/show-tool-versions.py b/misc/build_helpers/show-tool-versions.py new file mode 100644 index 0000000..c7b05b6 --- /dev/null +++ b/misc/build_helpers/show-tool-versions.py @@ -0,0 +1,124 @@ +#! /usr/bin/env python + +import os, subprocess, sys, traceback + +def foldlines(s): + return s.replace("\n", " ").replace("\r", "") + +def print_platform(): + print + try: + import platform + out = platform.platform() + print + print "platform:", out.replace("\n", " ") + except EnvironmentError: + sys.stderr.write("Got exception using 'platform'. Exception follows\n") + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + +def print_python_ver(): + print + print "python:", foldlines(sys.version) + print 'maxunicode: ' + str(sys.maxunicode) + +def print_stdout(cmdlist, label=None): + print + try: + res = subprocess.Popen(cmdlist, stdin=open(os.devnull), + stdout=subprocess.PIPE).communicate()[0] + if label is None: + label = cmdlist[0] + print label + ': ' + foldlines(res) + except EnvironmentError: + sys.stderr.write("\nGot exception invoking '%s'. Exception follows.\n" % (cmdlist[0],)) + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + +def print_as_ver(): + print + if os.path.exists('a.out'): + print "WARNING: a file named a.out exists, and getting the version of the 'as' assembler writes to that filename, so I'm not attempting to get the version of 'as'." + return + try: + res = subprocess.Popen(['as', '-version'], stdin=open(os.devnull), + stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() + print 'as: ' + foldlines(res[0]+' '+res[1]) + if os.path.exists('a.out'): + os.remove('a.out') + except EnvironmentError: + sys.stderr.write("\nGot exception invoking '%s'. Exception follows.\n" % ('as',)) + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + +def print_setuptools_ver(): + print + try: + import pkg_resources + out = str(pkg_resources.require("setuptools")) + print "setuptools:", foldlines(out) + except (ImportError, EnvironmentError): + sys.stderr.write("\nGot exception using 'pkg_resources' to get the version of setuptools. Exception follows\n") + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + +def print_py_pkg_ver(pkgname, modulename=None): + if modulename is None: + modulename = pkgname + + print + try: + import pkg_resources + out = str(pkg_resources.require(pkgname)) + print pkgname + ': ' + foldlines(out) + except (ImportError, EnvironmentError): + sys.stderr.write("\nGot exception using 'pkg_resources' to get the version of %s. Exception follows.\n" % (pkgname,)) + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + except pkg_resources.DistributionNotFound: + sys.stderr.write("\npkg_resources reported no %s package installed. Exception follows.\n" % (pkgname,)) + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + try: + __import__(modulename) + except ImportError: + pass + else: + modobj = sys.modules.get(modulename) + print pkgname + ' module: ' + str(modobj) + try: + print pkgname + ' __version__: ' + str(modobj.__version__) + except AttributeError: + pass + +print_platform() + +print_python_ver() + +print_stdout(['buildbot', '--version']) +print_stdout(['cl']) +print_stdout(['g++', '--version']) +print_stdout(['cryptest', 'V']) +print_stdout(['darcs', '--version']) +print_stdout(['darcs', '--exact-version'], label='darcs-exact-version') +print_stdout(['7za']) +print_stdout(['flappclient', '--version']) +print_stdout(['valgrind', '--version']) + +print_as_ver() + +print_setuptools_ver() + +print_py_pkg_ver('coverage') +print_py_pkg_ver('trialcoverage') +print_py_pkg_ver('setuptools_trial') +print_py_pkg_ver('setuptools_darcs') +print_py_pkg_ver('darcsver') +print_py_pkg_ver('Twisted', 'twisted') +print_py_pkg_ver('TwistedCore', 'twisted.python') |