diff options
Diffstat (limited to 'tools')
m--------- | tools/build | 0 | ||||
m--------- | tools/inspect | 0 | ||||
-rw-r--r-- | tools/regression/doc/index.html | 4 | ||||
-rw-r--r-- | tools/regression/doc/instructions.html | 109 | ||||
-rw-r--r-- | tools/regression/src/regression.py | 23 | ||||
-rw-r--r-- | tools/regression/src/run.py | 53 | ||||
-rw-r--r-- | tools/regression/test/test-cases/Huber2629/bjam.log | 72 | ||||
-rwxr-xr-x | tools/regression/xsl_reports/build_results.sh | 3 |
8 files changed, 201 insertions, 63 deletions
diff --git a/tools/build b/tools/build -Subproject d4b923c4ca3fbf94956ae1e281e8d6606d7a7a8 +Subproject 930368bf0aecabb752015a99bdf6c175cdc57ee diff --git a/tools/inspect b/tools/inspect -Subproject deeb8c598dfc087618586543232bf2a18acbe5c +Subproject 1809216f6bbae7ad6db0440cd0e67f5a6485859 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> + </li> + <li>Subversion 1.4 or later.<br> + </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> + </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> + </li> + <li>Run "<code>python run.py [options] [commands]</code>".</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: + <user>:<password>@<host>[:<port>] + --skip-tests=SKIP_TESTS + do not run bjam; used for testing script changes</pre> + </dd> +</dl> +<p>To test trunk use "<code>--tag=trunk</code>" (the default), and to test the +release use "<code>--tag=branches/release</code>". 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}" } |