diff options
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 | 90 |
2 files changed, 61 insertions, 84 deletions
diff --git a/misc/build_helpers/run_trial.py b/misc/build_helpers/run_trial.py deleted file mode 100644 index eb9c63a..0000000 --- a/misc/build_helpers/run_trial.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/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 index c7b05b6..2733e78 100644 --- a/misc/build_helpers/show-tool-versions.py +++ b/misc/build_helpers/show-tool-versions.py @@ -1,17 +1,22 @@ #! /usr/bin/env python -import os, subprocess, sys, traceback +import errno, locale, os, platform, subprocess, sys, traceback -def foldlines(s): - return s.replace("\n", " ").replace("\r", "") +def foldlines(s, numlines=None): + lines = s.split("\n") + if numlines is not None: + lines = lines[:numlines] + return " ".join(lines).replace("\r", "") def print_platform(): - print try: import platform out = platform.platform() print - print "platform:", out.replace("\n", " ") + print "platform:", foldlines(out) + print "machine: ", platform.machine() + if hasattr(platform, 'linux_distribution'): + print "linux_distribution:", repr(platform.linux_distribution()) except EnvironmentError: sys.stderr.write("Got exception using 'platform'. Exception follows\n") traceback.print_exc(file=sys.stderr) @@ -19,26 +24,52 @@ def print_platform(): pass def print_python_ver(): - print print "python:", foldlines(sys.version) print 'maxunicode: ' + str(sys.maxunicode) -def print_stdout(cmdlist, label=None): - print +def print_python_encoding_settings(): + print 'filesystem.encoding: ' + str(sys.getfilesystemencoding()) + print 'locale.getpreferredencoding: ' + str(locale.getpreferredencoding()) + try: + print 'locale.defaultlocale: ' + str(locale.getdefaultlocale()) + except ValueError, e: + print 'got exception from locale.getdefaultlocale(): ', e + print 'locale.locale: ' + str(locale.getlocale()) + +def print_stdout(cmdlist, label=None, numlines=None): + if label is None: + label = cmdlist[0] 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, numlines) + except EnvironmentError, e: + if isinstance(e, OSError) and e.errno == errno.ENOENT: + print str(label) + ': ' + str(cmdlist[0]) + ': no such file or directory' + return + sys.stderr.write("\n%s: Got exception invoking '%s'. Exception follows.\n" % (label, cmdlist[0],)) + traceback.print_exc(file=sys.stderr) + sys.stderr.flush() + pass + +def print_stderr(cmdlist, label=None): + if label is None: + label = cmdlist[0] + try: + res = subprocess.Popen(cmdlist, stdin=open(os.devnull), + stderr=subprocess.PIPE).communicate()[1] print label + ': ' + foldlines(res) - except EnvironmentError: - sys.stderr.write("\nGot exception invoking '%s'. Exception follows.\n" % (cmdlist[0],)) + except EnvironmentError, e: + if isinstance(e, OSError) and e.errno == errno.ENOENT: + print str(label) + ': ' + str(cmdlist[0]) + ': no such file or directory' + return + sys.stderr.write("\n%s: Got exception invoking '%s'. Exception follows.\n" % (label, 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 @@ -55,7 +86,6 @@ def print_as_ver(): pass def print_setuptools_ver(): - print try: import pkg_resources out = str(pkg_resources.require("setuptools")) @@ -65,11 +95,13 @@ def print_setuptools_ver(): traceback.print_exc(file=sys.stderr) sys.stderr.flush() pass + except pkg_resources.DistributionNotFound: + print 'setuptools: DistributionNotFound' + pass def print_py_pkg_ver(pkgname, modulename=None): if modulename is None: modulename = pkgname - print try: import pkg_resources @@ -81,9 +113,7 @@ def print_py_pkg_ver(pkgname, modulename=None): 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() + print pkgname + ': DistributionNotFound' pass try: __import__(modulename) @@ -98,16 +128,20 @@ def print_py_pkg_ver(pkgname, modulename=None): pass print_platform() - +print print_python_ver() - +print +print_stdout(['locale']) +print_python_encoding_settings() +print print_stdout(['buildbot', '--version']) -print_stdout(['cl']) -print_stdout(['g++', '--version']) +print_stdout(['buildslave', '--version']) +if 'windows' in platform.system().lower(): + print_stderr(['cl']) +print_stdout(['g++', '--version'], numlines=1) print_stdout(['cryptest', 'V']) -print_stdout(['darcs', '--version']) -print_stdout(['darcs', '--exact-version'], label='darcs-exact-version') -print_stdout(['7za']) +print_stdout(['git', '--version']) +print_stdout(['openssl', 'version']) print_stdout(['flappclient', '--version']) print_stdout(['valgrind', '--version']) @@ -116,9 +150,7 @@ 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('pyflakes') print_py_pkg_ver('Twisted', 'twisted') print_py_pkg_ver('TwistedCore', 'twisted.python') +print_py_pkg_ver('pyOpenSSL', 'OpenSSL') |