diff options
Diffstat (limited to 'tools/regression/src/run.py')
-rw-r--r-- | tools/regression/src/run.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tools/regression/src/run.py b/tools/regression/src/run.py new file mode 100644 index 0000000000..5e8e0c7d01 --- /dev/null +++ b/tools/regression/src/run.py @@ -0,0 +1,60 @@ +#!/usr/bin/python + +# Copyright Redshift Software, Inc. 2007 +# +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) + +import os +import os.path +import shutil +import sys +import urllib + +#~ Using --skip-script-download is useful to avoid repeated downloading of +#~ the regression scripts when doing the regression commands individually. +no_update_argument = "--skip-script-download" +no_update = no_update_argument in sys.argv +if no_update: + del sys.argv[sys.argv.index(no_update_argument)] + +#~ The directory this file is in. +root = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) +print '# Running regressions in %s...' % root + +script_sources = [ 'collect_and_upload_logs.py', 'process_jam_log.py', 'regression.py' ] +script_local = os.path.join(root,'tools','regression','src') +script_remote = 'http://svn.boost.org/svn/boost/trunk/tools/regression/src' +script_dir = os.path.join(root,'tools_regression_src') + +if not no_update: + #~ Bootstrap. + #~ * Clear out any old versions of the scripts + print '# Creating regression scripts at %s...' % script_dir + if os.path.exists(script_dir): + shutil.rmtree(script_dir) + os.mkdir(script_dir) + #~ * Get new scripts, either from local working copy, or from svn + if os.path.exists(script_local): + print '# Copying regression scripts from %s...' % script_local + for src in script_sources: + shutil.copyfile( os.path.join(script_local,src), os.path.join(script_dir,src) ) + else: + print '# Dowloading regression scripts from %s...' % script_remote + proxy = None + for a in sys.argv[1:]: + if a.startswith('--proxy='): + proxy = {'http' : a.split('=')[1] } + print '--- %s' %(proxy['http']) + break + for src in script_sources: + urllib.FancyURLopener(proxy).retrieve( + '%s/%s' % (script_remote,src), os.path.join(script_dir,src) ) + +#~ * Make the scripts available to Python +sys.path.insert(0,os.path.join(root,'tools_regression_src')) + +#~ Launch runner. +from regression import runner +runner(root) |