summaryrefslogtreecommitdiff
path: root/tools/regression
diff options
context:
space:
mode:
authorBeman Dawes <bdawes@acm.org>2007-11-25 19:36:19 +0000
committerBeman Dawes <bdawes@acm.org>2007-11-25 19:36:19 +0000
commit5c28840e8dd89a4300e1399de44caeb75145d6e1 (patch)
treeb5fd16bfc07aec3802befa848e4e4bcf4cd99bdf /tools/regression
parentf8fef4ab0e6e4e77b4cb4cfc647190a88f13dd2c (diff)
downloadboost-5c28840e8dd89a4300e1399de44caeb75145d6e1.tar.gz
Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41373]
Diffstat (limited to 'tools/regression')
-rw-r--r--tools/regression/doc/index.html4
-rw-r--r--tools/regression/doc/instructions.html109
-rw-r--r--tools/regression/src/regression.py23
-rw-r--r--tools/regression/src/run.py53
-rw-r--r--tools/regression/test/test-cases/Huber2629/bjam.log72
-rwxr-xr-xtools/regression/xsl_reports/build_results.sh3
6 files changed, 201 insertions, 63 deletions
diff --git a/tools/regression/doc/index.html b/tools/regression/doc/index.html
index dc1479088f..58bbd9d0e2 100644
--- a/tools/regression/doc/index.html
+++ b/tools/regression/doc/index.html
@@ -21,6 +21,8 @@
reports.</p>
<ul>
+ <li><a href="instructions.html">Instructions</a> for running the regression
+ tests</li>
<li><a href="../src/process_jam_log.cpp">process_jam_log.cpp</a> -
Processes the bjam outputs, creating a file named test_log.xml for each
test encountered.</li>
@@ -49,4 +51,4 @@
copy at <a href=
"http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</p>
</body>
-</html>
+</html> \ No newline at end of file
diff --git a/tools/regression/doc/instructions.html b/tools/regression/doc/instructions.html
new file mode 100644
index 0000000000..bc74cc6b47
--- /dev/null
+++ b/tools/regression/doc/instructions.html
@@ -0,0 +1,109 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="en-us">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Running Boost Regression Tests</title>
+<link rel="stylesheet" type="text/css" href="../../../doc/html/minimal.css">
+</head>
+
+<body>
+
+<table border="0" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="831">
+ <tr>
+ <td width="277">
+<a href="../../../../index.htm">
+<img src="../../../boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"></a></td>
+ <td width="531" align="middle">
+ <font size="7">Running Boost Regression Tests</font>
+ </td>
+ </tr>
+</table>
+
+<h2>Requirements</h2>
+<ul>
+ <li>Python 2.3 or later.<br>
+&nbsp;</li>
+ <li>Subversion 1.4 or later.<br>
+&nbsp;</li>
+ <li>At least 5 gigabytes of disk space per compiler to be tested.</li>
+</ul>
+<h2>Step by step instructions</h2>
+<ol>
+ <li>Create a new directory for the branch you want to test.<br>
+&nbsp;</li>
+ <li>Download the
+ <a href="http://svn.boost.org/svn/boost/trunk/tools/regression/src/run.py">
+ run.py</a> script into that directory.<br>
+&nbsp;</li>
+ <li>Run &quot;<code>python run.py [options] [commands]</code>&quot;.</li>
+</ol>
+<dl>
+ <dd>
+ <pre>commands: cleanup, collect-logs, get-source, get-tools, patch,
+regression, setup, show-revision, test, test-clean, test-process,
+test-run, update-source, upload-logs
+
+options:
+ -h, --help show this help message and exit
+ --runner=RUNNER runner ID (e.g. 'Metacomm')
+ --comment=COMMENT an HTML comment file to be inserted in the
+ reports
+ --tag=TAG the tag for the results
+ --toolsets=TOOLSETS comma-separated list of toolsets to test with
+ --incremental do incremental run (do not remove previous
+ binaries)
+ --timeout=TIMEOUT specifies the timeout, in minutes, for a single
+ test run/compilation
+ --bjam-options=BJAM_OPTIONS
+ options to pass to the regression test
+ --bjam-toolset=BJAM_TOOLSET
+ bootstrap toolset for 'bjam' executable
+ --pjl-toolset=PJL_TOOLSET
+ bootstrap toolset for 'process_jam_log'
+ executable
+ --platform=PLATFORM
+ --user=USER Boost SVN user ID
+ --local=LOCAL the name of the boost tarball
+ --force-update=FORCE_UPDATE
+ do an SVN update (if applicable) instead of a
+ clean checkout, even when performing a full run
+ --have-source=HAVE_SOURCE
+ do neither a tarball download nor an SVN update;
+ used primarily for testing script changes
+ --proxy=PROXY HTTP proxy server address and port
+ (e.g.'<a rel="nofollow" href="http://www.someproxy.com:3128'" target="_top">http://www.someproxy.com:3128'</a>)
+ --ftp-proxy=FTP_PROXY
+ FTP proxy server (e.g. 'ftpproxy')
+ --dart-server=DART_SERVER
+ the dart server to send results to
+ --debug-level=DEBUG_LEVEL
+ debugging level; controls the amount of
+ debugging output printed
+ --send-bjam-log send full bjam log of the regression run
+ --mail=MAIL email address to send run notification to
+ --smtp-login=SMTP_LOGIN
+ STMP server address/login information, in the
+ following form:
+ &lt;user&gt;:&lt;password&gt;@&lt;host&gt;[:&lt;port&gt;]
+ --skip-tests=SKIP_TESTS
+ do not run bjam; used for testing script changes</pre>
+ </dd>
+</dl>
+<p>To test trunk use &quot;<code>--tag=trunk</code>&quot; (the default), and to test the
+release use &quot;<code>--tag=branches/release</code>&quot;. Or substitute any Boost tree
+of your choice.</p>
+
+<hr>
+
+<p>© Copyright Rene Rivera, 2007<br>
+Distributed under the Boost Software License, Version 1.0. See
+<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
+
+<p>Revised
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%B %d, %Y" startspan -->November 23, 2007<!--webbot bot="Timestamp" endspan i-checksum="39587" --> </font>
+</p>
+
+</body> \ No newline at end of file
diff --git a/tools/regression/src/regression.py b/tools/regression/src/regression.py
index 80d42ea42b..ec20a44cf7 100644
--- a/tools/regression/src/regression.py
+++ b/tools/regression/src/regression.py
@@ -27,7 +27,9 @@ repo_path = {
'release' : 'branches/release',
'build' : 'trunk/tools/build/v2',
'jam' : 'tags/tools/jam/Boost_Jam_3_1_15/src',
- 'regression' : 'trunk/tools/regression'
+ 'regression' : 'trunk/tools/regression',
+ 'boost-build.jam'
+ : 'trunk/boost-build.jam'
}
class runner:
@@ -244,6 +246,13 @@ class runner:
self.unpack_tarball(
self.tools_regression_root+".tar.bz2",
os.path.basename(self.tools_regression_root) )
+
+ #~ We get a boost-build.jam to make the tool build work even if there's
+ #~ and existing boost-build.jam above the testing root.
+ self.log( 'Getting boost-build.jam...' )
+ self.http_get(
+ self.svn_repository_url(repo_path['boost-build.jam']),
+ os.path.join( self.regression_root, 'boost-build.jam' ) )
def command_get_source(self):
self.refresh_timestamp()
@@ -608,9 +617,17 @@ class runner:
if self.timeout > 0:
args += ' -l%s' % (self.timeout*60)
- cmd = '"%(bjam)s" "-sBOOST_BUILD_PATH=%(bb)s" "-sBOOST_ROOT=%(boost)s" "--boost=%(boost)s" %(arg)s' % {
+ cmd = '"%(bjam)s"' +\
+ ' "-sBOOST_BUILD_PATH=%(bbpath)s"' +\
+ ' "-sBOOST_ROOT=%(boost)s"' +\
+ ' "--boost=%(boost)s"' +\
+ ' "--boost-build=%(bb)s"' +\
+ ' "--debug-configuration"' +\
+ ' %(arg)s'
+ cmd %= {
'bjam' : self.tool_path( self.bjam ),
- 'bb' : os.pathsep.join([build_path,self.tools_bb_root]),
+ 'bbpath' : os.pathsep.join([build_path,self.tools_bb_root]),
+ 'bb' : self.tools_bb_root,
'boost' : self.boost_root,
'arg' : args }
diff --git a/tools/regression/src/run.py b/tools/regression/src/run.py
index f27a6d4094..05f14d03aa 100644
--- a/tools/regression/src/run.py
+++ b/tools/regression/src/run.py
@@ -12,6 +12,13 @@ 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
@@ -21,28 +28,30 @@ 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')
-#~ 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) )
+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'))
diff --git a/tools/regression/test/test-cases/Huber2629/bjam.log b/tools/regression/test/test-cases/Huber2629/bjam.log
index cbc9a70c35..ca1fe1b9f4 100644
--- a/tools/regression/test/test-cases/Huber2629/bjam.log
+++ b/tools/regression/test/test-cases/Huber2629/bjam.log
@@ -1,36 +1,36 @@
-boost-test(RUN) "statechart/DllTestNative" : "libs/statechart/test/TuTestMain.cpp"
-boost-test(RUN) "statechart/DllTestNormal" : "libs/statechart/test/TuTestMain.cpp"
-
-compile-c-c++ ..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi\TuTestMain.obj
-TuTestMain.cpp
-c:\Users\Misha\Stuff\boost\HEAD\boost\libs\statechart\test\TuTest.hpp(36) : warning C4275: non dll-interface class 'boost::statechart::event_base' used as base for dll-interface class 'boost::statechart::detail::rtti_policy::rtti_derived_type<MostDerived,Base>'
- with
- [
- MostDerived=EvX,
- Base=boost::statechart::event_base
- ]
- ..\..\..\boost\statechart\event_base.hpp(49) : see declaration of 'boost::statechart::event_base'
-compile-c-c++ ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLibTuTest.obj
-TuTest.cpp
-c:\Users\Misha\Stuff\boost\HEAD\boost\libs\statechart\test\TuTest.hpp(36) : warning C4275: non dll-interface class 'boost::statechart::event_base' used as base for dll-interface class 'boost::statechart::detail::rtti_policy::rtti_derived_type<MostDerived,Base>'
- with
- [
- MostDerived=EvX,
- Base=boost::statechart::event_base
- ]
- ..\..\..\boost\statechart\event_base.hpp(49) : see declaration of 'boost::statechart::event_base'
-msvc.link.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib
- Creating library ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib and object ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.exp
-
- call "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" >nul
-link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /subsystem:console /out:"..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll" /IMPLIB:"..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib" @"..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll.rsp"
- if %errorlevel% 1 exit %errorlevel%
- if exist "..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll.manifest" (
- mt -nologo -manifest "..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll.manifest" "-outputresource:..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll;2"
- )
-
-...failed msvc.link.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib...
-...removing ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll
-...removing ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib
-...skipped <p..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi>DllTestNormal.exe for lack of <p..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi>DllTestNormalLib-vc71-mt-gd-1_35.lib...
-...skipped <p..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi>DllTestNormal.run for lack of <p..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi>DllTestNormal.exe...
+boost-test(RUN) "statechart/DllTestNative" : "libs/statechart/test/TuTestMain.cpp"
+boost-test(RUN) "statechart/DllTestNormal" : "libs/statechart/test/TuTestMain.cpp"
+
+compile-c-c++ ..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi\TuTestMain.obj
+TuTestMain.cpp
+c:\Users\Misha\Stuff\boost\HEAD\boost\libs\statechart\test\TuTest.hpp(36) : warning C4275: non dll-interface class 'boost::statechart::event_base' used as base for dll-interface class 'boost::statechart::detail::rtti_policy::rtti_derived_type<MostDerived,Base>'
+ with
+ [
+ MostDerived=EvX,
+ Base=boost::statechart::event_base
+ ]
+ ..\..\..\boost\statechart\event_base.hpp(49) : see declaration of 'boost::statechart::event_base'
+compile-c-c++ ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLibTuTest.obj
+TuTest.cpp
+c:\Users\Misha\Stuff\boost\HEAD\boost\libs\statechart\test\TuTest.hpp(36) : warning C4275: non dll-interface class 'boost::statechart::event_base' used as base for dll-interface class 'boost::statechart::detail::rtti_policy::rtti_derived_type<MostDerived,Base>'
+ with
+ [
+ MostDerived=EvX,
+ Base=boost::statechart::event_base
+ ]
+ ..\..\..\boost\statechart\event_base.hpp(49) : see declaration of 'boost::statechart::event_base'
+msvc.link.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib
+ Creating library ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib and object ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.exp
+
+ call "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat" >nul
+link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /subsystem:console /out:"..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll" /IMPLIB:"..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib" @"..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll.rsp"
+ if %errorlevel% 1 exit %errorlevel%
+ if exist "..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll.manifest" (
+ mt -nologo -manifest "..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll.manifest" "-outputresource:..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll;2"
+ )
+
+...failed msvc.link.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib...
+...removing ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.dll
+...removing ..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi\DllTestNormalLib-vc71-mt-gd-1_35.lib
+...skipped <p..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi>DllTestNormal.exe for lack of <p..\..\..\bin.v2\libs\statechart\test\msvc-7.1\debug\threading-multi>DllTestNormalLib-vc71-mt-gd-1_35.lib...
+...skipped <p..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi>DllTestNormal.run for lack of <p..\..\..\bin.v2\libs\statechart\test\DllTestNormal.test\msvc-7.1\debug\threading-multi>DllTestNormal.exe...
diff --git a/tools/regression/xsl_reports/build_results.sh b/tools/regression/xsl_reports/build_results.sh
index 08497f24db..0682106c5b 100755
--- a/tools/regression/xsl_reports/build_results.sh
+++ b/tools/regression/xsl_reports/build_results.sh
@@ -103,7 +103,8 @@ build_results()
--expected-results="${boost}/status/expected_results.xml" \
--failures-markup="${boost}/status/explicit-failures-markup.xml" \
--comment="comment.html" \
- --user=""
+ --user="" \
+ --reports="i,dd,ds,n"
cd "${cwd}"
}