diff --git a/test/Jamfile b/test/Jamfile index af1bec54..99a717bd 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -5,7 +5,25 @@ subproject libs/python/test ; # bring in the rules for python and testing -import python testing ; +import python ; + +if [ check-python-config ] +{ + +# A bug in the Win32 intel compilers causes compilation of one of our +# tests to take forever when debug symbols are enabled. This rule +# turns them off when added to the requirements section +rule turn-off-intel-debug-symbols ( toolset variant : properties * ) +{ + if $(NT) && [ MATCH (.*intel.*) : $(toolset) ] + { + properties = [ difference $(properties) : on ] off ; + } + return $(properties) ; +} + +local UNIT_TEST_PROPERTIES = $(PYTHON_PROPERTIES) BOOST_PYTHON_SUPPRESS_REGISTRY_INITIALIZATION + [ difference $(PYTHON_PROPERTIES) : BOOST_PYTHON_DYNAMIC_LIB ] BOOST_PYTHON_STATIC_LIB ; # Convenience rule makes declaring tests faster rule bpl-test ( name ? : files * : requirements * ) @@ -48,154 +66,143 @@ rule bpl-test ( name ? : files * : requirements * ) } } - boost-python-runtest $(name) : $(py) $(modules) ; + return [ boost-python-runtest $(name) : $(py) $(modules) ] ; } -run ../test/embedding.cpp ../build/boost_python - : # program args - : # input files - : # requirements - $(PYTHON_PROPERTIES) - BOOST_PYTHON_STATIC_LIB - BOOST_PYTHON_STATIC_MODULE - $(PYTHON_LIB_PATH) - <$(gcc-compilers)>$(CYGWIN_PYTHON_DEBUG_DLL_PATH) - <$(gcc-compilers)><*>$(CYGWIN_PYTHON_DLL_PATH) - $(PYTHON_EMBEDDED_LIBRARY) ; +test-suite python + : [ + run ../test/embedding.cpp ../build/boost_python + : # program args + : # input files + : # requirements + $(PYTHON_PROPERTIES) + BOOST_PYTHON_STATIC_LIB + BOOST_PYTHON_STATIC_MODULE + $(PYTHON_LIB_PATH) + <$(gcc-compilers)>$(CYGWIN_PYTHON_DEBUG_DLL_PATH) + <$(gcc-compilers)><*>$(CYGWIN_PYTHON_DLL_PATH) + $(PYTHON_EMBEDDED_LIBRARY) + ] +[ bpl-test crossmod_exception : crossmod_exception.py crossmod_exception_a.cpp crossmod_exception_b.cpp - ; +] -bpl-test injected ; -bpl-test properties ; -bpl-test return_arg ; -bpl-test staticmethod ; -bpl-test shared_ptr ; -bpl-test polymorphism ; -bpl-test auto_ptr ; -bpl-test minimal ; -bpl-test args ; -bpl-test numpy ; -bpl-test enum ; -bpl-test exception_translator ; -bpl-test pearu1 : test_cltree.py cltree.cpp ; -bpl-test try : newtest.py m1.cpp m2.cpp ; +[ bpl-test injected ] +[ bpl-test properties ] +[ bpl-test return_arg ] +[ bpl-test staticmethod ] +[ bpl-test shared_ptr ] +[ bpl-test polymorphism ] +[ bpl-test auto_ptr ] +[ bpl-test minimal ] +[ bpl-test args ] +[ bpl-test numpy ] +[ bpl-test enum ] +[ bpl-test exception_translator ] +[ bpl-test pearu1 : test_cltree.py cltree.cpp ] +[ bpl-test try : newtest.py m1.cpp m2.cpp ] -bpl-test keywords : keywords.cpp keywords_test.py ; +[ bpl-test keywords : keywords.cpp keywords_test.py ] -extension builtin_converters : test_builtin_converters.cpp ../build/boost_python ; -boost-python-runtest builtin_converters : test_builtin_converters.py builtin_converters ; +[ extension builtin_converters : test_builtin_converters.cpp ../build/boost_python ] +[ boost-python-runtest builtin_converters : test_builtin_converters.py builtin_converters ] -bpl-test test_pointer_adoption ; -bpl-test operators ; -bpl-test callbacks ; -bpl-test defaults ; +[ bpl-test test_pointer_adoption ] +[ bpl-test operators ] +[ bpl-test callbacks ] +[ bpl-test defaults ] -bpl-test object ; -bpl-test list ; -bpl-test long ; -bpl-test dict ; -bpl-test tuple ; -bpl-test str ; +[ bpl-test object ] +[ bpl-test list ] +[ bpl-test long ] +[ bpl-test dict ] +[ bpl-test tuple ] +[ bpl-test str ] -bpl-test virtual_functions ; -bpl-test back_reference ; -bpl-test implicit ; -bpl-test data_members ; +[ bpl-test virtual_functions ] +[ bpl-test back_reference ] +[ bpl-test implicit ] +[ bpl-test data_members ] -bpl-test ben_scott1 ; +[ bpl-test ben_scott1 ] -bpl-test bienstman1 ; -bpl-test bienstman2 ; -bpl-test bienstman3 ; +[ bpl-test bienstman1 ] +[ bpl-test bienstman2 ] +[ bpl-test bienstman3 ] -# A bug in the Win32 intel compilers causes compilation of one of our -# tests to take forever when debug symbols are enabled. This rule -# turns them off when added to the requirements section -rule turn-off-intel-debug-symbols ( toolset variant : properties * ) -{ - if $(NT) && [ MATCH (.*intel.*) : $(toolset) ] - { - properties = [ difference $(properties) : on ] off ; - } - return $(properties) ; -} - -bpl-test multi_arg_constructor +[ bpl-test multi_arg_constructor : # files : # requirements - turn-off-intel-debug-symbols ; # debug symbols slow the build down too much + turn-off-intel-debug-symbols ] # debug symbols slow the build down too much -bpl-test iterator : iterator.py iterator.cpp input_iterator.cpp ; +[ bpl-test iterator : iterator.py iterator.cpp input_iterator.cpp ] -bpl-test extract ; +[ bpl-test extract ] -bpl-test opaque ; +[ bpl-test opaque ] -bpl-test pickle1 ; -bpl-test pickle2 ; -bpl-test pickle3 ; +[ bpl-test pickle1 ] +[ bpl-test pickle2 ] +[ bpl-test pickle3 ] -bpl-test nested ; +[ bpl-test nested ] -bpl-test docstring ; +[ bpl-test docstring ] -bpl-test vector_indexing_suite ; -bpl-test map_indexing_suite ; +[ bpl-test vector_indexing_suite ] +[ bpl-test map_indexing_suite ] -if $(TEST_BIENSTMAN_NON_BUGS) -{ - bpl-test bienstman4 ; - bpl-test bienstman5 ; -} +# if $(TEST_BIENSTMAN_NON_BUGS) +# { +# bpl-test bienstman4 ; +# bpl-test bienstman5 ; +# } # --- unit tests of library components --- -local UNIT_TEST_PROPERTIES = $(PYTHON_PROPERTIES) BOOST_PYTHON_SUPPRESS_REGISTRY_INITIALIZATION - [ difference $(PYTHON_PROPERTIES) : BOOST_PYTHON_DYNAMIC_LIB ] BOOST_PYTHON_STATIC_LIB ; +[ run indirect_traits_test.cpp ] +[ run destroy_test.cpp ] +[ run pointer_type_id_test.cpp ../../test/build/boost_test_exec_monitor : : : $(UNIT_TEST_PROPERTIES) ] +[ run bases.cpp : : : $(UNIT_TEST_PROPERTIES) ] +[ run if_else.cpp ] +[ run pointee.cpp : : : $(UNIT_TEST_PROPERTIES) ] +[ run result.cpp ] -run indirect_traits_test.cpp ; -run destroy_test.cpp ; -run pointer_type_id_test.cpp ../../test/build/boost_test_exec_monitor : : : $(UNIT_TEST_PROPERTIES) ; -run bases.cpp : : : $(UNIT_TEST_PROPERTIES) ; -run if_else.cpp ; -run pointee.cpp : : : $(UNIT_TEST_PROPERTIES) ; -run result.cpp ; +[ compile string_literal.cpp ] +[ compile borrowed.cpp : $(UNIT_TEST_PROPERTIES) ] +[ compile object_manager.cpp : $(UNIT_TEST_PROPERTIES) ] +[ compile copy_ctor_mutates_rhs.cpp : $(UNIT_TEST_PROPERTIES) ] -compile string_literal.cpp ; -compile borrowed.cpp : $(UNIT_TEST_PROPERTIES) ; -compile object_manager.cpp : $(UNIT_TEST_PROPERTIES) ; -compile copy_ctor_mutates_rhs.cpp : $(UNIT_TEST_PROPERTIES) ; - -run upcast.cpp ../../test/build/boost_test_exec_monitor +[ run upcast.cpp ../../test/build/boost_test_exec_monitor : # command-line args : # input files : $(UNIT_TEST_PROPERTIES) - ; + ] -run select_holder.cpp ../../test/build/boost_test_exec_monitor +[ run select_holder.cpp ../../test/build/boost_test_exec_monitor : # command-line args : # input files : $(UNIT_TEST_PROPERTIES) - ; + ] -run select_from_python_test.cpp ../src/converter/type_id.cpp ../../test/build/boost_test_exec_monitor +[ run select_from_python_test.cpp ../src/converter/type_id.cpp ../../test/build/boost_test_exec_monitor : # command-line args : # input files : $(UNIT_TEST_PROPERTIES) - ; + ] -run select_arg_to_python_test.cpp ../src/converter/type_id.cpp ../../test/build/boost_test_exec_monitor +[ run select_arg_to_python_test.cpp ../src/converter/type_id.cpp ../../test/build/boost_test_exec_monitor : # command-line args : # input files : $(UNIT_TEST_PROPERTIES) - ; - -compile-fail ./raw_pyobject_fail1.cpp : $(PYTHON_PROPERTIES) ; -compile-fail ./raw_pyobject_fail2.cpp : $(PYTHON_PROPERTIES) ; -compile-fail ./as_to_python_function.cpp : $(PYTHON_PROPERTIES) ; -compile-fail ./object_fail1.cpp : $(PYTHON_PROPERTIES) ; - + ] +[ compile-fail ./raw_pyobject_fail1.cpp : $(PYTHON_PROPERTIES) ] +[ compile-fail ./raw_pyobject_fail2.cpp : $(PYTHON_PROPERTIES) ] +[ compile-fail ./as_to_python_function.cpp : $(PYTHON_PROPERTIES) ] +[ compile-fail ./object_fail1.cpp : $(PYTHON_PROPERTIES) ] + ; +} \ No newline at end of file