]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/assign/test/Jamfile.v2
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / assign / test / Jamfile.v2
index b8461d0e50ba8f4bb3b2fb50044826404b8d1046..7172745eda410c21cd1288615fa49d956d988220 100644 (file)
@@ -8,6 +8,9 @@
 # For more information, see http://www.boost.org/libs/assign/
 #
 
+import path ;
+import regex ;
+
 rule assign-test ( name )
 {
     return [
@@ -15,9 +18,47 @@ rule assign-test ( name )
         ;
 }
 
+# this rule enumerates through all the headers and ensures
+# that inclusion of the header by itself is sufficient to
+# compile successfully, proving the header does not depend
+# on any other headers to be included first - adapted from
+# logic in the winapi test bjam script
+rule test_headers
+{
+    local all_rules = ;
+    local file ;
+    local headers_path = [ path.make $(BOOST_ROOT)/libs/assign/include/boost/assign ] ;
+    for file in [ path.glob-tree $(headers_path) : *.hpp : assign ]
+    {
+        local rel_file = [ path.relative-to $(headers_path) $(file) ] ;
+        # Note: The test name starts with '~' in order to group these tests in the test report table, preferably at the end.
+        #       All '/' are replaced with '-' because apparently test scripts have a problem with test names containing slashes.
+        local test_name = [ regex.replace $(rel_file) "/" "-" ] ;
+        local decl_test_name = ~hdr-decl-$(test_name) ;
+        # ECHO $(rel_file) ;
+        all_rules += [ compile compile/decl_header.cpp : <define>"BOOST_ASSIGN_TEST_HEADER=$(rel_file)" <dependency>$(file) : $(decl_test_name) ] ;
+    }
+
+    local tests_path = [ path.make $(BOOST_ROOT)/libs/assign/test/compile-fail ] ;
+    for file in [ path.glob-tree $(tests_path) : *.cpp ]
+    {
+        local rel_file = [ path.relative-to $(tests_path) $(file) ] ;
+        local test_name = [ regex.replace [ regex.replace $(rel_file) "/" "-" ] ".cpp" "" ] ;
+        local decl_test_name = cf-$(test_name) ;
+        # ECHO $(rel_file) ;
+        all_rules += [ compile-fail $(file) : : $(decl_test_name) ] ;
+    }
+
+    # ECHO All rules: $(all_rules) ;
+    return $(all_rules) ;
+}
+
+
 test-suite assign :
+    [ test_headers ]
     [ assign-test basic ]
     [ assign-test std ]
+    [ assign-test array ]
     [ assign-test list_of ]
     [ assign-test ptr_list_of ]
     [ assign-test static_list_of ]