summaryrefslogtreecommitdiff
path: root/tools/regression/src/run.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/regression/src/run.py')
-rw-r--r--tools/regression/src/run.py60
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)