Просмотр исходного кода

Full merge from trunk at revision 41356 of entire boost-root tree.

[SVN r41373]
Beman Dawes 18 лет назад
Родитель
Сommit
5c28840e8d

+ 1 - 1
tools/build

@@ -1 +1 @@
-Subproject commit d4b923c4ca3fbf94956ae1e281e8d6606d7a7a82
+Subproject commit 930368bf0aecabb752015a99bdf6c175cdc57ee7

+ 1 - 1
tools/inspect

@@ -1 +1 @@
-Subproject commit deeb8c598dfc087618586543232bf2a18acbe5c1
+Subproject commit 1809216f6bbae7ad6db0440cd0e67f5a6485859d

+ 3 - 1
tools/regression/doc/index.html

@@ -21,6 +21,8 @@
   reports.</p>
   reports.</p>
 
 
   <ul>
   <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> -
     <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
     Processes the bjam outputs, creating a file named test_log.xml for each
     test encountered.</li>
     test encountered.</li>
@@ -49,4 +51,4 @@
   copy at <a href=
   copy at <a href=
   "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</p>
   "http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>)</p>
 </body>
 </body>
-</html>
+</html>

+ 109 - 0
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>

+ 20 - 3
tools/regression/src/regression.py

@@ -27,7 +27,9 @@ repo_path = {
     'release'       : 'branches/release',
     'release'       : 'branches/release',
     'build'         : 'trunk/tools/build/v2',
     'build'         : 'trunk/tools/build/v2',
     'jam'           : 'tags/tools/jam/Boost_Jam_3_1_15/src',
     '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:
 class runner:
@@ -244,6 +246,13 @@ class runner:
             self.unpack_tarball(
             self.unpack_tarball(
                 self.tools_regression_root+".tar.bz2",
                 self.tools_regression_root+".tar.bz2",
                 os.path.basename(self.tools_regression_root) )
                 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):
     def command_get_source(self):
         self.refresh_timestamp()
         self.refresh_timestamp()
@@ -608,9 +617,17 @@ class runner:
         if self.timeout > 0:
         if self.timeout > 0:
             args += ' -l%s' % (self.timeout*60)
             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 ),
             '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,
             'boost' : self.boost_root,
             'arg' : args }
             'arg' : args }
 
 

+ 31 - 22
tools/regression/src/run.py

@@ -12,6 +12,13 @@ import shutil
 import sys
 import sys
 import urllib
 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.
 #~ The directory this file is in.
 root = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
 root = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
 print '# Running regressions in %s...' % root
 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_remote = 'http://svn.boost.org/svn/boost/trunk/tools/regression/src'
 script_dir = os.path.join(root,'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
 #~ * Make the scripts available to Python
 sys.path.insert(0,os.path.join(root,'tools_regression_src'))
 sys.path.insert(0,os.path.join(root,'tools_regression_src'))
 
 

+ 36 - 36
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...

+ 2 - 1
tools/regression/xsl_reports/build_results.sh

@@ -103,7 +103,8 @@ build_results()
         --expected-results="${boost}/status/expected_results.xml" \
         --expected-results="${boost}/status/expected_results.xml" \
         --failures-markup="${boost}/status/explicit-failures-markup.xml" \
         --failures-markup="${boost}/status/explicit-failures-markup.xml" \
         --comment="comment.html" \
         --comment="comment.html" \
-        --user=""
+        --user="" \
+        --reports="i,dd,ds,n"
     cd "${cwd}"
     cd "${cwd}"
 }
 }
 
 

粤ICP备19079148号