diff --git a/build/Jamfile b/build/Jamfile
index e58d0a24..d7c83f62 100644
--- a/build/Jamfile
+++ b/build/Jamfile
@@ -12,29 +12,41 @@ PRG_EXEC_MON_SOURCES =
;
TEST_EXEC_MON_SOURCES =
- execution_monitor
- test_tools
- unit_test_parameters
- unit_test_log
- unit_test_monitor
- unit_test_result
- unit_test_suite
compiler_log_formatter
- xml_log_formatter
+ execution_monitor
+ framework
+ plain_report_formatter
+ progress_monitor
+ results_collector
+ results_reporter
test_main
+ test_tools
+ unit_test_log
+ unit_test_main
+ unit_test_monitor
+ unit_test_parameters
+ unit_test_suite
+ xml_log_formatter
+ xml_report_formatter
;
UTF_SOURCES =
- execution_monitor
- test_tools
- unit_test_parameters
- unit_test_log
- unit_test_monitor
- unit_test_result
- unit_test_suite
- unit_test_main
compiler_log_formatter
+ execution_monitor
+ framework
+ plain_report_formatter
+ progress_monitor
+ results_collector
+ results_reporter
+ test_main
+ test_tools
+ unit_test_log
+ unit_test_main
+ unit_test_monitor
+ unit_test_parameters
+ unit_test_suite
xml_log_formatter
+ xml_report_formatter
;
template boost_test_lib
diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
index ffe44289..a9fec3b1 100644
--- a/build/Jamfile.v2
+++ b/build/Jamfile.v2
@@ -16,29 +16,40 @@ PRG_EXEC_MON_SOURCES =
;
TEST_EXEC_MON_SOURCES =
- execution_monitor
- test_tools
- unit_test_parameters
- unit_test_log
- unit_test_monitor
- unit_test_result
- unit_test_suite
- test_main
compiler_log_formatter
+ execution_monitor
+ framework
+ plain_report_formatter
+ progress_monitor
+ results_collector
+ results_reporter
+ test_main
+ test_tools
+ unit_test_log
+ unit_test_main
+ unit_test_monitor
+ unit_test_parameters
+ unit_test_suite
xml_log_formatter
+ xml_report_formatter
;
UTF_SOURCES =
- execution_monitor
- test_tools
- unit_test_parameters
- unit_test_log
- unit_test_monitor
- unit_test_result
- unit_test_suite
- unit_test_main
compiler_log_formatter
+ execution_monitor
+ framework
+ plain_report_formatter
+ progress_monitor
+ results_collector
+ results_reporter
+ test_tools
+ unit_test_log
+ unit_test_main
+ unit_test_monitor
+ unit_test_parameters
+ unit_test_suite
xml_log_formatter
+ xml_report_formatter
;
lib boost_prg_exec_monitor : $(PRG_EXEC_MON_SOURCES).cpp
diff --git a/build/msvc71_proj/algorithms_test.vcproj b/build/msvc71_proj/algorithms_test.vcproj
index 8556d949..5ade99d3 100755
--- a/build/msvc71_proj/algorithms_test.vcproj
+++ b/build/msvc71_proj/algorithms_test.vcproj
@@ -1,175 +1,175 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/auto_unit_test_test.vcproj b/build/msvc71_proj/auto_unit_test_test.vcproj
index 4a5be78d..17e6503f 100644
--- a/build/msvc71_proj/auto_unit_test_test.vcproj
+++ b/build/msvc71_proj/auto_unit_test_test.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/auto_unit_test_test_mult.vcproj b/build/msvc71_proj/auto_unit_test_test_mult.vcproj
index 2cfe9183..df431e05 100644
--- a/build/msvc71_proj/auto_unit_test_test_mult.vcproj
+++ b/build/msvc71_proj/auto_unit_test_test_mult.vcproj
@@ -1,161 +1,161 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/basic_cstring_test.vcproj b/build/msvc71_proj/basic_cstring_test.vcproj
index 527db962..06bdf4f8 100644
--- a/build/msvc71_proj/basic_cstring_test.vcproj
+++ b/build/msvc71_proj/basic_cstring_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/boost_test_library.sln b/build/msvc71_proj/boost_test_library.sln
index f593cadb..f40103aa 100644
--- a/build/msvc71_proj/boost_test_library.sln
+++ b/build/msvc71_proj/boost_test_library.sln
@@ -129,14 +129,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit_test_framework", "unit
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit_test_suite_ex_test", "unit_test_suite_ex_test.vcproj", "{643A15A4-F17F-4ACE-AB83-167AA2160BEC}"
- ProjectSection(ProjectDependencies) = postProject
- {9466C117-7AE0-4AFD-B327-E1612568BCF1} = {9466C117-7AE0-4AFD-B327-E1612568BCF1}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_case_template_test", "test_case_template_test.vcproj", "{CBB6EB43-0BE0-44E9-A4B4-B4B8437410D9}"
ProjectSection(ProjectDependencies) = postProject
- {30AE2EB6-0F78-4D13-9D67-AA5A1052B4C7} = {30AE2EB6-0F78-4D13-9D67-AA5A1052B4C7}
+ {9466C117-7AE0-4AFD-B327-E1612568BCF1} = {9466C117-7AE0-4AFD-B327-E1612568BCF1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "auto_unit_test_test_mult", "auto_unit_test_test_mult.vcproj", "{E782C9A9-A9AC-41AA-82C1-5ECF8798ED81}"
@@ -297,10 +292,6 @@ Global
{9466C117-7AE0-4AFD-B327-E1612568BCF1}.Debug.Build.0 = Debug|Win32
{9466C117-7AE0-4AFD-B327-E1612568BCF1}.Release.ActiveCfg = Release|Win32
{9466C117-7AE0-4AFD-B327-E1612568BCF1}.Release.Build.0 = Release|Win32
- {643A15A4-F17F-4ACE-AB83-167AA2160BEC}.Debug.ActiveCfg = Debug|Win32
- {643A15A4-F17F-4ACE-AB83-167AA2160BEC}.Debug.Build.0 = Debug|Win32
- {643A15A4-F17F-4ACE-AB83-167AA2160BEC}.Release.ActiveCfg = Release|Win32
- {643A15A4-F17F-4ACE-AB83-167AA2160BEC}.Release.Build.0 = Release|Win32
{CBB6EB43-0BE0-44E9-A4B4-B4B8437410D9}.Debug.ActiveCfg = Debug|Win32
{CBB6EB43-0BE0-44E9-A4B4-B4B8437410D9}.Debug.Build.0 = Debug|Win32
{CBB6EB43-0BE0-44E9-A4B4-B4B8437410D9}.Release.ActiveCfg = Release|Win32
diff --git a/build/msvc71_proj/class_properties_test.vcproj b/build/msvc71_proj/class_properties_test.vcproj
index da3afb76..00be3776 100644
--- a/build/msvc71_proj/class_properties_test.vcproj
+++ b/build/msvc71_proj/class_properties_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/custom_exception_test.vcproj b/build/msvc71_proj/custom_exception_test.vcproj
index cbce0046..3789c69f 100755
--- a/build/msvc71_proj/custom_exception_test.vcproj
+++ b/build/msvc71_proj/custom_exception_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/errors_handling_test.vcproj b/build/msvc71_proj/errors_handling_test.vcproj
index 3830d753..09c55b68 100644
--- a/build/msvc71_proj/errors_handling_test.vcproj
+++ b/build/msvc71_proj/errors_handling_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/exec_mon_example.vcproj b/build/msvc71_proj/exec_mon_example.vcproj
index 4c925b7c..78a2674e 100755
--- a/build/msvc71_proj/exec_mon_example.vcproj
+++ b/build/msvc71_proj/exec_mon_example.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/fixed_mapping_test.vcproj b/build/msvc71_proj/fixed_mapping_test.vcproj
index 57b4e071..a4369f48 100644
--- a/build/msvc71_proj/fixed_mapping_test.vcproj
+++ b/build/msvc71_proj/fixed_mapping_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/ifstream_line_it_tst.vcproj b/build/msvc71_proj/ifstream_line_it_tst.vcproj
index 1b6f29c8..cced1ad7 100755
--- a/build/msvc71_proj/ifstream_line_it_tst.vcproj
+++ b/build/msvc71_proj/ifstream_line_it_tst.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/minimal_test.vcproj b/build/msvc71_proj/minimal_test.vcproj
index a41b671d..579e9a9d 100644
--- a/build/msvc71_proj/minimal_test.vcproj
+++ b/build/msvc71_proj/minimal_test.vcproj
@@ -1,177 +1,177 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/online_test.vcproj b/build/msvc71_proj/online_test.vcproj
index 2d422458..17466363 100644
--- a/build/msvc71_proj/online_test.vcproj
+++ b/build/msvc71_proj/online_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/output_test_stream_test.vcproj b/build/msvc71_proj/output_test_stream_test.vcproj
index 80f4434a..72d2ae04 100644
--- a/build/msvc71_proj/output_test_stream_test.vcproj
+++ b/build/msvc71_proj/output_test_stream_test.vcproj
@@ -1,176 +1,176 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/parameterized_test_test.vcproj b/build/msvc71_proj/parameterized_test_test.vcproj
index 503e074a..5cd40243 100644
--- a/build/msvc71_proj/parameterized_test_test.vcproj
+++ b/build/msvc71_proj/parameterized_test_test.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/prg_exec_example.vcproj b/build/msvc71_proj/prg_exec_example.vcproj
index b8aeed2c..2d1990db 100644
--- a/build/msvc71_proj/prg_exec_example.vcproj
+++ b/build/msvc71_proj/prg_exec_example.vcproj
@@ -1,172 +1,172 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/prg_exec_fail1.vcproj b/build/msvc71_proj/prg_exec_fail1.vcproj
index 256811da..df6574c5 100644
--- a/build/msvc71_proj/prg_exec_fail1.vcproj
+++ b/build/msvc71_proj/prg_exec_fail1.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/prg_exec_fail2.vcproj b/build/msvc71_proj/prg_exec_fail2.vcproj
index 7f77a059..d52b9522 100644
--- a/build/msvc71_proj/prg_exec_fail2.vcproj
+++ b/build/msvc71_proj/prg_exec_fail2.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/prg_exec_fail3.vcproj b/build/msvc71_proj/prg_exec_fail3.vcproj
index fe41ffae..7148bb8a 100644
--- a/build/msvc71_proj/prg_exec_fail3.vcproj
+++ b/build/msvc71_proj/prg_exec_fail3.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/prg_exec_monitor.vcproj b/build/msvc71_proj/prg_exec_monitor.vcproj
index 28a60e73..15f7d87b 100644
--- a/build/msvc71_proj/prg_exec_monitor.vcproj
+++ b/build/msvc71_proj/prg_exec_monitor.vcproj
@@ -1,179 +1,179 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/result_report_test.vcproj b/build/msvc71_proj/result_report_test.vcproj
index 2cc1e18e..dce09727 100644
--- a/build/msvc71_proj/result_report_test.vcproj
+++ b/build/msvc71_proj/result_report_test.vcproj
@@ -1,171 +1,171 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_case_template_ex.vcproj b/build/msvc71_proj/test_case_template_ex.vcproj
index f8946e12..7bb7894c 100755
--- a/build/msvc71_proj/test_case_template_ex.vcproj
+++ b/build/msvc71_proj/test_case_template_ex.vcproj
@@ -1,171 +1,171 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_case_template_test.vcproj b/build/msvc71_proj/test_case_template_test.vcproj
index 1f1b550f..a99971e2 100644
--- a/build/msvc71_proj/test_case_template_test.vcproj
+++ b/build/msvc71_proj/test_case_template_test.vcproj
@@ -1,175 +1,175 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_exec_example.vcproj b/build/msvc71_proj/test_exec_example.vcproj
index 8cbe098c..27036ced 100644
--- a/build/msvc71_proj/test_exec_example.vcproj
+++ b/build/msvc71_proj/test_exec_example.vcproj
@@ -1,171 +1,171 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_exec_fail1.vcproj b/build/msvc71_proj/test_exec_fail1.vcproj
index 95f0e9a4..53e95049 100644
--- a/build/msvc71_proj/test_exec_fail1.vcproj
+++ b/build/msvc71_proj/test_exec_fail1.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_exec_fail2.vcproj b/build/msvc71_proj/test_exec_fail2.vcproj
index 6614eb13..2796e359 100644
--- a/build/msvc71_proj/test_exec_fail2.vcproj
+++ b/build/msvc71_proj/test_exec_fail2.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_exec_fail3.vcproj b/build/msvc71_proj/test_exec_fail3.vcproj
index 9e648bab..0444de38 100644
--- a/build/msvc71_proj/test_exec_fail3.vcproj
+++ b/build/msvc71_proj/test_exec_fail3.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_exec_fail4.vcproj b/build/msvc71_proj/test_exec_fail4.vcproj
index 5f64deeb..dedb6f70 100644
--- a/build/msvc71_proj/test_exec_fail4.vcproj
+++ b/build/msvc71_proj/test_exec_fail4.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_exec_monitor.vcproj b/build/msvc71_proj/test_exec_monitor.vcproj
index f37f2061..9f4bcb1d 100644
--- a/build/msvc71_proj/test_exec_monitor.vcproj
+++ b/build/msvc71_proj/test_exec_monitor.vcproj
@@ -1,330 +1,400 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_fp_comparisons.vcproj b/build/msvc71_proj/test_fp_comparisons.vcproj
index 2ea2a220..15d09ab8 100644
--- a/build/msvc71_proj/test_fp_comparisons.vcproj
+++ b/build/msvc71_proj/test_fp_comparisons.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/test_tools_test.vcproj b/build/msvc71_proj/test_tools_test.vcproj
index d95caf69..2c39222a 100644
--- a/build/msvc71_proj/test_tools_test.vcproj
+++ b/build/msvc71_proj/test_tools_test.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/token_iterator_test.vcproj b/build/msvc71_proj/token_iterator_test.vcproj
index aafe6e2a..b3fc8521 100755
--- a/build/msvc71_proj/token_iterator_test.vcproj
+++ b/build/msvc71_proj/token_iterator_test.vcproj
@@ -1,174 +1,174 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_example1.vcproj b/build/msvc71_proj/unit_test_example1.vcproj
index 0cfaedbf..7a11e2a4 100644
--- a/build/msvc71_proj/unit_test_example1.vcproj
+++ b/build/msvc71_proj/unit_test_example1.vcproj
@@ -1,172 +1,172 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_example2.vcproj b/build/msvc71_proj/unit_test_example2.vcproj
index 1b448cdf..4e679201 100644
--- a/build/msvc71_proj/unit_test_example2.vcproj
+++ b/build/msvc71_proj/unit_test_example2.vcproj
@@ -1,171 +1,171 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_example3.vcproj b/build/msvc71_proj/unit_test_example3.vcproj
index f96dcd53..562258bb 100644
--- a/build/msvc71_proj/unit_test_example3.vcproj
+++ b/build/msvc71_proj/unit_test_example3.vcproj
@@ -1,171 +1,171 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_example4.vcproj b/build/msvc71_proj/unit_test_example4.vcproj
index d33fbd6e..81cefd5b 100644
--- a/build/msvc71_proj/unit_test_example4.vcproj
+++ b/build/msvc71_proj/unit_test_example4.vcproj
@@ -1,172 +1,172 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_example5.vcproj b/build/msvc71_proj/unit_test_example5.vcproj
index bb8a608f..ba2d145d 100644
--- a/build/msvc71_proj/unit_test_example5.vcproj
+++ b/build/msvc71_proj/unit_test_example5.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_framework.vcproj b/build/msvc71_proj/unit_test_framework.vcproj
index 83ee8037..1e8c8513 100644
--- a/build/msvc71_proj/unit_test_framework.vcproj
+++ b/build/msvc71_proj/unit_test_framework.vcproj
@@ -1,416 +1,415 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/msvc71_proj/unit_test_suite_ex_test.vcproj b/build/msvc71_proj/unit_test_suite_ex_test.vcproj
index ea05d3d5..b1f17c57 100644
--- a/build/msvc71_proj/unit_test_suite_ex_test.vcproj
+++ b/build/msvc71_proj/unit_test_suite_ex_test.vcproj
@@ -1,173 +1,173 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example/exec_mon_example.cpp b/example/exec_mon_example.cpp
index bd52c10e..8766b2b9 100644
--- a/example/exec_mon_example.cpp
+++ b/example/exec_mon_example.cpp
@@ -6,6 +6,7 @@
// See http://www.boost.org/libs/test for the library home page.
#include
+#include
#include
@@ -23,11 +24,13 @@ struct my_exception2
int m_res_code;
};
-struct dangerous_call_monitor : boost::execution_monitor
-{
- explicit dangerous_call_monitor( int argc ) : m_argc( argc ) {}
+namespace {
- virtual int function()
+class dangerous_call {
+public:
+ dangerous_call( int argc ) : m_argc( argc ) {}
+
+ int operator()()
{
// here we perform some operation under monitoring that could throw my_exception
if( m_argc < 2 )
@@ -40,7 +43,9 @@ struct dangerous_call_monitor : boost::execution_monitor
return 1;
}
- int m_argc;
+private:
+ // Data members
+ int m_argc;
};
void translate_my_exception1( my_exception1 const& ex )
@@ -53,16 +58,18 @@ void translate_my_exception2( my_exception2 const& ex )
std::cout << "Caught my_exception2(" << ex.m_res_code << ")"<< std::endl;
}
+} // local_namespace
+
int
main( int argc , char *[] )
{
- dangerous_call_monitor the_monitor( argc );
+ ::boost::execution_monitor ex_mon;
- the_monitor.register_exception_translator( &translate_my_exception1 );
- the_monitor.register_exception_translator( &translate_my_exception2 );
+ ex_mon.register_exception_translator( &translate_my_exception1 );
+ ex_mon.register_exception_translator( &translate_my_exception2 );
try {
- the_monitor.execute();
+ ex_mon.execute( ::boost::unit_test::callback0( dangerous_call( argc ) ) );
}
catch ( boost::execution_exception const& ex ) {
std::cout << "Caught exception: " << ex.what() << std::endl;
diff --git a/example/test_case_template_example.cpp b/example/test_case_template_example.cpp
index 1aa89fb0..0bfdea80 100644
--- a/example/test_case_template_example.cpp
+++ b/example/test_case_template_example.cpp
@@ -13,20 +13,18 @@ using boost::unit_test::test_suite;
// Boost.MPL
#include
-template
-void free_test_function( Number* = 0 ) {
+BOOST_TEST_CASE_TEMPLATE_FUNCTION( free_test_function, Number )
+{
BOOST_CHECK_EQUAL( 2, (int const)Number::value );
}
-BOOST_META_FUNC_TEST_CASE( free_test_function );
-
test_suite*
init_unit_test_suite( int, char* [] ) {
test_suite* test= BOOST_TEST_SUITE( "Test case template example" );
typedef boost::mpl::range_c numbers;
- test->add( BOOST_FUNC_TEMPLATE_TEST_CASE( free_test_function, numbers ) );
+ test->add( BOOST_TEST_CASE_TEMPLATE( free_test_function, numbers ) );
return test;
}
diff --git a/example/unit_test_example3.cpp b/example/unit_test_example3.cpp
index f36994d8..a23dda12 100644
--- a/example/unit_test_example3.cpp
+++ b/example/unit_test_example3.cpp
@@ -1,6 +1,5 @@
-// (C) Copyright Gennadiy Rozental 2002-2004.
-// (C) Copyright Gennadiy Rozental & Ullrich Koethe 2001.
// (C) Copyright Gennadiy Rozental 2001-2004.
+// (C) Copyright Gennadiy Rozental & Ullrich Koethe 2001.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -12,7 +11,7 @@
#include
using boost::unit_test::test_suite;
using boost::unit_test::test_case;
-using boost::test_toolbox::close_at_tolerance;
+using boost::test_tools::close_at_tolerance;
// BOOST
#include
@@ -127,7 +126,7 @@ struct account_test_suite : public test_suite {
test_case* withdraw_test_case = BOOST_CLASS_TEST_CASE( &account_test::test_withdraw, instance );
deposit_test_case->depends_on( init_test_case );
- withdraw_test_case->depends_on( init_test_case );
+ withdraw_test_case->depends_on( deposit_test_case );
add( init_test_case, 1 );
add( deposit_test_case, 1 );
@@ -137,7 +136,7 @@ struct account_test_suite : public test_suite {
test_suite*
init_unit_test_suite( int argc, char * argv[] ) {
- std::auto_ptr test( BOOST_TEST_SUITE( "Unit test example 3" ) );
+ test_suite* test( BOOST_TEST_SUITE( "Unit test example 3" ) );
try {
if( argc < 2 )
@@ -149,7 +148,7 @@ init_unit_test_suite( int argc, char * argv[] ) {
return (test_suite*)0;
}
- return test.release();
+ return test;
}
// EOF
diff --git a/example/unit_test_example4.cpp b/example/unit_test_example4.cpp
index 9fcdbd25..1f0dcbbe 100644
--- a/example/unit_test_example4.cpp
+++ b/example/unit_test_example4.cpp
@@ -8,6 +8,7 @@
// Boost.Test
#include
+#include
using boost::unit_test::test_suite;
// STL
@@ -20,15 +21,13 @@ void check_string( std::string const& s )
BOOST_CHECK_EQUAL( s.substr( 0, 3 ), "hdr" );
}
-namespace {
- std::string const params[] = { "hdr1 ", "hdr2", "3 " };
-}
-
test_suite*
init_unit_test_suite( int /*argc*/, char* /*argv*/[] ) {
test_suite* test= BOOST_TEST_SUITE( "Unit test example 4" );
- test->add( BOOST_PARAM_TEST_CASE( &check_string, (std::string const*)params, params+3 ), 1 );
+ std::string const params[] = { "hdr1 ", "hdr2", "3 " };
+
+ test->add( BOOST_PARAM_TEST_CASE( &check_string, (std::string const*)params, params+3 ) );
return test;
}
diff --git a/example/unit_test_example5.cpp b/example/unit_test_example5.cpp
index 8eef4402..a111c118 100644
--- a/example/unit_test_example5.cpp
+++ b/example/unit_test_example5.cpp
@@ -8,15 +8,19 @@
// Boost.Test
#include
#include
+#include
using boost::unit_test::test_suite;
// BOOST
#include
#include
+#include
+#include
// STL
#include
#include
+#include
#include
#include
#include
@@ -147,24 +151,33 @@ struct massive_hash_function_test : test_suite {
std::cout << "Enter test data in a format [string] -1 to check long string validation\n";
std::cout << "Enter test data in a format [string] -2 to check invalid argument string validation\n";
+ std::list test_data_store;
+
while( !std::cin.eof() ) {
hash_function_test_data test_data;
if( !(std::cin >> test_data) )
break;
- m_test_data.push_back( test_data );
+ test_data_store.push_back( test_data );
}
- add( BOOST_PARAM_CLASS_TEST_CASE( &hash_function_tester::test, instance, m_test_data.begin(), m_test_data.end() ) );
- }
+ boost::unit_test::callback1 test_func(
+ boost::bind( boost::mem_fn( &hash_function_tester::test ), instance ) );
- std::list m_test_data;
+ add( boost::unit_test::make_test_case(
+ test_func,
+ "massive_hash_function_test",
+ test_data_store.begin(),
+ test_data_store.end() ) );
+ }
};
+//____________________________________________________________________________//
+
test_suite*
init_unit_test_suite( int argc, char * argv[] ) {
- std::auto_ptr test( BOOST_TEST_SUITE( "Unit test example 5" ) );
+ test_suite* test( BOOST_TEST_SUITE( "Unit test example 5" ) );
try {
test->add( new massive_hash_function_test );
@@ -174,7 +187,9 @@ init_unit_test_suite( int argc, char * argv[] ) {
return (test_suite*)0;
}
- return test.release();
+ return test;
}
+//____________________________________________________________________________//
+
// EOF
diff --git a/include/boost/test/auto_unit_test.hpp b/include/boost/test/auto_unit_test.hpp
index 64b9a92c..2ca0bc7f 100644
--- a/include/boost/test/auto_unit_test.hpp
+++ b/include/boost/test/auto_unit_test.hpp
@@ -13,12 +13,16 @@
// for simple function based test cases
// ***************************************************************************
-#ifndef BOOST_AUTO_UNIT_TEST_HPP_071894GER
-#define BOOST_AUTO_UNIT_TEST_HPP_071894GER
+#ifndef BOOST_TEST_AUTO_UNIT_TEST_HPP_071894GER
+#define BOOST_TEST_AUTO_UNIT_TEST_HPP_071894GER
// Boost.Test
#include
+#include
+
+//____________________________________________________________________________//
+
// ************************************************************************** //
// ************** auto_unit_test_registrar ************** //
// ************************************************************************** //
@@ -38,7 +42,14 @@ auto_unit_test_suite()
struct auto_unit_test_registrar
{
// Constructor
- explicit auto_unit_test_registrar( test_case* tc ) { auto_unit_test_suite()->add( tc ); }
+ explicit auto_unit_test_registrar( test_case* tc )
+ {
+ auto_unit_test_suite()->add( tc );
+ }
+ explicit auto_unit_test_registrar( test_unit_generator const& tc_gen )
+ {
+ auto_unit_test_suite()->add( tc_gen );
+ }
};
} // namespace ut_detail
@@ -48,15 +59,39 @@ struct auto_unit_test_registrar
} // namespace boost
// ************************************************************************** //
-// ************** BOOST_AUTO_UNIT_TEST ************** //
+// ************** BOOST_AUTO_TEST_CASE ************** //
// ************************************************************************** //
-#define BOOST_AUTO_UNIT_TEST( func_name ) \
-static void func_name(); \
-static boost::unit_test::ut_detail::auto_unit_test_registrar \
- BOOST_JOIN( test_registrar, __LINE__) \
- ( BOOST_TEST_CASE( func_name ) ); \
-static void func_name() \
+#define BOOST_AUTO_TEST_CASE( func_name ) \
+static void func_name(); \
+static boost::unit_test::ut_detail::auto_unit_test_registrar \
+BOOST_JOIN( test_registrar, __LINE__) \
+ ( BOOST_TEST_CASE( func_name ) ); \
+static void func_name() \
+/**/
+
+// ************************************************************************** //
+// ************** BOOST_AUTO_TEST_CASE_TEMPLATE ************** //
+// ************************************************************************** //
+
+#define BOOST_AUTO_TEST_CASE_TEMPLATE( name, type_name, TL ) \
+template \
+void BOOST_JOIN( name, _impl )( boost::type* ); \
+ \
+struct name { \
+ template \
+ static void run( boost::type* frwrd = 0 ) \
+ { \
+ BOOST_JOIN( name, _impl )( frwrd ); \
+ } \
+}; \
+ \
+static boost::unit_test::ut_detail::auto_unit_test_registrar \
+BOOST_JOIN( test_registrar, __LINE__) \
+ ( BOOST_TEST_CASE_TEMPLATE( name, TL ) ); \
+ \
+template \
+void BOOST_JOIN( name, _impl )( boost::type* ) \
/**/
// ************************************************************************** //
@@ -70,10 +105,22 @@ init_unit_test_suite( int /* argc */, char* /* argv */ [] ) {
}
#endif
+
+// deprecated
+#define BOOST_AUTO_UNIT_TEST( f ) BOOST_AUTO_TEST_CASE( f )
+
+
+//____________________________________________________________________________//
+
+#include
+
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.13 2005/02/20 08:27:05 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.12 2005/02/01 06:40:06 rogeeff
// copyright update
// old log entries removed
@@ -82,4 +129,4 @@ init_unit_test_suite( int /* argc */, char* /* argv */ [] ) {
//
// ***************************************************************************
-#endif // BOOST_AUTO_UNIT_TEST_HPP_071894GER
+#endif // BOOST_TEST_AUTO_UNIT_TEST_HPP_071894GER
diff --git a/include/boost/test/detail/unit_test_config.hpp b/include/boost/test/detail/config.hpp
similarity index 66%
rename from include/boost/test/detail/unit_test_config.hpp
rename to include/boost/test/detail/config.hpp
index cd3659ba..ebec4b32 100644
--- a/include/boost/test/detail/unit_test_config.hpp
+++ b/include/boost/test/detail/config.hpp
@@ -9,14 +9,14 @@
//
// Version : $Revision$
//
-// Description : contains workarounds and works as a central place for configurable types
+// Description : as a central place for global configuration switches
// ***************************************************************************
-#ifndef BOOST_UNIT_TEST_CONFIG_HPP_071894GER
-#define BOOST_UNIT_TEST_CONFIG_HPP_071894GER
+#ifndef BOOST_TEST_CONFIG_HPP_071894GER
+#define BOOST_TEST_CONFIG_HPP_071894GER
// Boost
-#include // compilers workarounds and std::ptrdiff_t
+#include // compilers workarounds
#include
#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
@@ -25,29 +25,30 @@
#define BOOST_STANDARD_IOSTREAMS
#endif
+//____________________________________________________________________________//
+
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570)) || \
BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) || \
(defined __sgi && BOOST_WORKAROUND(_COMPILER_VERSION, BOOST_TESTED_AT(730)))
#define BOOST_TEST_SHIFTED_LINE
#endif
+//____________________________________________________________________________//
+
#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
# define BOOST_TEST_CALL_DECL __cdecl
#else
# define BOOST_TEST_CALL_DECL /**/
#endif
-// Boost.Test
-#include
-#include
-#define BOOST_TEST_STRING_LITERAL( s ) boost::unit_test::literal_string( s, sizeof( s ) - 1 )
-#define BOOST_TEST_STRINGIZE( s ) BOOST_TEST_STRING_LITERAL( BOOST_STRINGIZE( s ) )
-#define BOOST_TEST_EMPTY_STRING BOOST_TEST_STRING_LITERAL( "" )
+//____________________________________________________________________________//
#if defined(BOOST_HAS_SIGACTION)
#define BOOST_TEST_SUPPORT_TIMEOUT
#endif
+//____________________________________________________________________________//
+
#if BOOST_WORKAROUND(__BORLANDC__, <= 0x570) || \
BOOST_WORKAROUND( __COMO__, <= 0x433 ) || \
BOOST_WORKAROUND( __INTEL_COMPILER, <= 800 ) || \
@@ -58,46 +59,19 @@
#define BOOST_TEST_NO_PROTECTED_USING
#endif
-// STL
-#include // for std::distance
-#include // for std::ptrdiff_t
+//____________________________________________________________________________//
-namespace boost {
+#define BOOST_TEST_PROTECTED_VIRTUAL virtual
-namespace unit_test {
-
-typedef unsigned long counter_t;
-
-namespace ut_detail {
-
-#ifdef BOOST_NO_STD_DISTANCE
-template
-std::ptrdiff_t distance( T const& x_, T const& y_ )
-{
- std::ptrdiff_t res = 0;
-
- std::distance( x_, y_, res );
-
- return res;
-}
-#else
-using std::distance;
-#endif
-
-#define BOOST_TEST_L( s ) const_string( s, sizeof(s) )
-
-} // namespace ut_detail
-
-} // namespace unit_test
-
-namespace unit_test_framework = unit_test;
-
-} // namespace boost
+//____________________________________________________________________________//
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.1 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.28 2005/02/01 06:40:07 rogeeff
// copyright update
// old log entries removed
@@ -119,4 +93,4 @@ namespace unit_test_framework = unit_test;
//
// ***************************************************************************
-#endif // BOOST_UNIT_TEST_CONFIG_HPP_071894GER
+#endif // BOOST_TEST_CONFIG_HPP_071894GER
diff --git a/include/boost/test/detail/enable_warnings.hpp b/include/boost/test/detail/enable_warnings.hpp
index 513a9a0e..738b71f6 100644
--- a/include/boost/test/detail/enable_warnings.hpp
+++ b/include/boost/test/detail/enable_warnings.hpp
@@ -17,6 +17,8 @@
# pragma warning(default: 4512) // assignment operator could not be generated
# pragma warning(default: 4100) // unreferenced formal parameter
# pragma warning(default: 4996) // was declared deprecated
+# pragma warning(default: 4355) // 'this' : used in base member initializer list
+# pragma warning(default: 4706) // assignment within conditional expression
# pragma warning(pop)
#endif
@@ -24,6 +26,9 @@
// Revision History :
//
// $Log$
+// Revision 1.4 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.3 2005/02/01 06:40:07 rogeeff
// copyright update
// old log entries removed
diff --git a/include/boost/test/fwd_decl.hpp b/include/boost/test/detail/fwd_decl.hpp
similarity index 62%
rename from include/boost/test/fwd_decl.hpp
rename to include/boost/test/detail/fwd_decl.hpp
index 1a570800..049d6a48 100644
--- a/include/boost/test/fwd_decl.hpp
+++ b/include/boost/test/detail/fwd_decl.hpp
@@ -18,14 +18,25 @@
namespace boost {
class execution_monitor;
+class execution_exception;
namespace unit_test {
+class test_unit;
class test_case;
+class test_suite;
+
+class test_tree_visitor;
+class test_observer;
+
+// singletons
+class unit_test_monitor_t;
+class unit_test_log_t;
+
class unit_test_log_formatter;
struct log_entry_data;
struct log_checkpoint_data;
-class unit_test_log_t;
+
} // namespace unit_test
@@ -35,23 +46,8 @@ class unit_test_log_t;
// Revision History :
//
// $Log$
-// Revision 1.3 2005/02/01 08:59:28 rogeeff
-// supplied_log_formatters split
-// change formatters interface to simplify result interface
-//
-// Revision 1.2 2005/02/01 06:40:06 rogeeff
-// copyright update
-// old log entries removed
-// minor stilistic changes
-// depricated tools removed
-//
-// Revision 1.1 2005/01/18 08:27:30 rogeeff
-// unit_test_log rework:
-// eliminated need for ::instance()
-// eliminated need for << end and ...END macro
-// straitend interface between log and formatters
-// change compiler like formatter name
-// minimized unit_test_log interface and reworked to use explicit calls
+// Revision 1.1 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
//
// ***************************************************************************
diff --git a/include/boost/test/detail/global_typedef.hpp b/include/boost/test/detail/global_typedef.hpp
new file mode 100644
index 00000000..7063f302
--- /dev/null
+++ b/include/boost/test/detail/global_typedef.hpp
@@ -0,0 +1,81 @@
+// (C) Copyright Gennadiy Rozental 2001-2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/test for the library home page.
+//
+// File : $RCSfile$
+//
+// Version : $Revision$
+//
+// Description : some trivial global typedefs
+// ***************************************************************************
+
+#ifndef BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
+#define BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
+
+#include
+#define BOOST_TEST_L( s ) boost::unit_test::literal_string( s, sizeof( s ) - 1 )
+#define BOOST_TEST_STRINGIZE( s ) BOOST_TEST_L( BOOST_STRINGIZE( s ) )
+#define BOOST_TEST_EMPTY_STRING BOOST_TEST_L( "" )
+
+#include
+
+//____________________________________________________________________________//
+
+namespace boost {
+
+namespace unit_test {
+
+typedef unsigned long counter_t;
+
+//____________________________________________________________________________//
+
+enum report_level { CONFIRMATION_REPORT, SHORT_REPORT, DETAILED_REPORT, NO_REPORT, INV_REPORT_LEVEL };
+
+//____________________________________________________________________________//
+
+enum output_format { CLF /* compiler log format */, XML /* XML */ };
+
+//____________________________________________________________________________//
+
+enum test_unit_type { tut_case = 0x01, tut_suite = 0x10, tut_any = 0x11 };
+
+//____________________________________________________________________________//
+
+typedef unsigned long test_unit_id;
+const test_unit_id INV_TEST_UNIT_ID = 0xFFFFFFFF;
+const test_unit_id MAX_TEST_CASE_ID = 0xFFFFFFFE;
+const test_unit_id MIN_TEST_CASE_ID = 0x00010000;
+const test_unit_id MAX_TEST_SUITE_ID = 0x0000FF00;
+const test_unit_id MIN_TEST_SUITE_ID = 0x00000001;
+
+//____________________________________________________________________________//
+
+inline test_unit_type
+test_id_2_unit_type( test_unit_id id )
+{
+ return (id & 0xFFFF0000) != 0 ? tut_case : tut_suite;
+}
+
+//____________________________________________________________________________//
+
+} // namespace unit_test
+
+} // namespace boost
+
+//____________________________________________________________________________//
+
+#include
+
+// ***************************************************************************
+// Revision History :
+//
+// $Log$
+// Revision 1.1 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
+// ***************************************************************************
+
+#endif // BOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
diff --git a/include/boost/test/detail/log_level.hpp b/include/boost/test/detail/log_level.hpp
index a24ba131..5150e5b7 100644
--- a/include/boost/test/detail/log_level.hpp
+++ b/include/boost/test/detail/log_level.hpp
@@ -34,8 +34,7 @@ enum log_level {
log_system_errors = 6, // including timeouts, signals, traps
log_fatal_errors = 7, // including unit test macros or
// fatal system errors
- log_progress_only = 8, // only unit test progress to be reported
- log_nothing = 9
+ log_nothing = 8
};
} // namespace unit_test
@@ -45,6 +44,9 @@ enum log_level {
// Revision History :
//
// $Log$
+// Revision 1.2 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.1 2005/01/18 08:27:30 rogeeff
// unit_test_log rework:
// eliminated need for ::instance()
diff --git a/include/boost/test/detail/suppress_warnings.hpp b/include/boost/test/detail/suppress_warnings.hpp
index 9ed498bf..b67f1106 100644
--- a/include/boost/test/detail/suppress_warnings.hpp
+++ b/include/boost/test/detail/suppress_warnings.hpp
@@ -18,12 +18,17 @@
# pragma warning(disable: 4512) // assignment operator could not be generated
# pragma warning(disable: 4100) // unreferenced formal parameter
# pragma warning(disable: 4996) // was declared deprecated
+# pragma warning(disable: 4355) // 'this' : used in base member initializer list
+# pragma warning(disable: 4706) // assignment within conditional expression
#endif
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.4 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.3 2005/02/01 06:40:07 rogeeff
// copyright update
// old log entries removed
diff --git a/include/boost/test/detail/unit_test_parameters.hpp b/include/boost/test/detail/unit_test_parameters.hpp
index a0502751..b0b2dcfa 100644
--- a/include/boost/test/detail/unit_test_parameters.hpp
+++ b/include/boost/test/detail/unit_test_parameters.hpp
@@ -12,52 +12,57 @@
// Description : storage for unit test framework parameters information
// ***************************************************************************
-#ifndef BOOST_UNIT_TEST_PARAMETERS_HPP_071894GER
-#define BOOST_UNIT_TEST_PARAMETERS_HPP_071894GER
+#ifndef BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
+#define BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
-#include
+#include
+#include
+
+#include
+
+//____________________________________________________________________________//
namespace boost {
namespace unit_test {
-// framework parameters and there corresponding command-line arguments
-static literal_string LOG_LEVEL = "BOOST_TEST_LOG_LEVEL"; // --log_level
-static literal_string NO_RESULT_CODE = "BOOST_TEST_RESULT_CODE"; // --result_code
-static literal_string REPORT_LEVEL = "BOOST_TEST_REPORT_LEVEL"; // --report_level
-static literal_string TESTS_TO_RUN = "BOOST_TESTS_TO_RUN"; // --run_test
-static literal_string SAVE_TEST_PATTERN = "BOOST_TEST_SAVE_PATTERN"; // --save_pattern
-static literal_string BUILD_INFO = "BOOST_TEST_BUILD_INFO"; // --build_info
-static literal_string CATCH_SYS_ERRORS = "BOOST_TEST_CATCH_SYSTEM_ERRORS"; // --catch_system_errors
-static literal_string REPORT_FORMAT = "BOOST_TEST_REPORT_FORMAT"; // --report_format
-static literal_string LOG_FORMAT = "BOOST_TEST_LOG_FORMAT"; // --log_format
-static literal_string OUTPUT_FORMAT = "BOOST_TEST_OUTPUT_FORMAT"; // --output_format
-static literal_string DETECT_MEM_LEAKS = "BOOST_TEST_DETECT_MEMORY_LEAKS"; // --detect_memory_leaks
+// ************************************************************************** //
+// ************** runtime_config ************** //
+// ************************************************************************** //
-enum report_level { CONFIRMATION_REPORT, SHORT_REPORT, DETAILED_REPORT, NO_REPORT, UNDEF_REPORT };
-static literal_string report_level_names[] = { "confirm" , "short" , "detailed" , "no" };
+namespace runtime_config {
-enum output_format { HRF /* human readable format */, XML /* XML */ };
+void init( int* argc, char** argv );
-const_string retrieve_framework_parameter( const_string parameter_name_, int* argc_, char** argv_ );
+unit_test::log_level log_level();
+bool no_result_code();
+unit_test::report_level report_level();
+const_string test_to_run();
+bool save_pattern();
+bool show_build_info();
+bool show_progress();
+bool catch_sys_errors();
+output_format report_format();
+output_format log_format();
+bool detect_memory_leaks();
+
+} // namespace runtime_config
} // namespace unit_test
} // namespace boost
+//____________________________________________________________________________//
+
+#include
+
// ***************************************************************************
// Revision History :
//
// $Log$
-// Revision 1.18 2005/02/01 06:40:07 rogeeff
-// copyright update
-// old log entries removed
-// minor stilistic changes
-// depricated tools removed
-//
-// Revision 1.17 2005/01/31 05:59:36 rogeeff
-// detect_memory_leaks feature added
+// Revision 1.19 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
//
// ***************************************************************************
-#endif // BOOST_UNIT_TEST_CONFIG_HPP_071894GER
+#endif // BOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
diff --git a/include/boost/test/detail/workaround.hpp b/include/boost/test/detail/workaround.hpp
new file mode 100644
index 00000000..0c4a6439
--- /dev/null
+++ b/include/boost/test/detail/workaround.hpp
@@ -0,0 +1,70 @@
+// (C) Copyright Gennadiy Rozental 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/test for the library home page.
+//
+// File : $RCSfile$
+//
+// Version : $Revision$
+//
+// Description : contains mics. workarounds
+// ***************************************************************************
+
+#ifndef BOOST_TEST_WORKAROUND_HPP_021005GER
+#define BOOST_TEST_WORKAROUND_HPP_021005GER
+
+// Boost
+#include // compilers workarounds and std::ptrdiff_t
+
+// STL
+#include // for std::distance
+
+#include
+
+//____________________________________________________________________________//
+
+namespace boost {
+
+namespace unit_test {
+
+namespace ut_detail {
+
+#ifdef BOOST_NO_STD_DISTANCE
+template
+std::ptrdiff_t distance( T const& x_, T const& y_ )
+{
+ std::ptrdiff_t res = 0;
+
+ std::distance( x_, y_, res );
+
+ return res;
+}
+#else
+using std::distance;
+#endif
+
+} // namespace ut_detail
+
+} // namespace unit_test
+
+namespace unit_test_framework = unit_test;
+namespace test_toolbox = test_tools;
+
+} // namespace boost
+
+//____________________________________________________________________________//
+
+#include
+
+// ***************************************************************************
+// Revision History :
+//
+// $Log$
+// Revision 1.1 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
+// ***************************************************************************
+
+#endif // BOOST_TEST_WORKAROUND_HPP_021005GER
diff --git a/include/boost/test/execution_monitor.hpp b/include/boost/test/execution_monitor.hpp
index 0a6149f5..95661dc7 100644
--- a/include/boost/test/execution_monitor.hpp
+++ b/include/boost/test/execution_monitor.hpp
@@ -29,18 +29,23 @@
// design presented here.
// ***************************************************************************
-#ifndef BOOST_EXECUTION_MONITOR_HPP_071894GER
-#define BOOST_EXECUTION_MONITOR_HPP_071894GER
+#ifndef BOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
+#define BOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
// Boost.Test
-#include
-#include
+#include
+#include
+#include
// Boost
#include
#include
#include
+#include
+
+//____________________________________________________________________________//
+
namespace boost {
namespace detail {
@@ -60,7 +65,7 @@ public:
// Destructor
virtual ~translate_exception_base() {}
- virtual int operator()( boost::execution_monitor& mon ) = 0;
+ virtual int operator()( unit_test::callback0 const& F ) = 0;
protected:
// Data members
@@ -126,10 +131,7 @@ private:
class execution_monitor {
public:
- // Destructor
- virtual ~execution_monitor() {}
-
- int execute( bool catch_system_errors = true, int timeout_ = 0 ); // timeout is in seconds
+ int execute( unit_test::callback0 const& F, bool catch_system_errors = true, int timeout = 0 );
// The catch_system_errors parameter specifies whether the monitor should
// try to catch system errors/exceptions that would cause program to crash
// in regular case
@@ -138,28 +140,24 @@ public:
//
// Returns: Value returned by function().
//
- // Effects: Calls run_function() inside a try/catch block which also may
+ // Effects: Calls executes supplied function F inside a try/catch block which also may
// include other unspecified platform dependent error detection code.
//
// Throws: execution_exception on an uncaught C++ exception,
// a hardware or software signal, trap, or other exception.
//
- // Note: execute() doesn't consider it an error for function() to
- // return a non-zero value.
+ // Note: execute() doesn't consider it an error for F to return a non-zero value.
- virtual int function() = 0;
- // user supplied function called by run_function()
-
- int run_function();
- // call function() and translate user exceptions with translators registered
-
+ // register custom (user supplied) exception translator
template
void register_exception_translator( ExceptionTranslator const& tr, boost::type* = 0 );
private:
+ // implementation helpers
+ int catch_signals( unit_test::callback0 const& F, bool catch_system_errors, int timeout );
+
// Data members
boost::scoped_ptr m_custom_translators;
-
}; // execution_monitor
namespace detail {
@@ -176,13 +174,11 @@ public:
explicit translate_exception( ExceptionTranslator const& tr, base_ptr& next )
: translate_exception_base( next ), m_translator( tr ) {}
- virtual int operator()( boost::execution_monitor& mon )
+ int operator()( unit_test::callback0 const& F )
{
try {
- return m_next ? (*m_next)( mon ) : mon.function();
- }
- catch( Exception const& e )
- {
+ return m_next ? (*m_next)( F ) : F();
+ } catch( Exception const& e ) {
m_translator( e );
return boost::exit_exception_failure;
}
@@ -210,12 +206,25 @@ execution_monitor::register_exception_translator( ExceptionTranslator const& tr,
// turn on system memory leak detection
void detect_memory_leaks();
+// ************************************************************************** //
+// ************** execution_aborted ************** //
+// ************************************************************************** //
+
+struct execution_aborted {};
+
} // namespace boost
+//____________________________________________________________________________//
+
+#include
+
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.22 2005/02/20 08:27:05 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.21 2005/02/01 08:59:28 rogeeff
// supplied_log_formatters split
// change formatters interface to simplify result interface
diff --git a/include/boost/test/floating_point_comparison.hpp b/include/boost/test/floating_point_comparison.hpp
index beb3f850..11716cc8 100644
--- a/include/boost/test/floating_point_comparison.hpp
+++ b/include/boost/test/floating_point_comparison.hpp
@@ -12,13 +12,17 @@
// Description : defines algoirthms for comparing 2 floating point values
// ***************************************************************************
-#ifndef BOOST_FLOATING_POINT_COMPARISON_HPP_071894GER
-#define BOOST_FLOATING_POINT_COMPARISON_HPP_071894GER
+#ifndef BOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
+#define BOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
#include // for std::numeric_limits
#include
+#include
+
+//____________________________________________________________________________//
+
namespace boost {
namespace test_tools {
@@ -117,10 +121,17 @@ compute_tolerance( FPT percentage_tolerance )
} // namespace boost
+//____________________________________________________________________________//
+
+#include
+
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.21 2005/02/20 08:27:05 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.20 2005/02/01 06:40:06 rogeeff
// copyright update
// old log entries removed
diff --git a/include/boost/test/framework.hpp b/include/boost/test/framework.hpp
new file mode 100644
index 00000000..e8f2f2a2
--- /dev/null
+++ b/include/boost/test/framework.hpp
@@ -0,0 +1,86 @@
+// (C) Copyright Gennadiy Rozental 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/test for the library home page.
+//
+// File : $RCSfile$
+//
+// Version : $Revision$
+//
+// Description : defines framework singletom object
+// ***************************************************************************
+
+#ifndef BOOST_TEST_FRAMEWORK_HPP_020805GER
+#define BOOST_TEST_FRAMEWORK_HPP_020805GER
+
+// Boost.Test
+#include
+#include
+#include
+
+#include
+
+//____________________________________________________________________________//
+
+namespace boost {
+
+namespace unit_test {
+
+// ************************************************************************** //
+// ************** framework ************** //
+// ************************************************************************** //
+
+namespace framework {
+
+// initialization
+void init( int argc, char* argv[] );
+
+// mutation access methods
+void register_test_unit( test_case* tc );
+void register_test_unit( test_suite* ts );
+
+void register_observer( test_observer& );
+void reset_observers();
+
+// constant access methods
+test_suite const& master_test_suite();
+test_case const& current_test_case();
+test_unit const& get( test_unit_id, test_unit_type );
+template
+UnitType const& get( test_unit_id id )
+{
+ return static_cast( get( id, (test_unit_type)UnitType::type ) );
+}
+
+// test initiation
+void run( test_unit_id = INV_TEST_UNIT_ID, bool continue_test = true );
+void run( test_unit const*, bool continue_test = true );
+
+// public test events dispatchers
+void assertion_result( bool passed );
+void exception_caught( execution_exception const& );
+void test_unit_aborted();
+
+} // namespace framework
+
+} // unit_test
+
+} // namespace boost
+
+//____________________________________________________________________________//
+
+#include
+
+// ***************************************************************************
+// Revision History :
+//
+// $Log$
+// Revision 1.1 2005/02/20 08:27:05 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
+// ***************************************************************************
+
+#endif // BOOST_TEST_FRAMEWORK_HPP_020805GER
+
diff --git a/include/boost/test/impl/compiler_log_formatter.ipp b/include/boost/test/impl/compiler_log_formatter.ipp
index e8f9b6cd..24f91dfd 100644
--- a/include/boost/test/impl/compiler_log_formatter.ipp
+++ b/include/boost/test/impl/compiler_log_formatter.ipp
@@ -1,4 +1,4 @@
-// (C) Copyright Gennadiy Rozental 2001-2005.
+// (C) Copyright Gennadiy Rozental 2005.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -9,7 +9,7 @@
//
// Version : $Revision$
//
-// Description : implements compiler like log formatter
+// Description : implements compiler like Log formatter
// ***************************************************************************
#ifndef BOOST_TEST_COMPILER_LOG_FORMATTER_IPP_020105GER
@@ -18,6 +18,8 @@
// Boost.Test
#include
#include
+#include
+#include
// Boost
#include
@@ -25,6 +27,10 @@
// STL
#include
+#include
+
+//____________________________________________________________________________//
+
namespace boost {
namespace unit_test {
@@ -36,86 +42,88 @@ namespace output {
// ************************************************************************** //
void
-compiler_log_formatter::start_log( std::ostream& output, bool log_build_info )
+compiler_log_formatter::log_start( std::ostream& output, counter_t test_cases_amount )
{
- if( log_build_info )
- output << "Platform: " << BOOST_PLATFORM << '\n'
- << "Compiler: " << BOOST_COMPILER << '\n'
- << "STL : " << BOOST_STDLIB << '\n'
- << "Boost : " << BOOST_VERSION/100000 << "."
- << BOOST_VERSION/100 % 1000 << "."
- << BOOST_VERSION % 100 << '\n';
+ if( test_cases_amount > 0 )
+ output << "Running " << test_cases_amount << " test "
+ << (test_cases_amount > 1 ? "cases" : "case") << "...\n";
}
//____________________________________________________________________________//
void
-compiler_log_formatter::log_header( std::ostream& output, counter_t test_cases_amount )
+compiler_log_formatter::log_finish( std::ostream& )
{
- output << "Running " << test_cases_amount << " test "
- << (test_cases_amount > 1 ? "cases" : "case") << "...\n";
+ // do nothing
}
//____________________________________________________________________________//
void
-compiler_log_formatter::finish_log( std::ostream& /* output */ )
+compiler_log_formatter::log_build_info( std::ostream& output )
{
+ output << "Platform: " << BOOST_PLATFORM << '\n'
+ << "Compiler: " << BOOST_COMPILER << '\n'
+ << "STL : " << BOOST_STDLIB << '\n'
+ << "Boost : " << BOOST_VERSION/100000 << "."
+ << BOOST_VERSION/100 % 1000 << "."
+ << BOOST_VERSION % 100 << std::endl;
}
//____________________________________________________________________________//
void
-compiler_log_formatter::start_test_case( test_case const& tc )
+compiler_log_formatter::test_unit_start( std::ostream& output, test_unit const& tu )
{
- m_curr_test_case_name = tc.p_name;
+ output << "Entering test " << tu.p_type_name << " \"" << tu.p_name << "\"" << std::endl;
}
//____________________________________________________________________________//
void
-compiler_log_formatter::test_case_enter( std::ostream& output, test_case const& tc )
+compiler_log_formatter::test_unit_finish( std::ostream& output, test_unit const& tu, unsigned long elapsed )
{
- output << "Entering test " << ( tc.p_type ? "case" : "suite" ) << " \"" << m_curr_test_case_name << "\"";
-}
+ output << "Leaving test " << tu.p_type_name << " \"" << tu.p_name << "\"";
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::test_case_exit( std::ostream& output, test_case const& tc, long testing_time_in_mks )
-{
- output << "Leaving test " << ( tc.p_type ? "case" : "suite" ) << " \"" << tc.p_name << "\"";
- if( testing_time_in_mks > 0 ) {
+ if( elapsed > 0 ) {
output << "; testing time: ";
- if( testing_time_in_mks % 1000 == 0 )
- output << testing_time_in_mks/1000 << "ms";
+ if( elapsed % 1000 == 0 )
+ output << elapsed/1000 << "ms";
else
- output << testing_time_in_mks << "mks";
+ output << elapsed << "mks";
}
- // we should've probably restored m_curr_test_case_name here,
- // but we will reset it anyway next time in test_case_enter
+ output << std::endl;
}
//____________________________________________________________________________//
void
-compiler_log_formatter::log_exception( std::ostream& output, log_checkpoint_data const& checkpoint_data,
- const_string explanation )
+compiler_log_formatter::test_unit_skipped( std::ostream& output, test_unit const& tu )
{
- output << "Exception in \"" << m_curr_test_case_name << "\": " << explanation;
+ output << "Test " << tu.p_type_name << " \"" << tu.p_name << "\"" << "is skipped" << std::endl;
+}
+
+//____________________________________________________________________________//
+
+void
+compiler_log_formatter::log_exception( std::ostream& output, log_checkpoint_data const& checkpoint_data, const_string explanation )
+{
+ output << "Exception in \"" << framework::current_test_case().p_name << "\": " << explanation;
if( !checkpoint_data.m_message.empty() ) {
output << '\n';
print_prefix( output, checkpoint_data.m_file, checkpoint_data.m_line );
output << "last checkpoint: " << checkpoint_data.m_message;
}
+
+ output << std::endl;
}
//____________________________________________________________________________//
void
-compiler_log_formatter::begin_log_entry( std::ostream& output, log_entry_data const& entry_data, log_entry_types let )
+compiler_log_formatter::log_entry_start( std::ostream& output, log_entry_data const& entry_data, log_entry_types let )
{
switch( let ) {
case BOOST_UTL_ET_INFO:
@@ -126,15 +134,15 @@ compiler_log_formatter::begin_log_entry( std::ostream& output, log_entry_data co
break;
case BOOST_UTL_ET_WARNING:
print_prefix( output, entry_data.m_file, entry_data.m_line );
- output << "warning in \"" << m_curr_test_case_name << "\": ";
+ output << "warning in \"" << framework::current_test_case().p_name << "\": ";
break;
case BOOST_UTL_ET_ERROR:
print_prefix( output, entry_data.m_file, entry_data.m_line );
- output << "error in \"" << m_curr_test_case_name << "\": ";
+ output << "error in \"" << framework::current_test_case().p_name << "\": ";
break;
case BOOST_UTL_ET_FATAL_ERROR:
print_prefix( output, entry_data.m_file, entry_data.m_line );
- output << "fatal error in \"" << m_curr_test_case_name << "\": ";
+ output << "fatal error in \"" << framework::current_test_case().p_name << "\": ";
break;
}
}
@@ -150,8 +158,9 @@ compiler_log_formatter::log_entry_value( std::ostream& output, const_string valu
//____________________________________________________________________________//
void
-compiler_log_formatter::end_log_entry( std::ostream& /* output */ )
+compiler_log_formatter::log_entry_finish( std::ostream& output )
{
+ output << std::endl;
}
//____________________________________________________________________________//
@@ -170,10 +179,17 @@ compiler_log_formatter::print_prefix( std::ostream& output, const_string file, s
} // namespace boost
+//____________________________________________________________________________//
+
+#include
+
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.2 2005/02/20 08:27:06 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.1 2005/02/01 08:59:38 rogeeff
// supplied_log_formatters split
// change formatters interface to simplify result interface
diff --git a/include/boost/test/impl/cpp_main.ipp b/include/boost/test/impl/cpp_main.ipp
index 3804b422..a4450c15 100644
--- a/include/boost/test/impl/cpp_main.ipp
+++ b/include/boost/test/impl/cpp_main.ipp
@@ -13,44 +13,48 @@
// Description : main function implementation for Program Executon Monitor
// ***************************************************************************
-#ifndef BOOST_CPP_MAIN_IPP_012205GER
-#define BOOST_CPP_MAIN_IPP_012205GER
+#ifndef BOOST_TEST_CPP_MAIN_IPP_012205GER
+#define BOOST_TEST_CPP_MAIN_IPP_012205GER
// Boost.Test
#include
-#include
+#include
+#include
// Boost
-#include
-#include
+#include // for exit codes
+#include // for workarounds
// STL
#include
-#include
+#include // std::getenv
#include
+#include
+
+//____________________________________________________________________________//
+
#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std { using ::getenv; using ::strcmp; }
+namespace std { using ::getenv; }
#endif
int cpp_main( int argc, char* argv[] ); // prototype for user's cpp_main()
namespace {
-class cpp_main_caller : public boost::execution_monitor {
-public:
- cpp_main_caller( int argc, char** argv )
- : m_argc( argc ), m_argv( argv ) {}
-
- int function() { return cpp_main( m_argc, m_argv ); }
+struct cpp_main_caller {
+ cpp_main_caller( int argc, char** argv ) : m_argc( argc ), m_argv( argv ) {}
+ int operator()() { return cpp_main( m_argc, m_argv ); }
+
private:
- int m_argc;
- char** m_argv;
+ // Data members
+ int m_argc;
+ char** m_argv;
};
-}
+} // local namespace
// ************************************************************************** //
// ************** cpp main ************** //
@@ -58,29 +62,28 @@ private:
int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
{
- cpp_main_caller caller( argc, argv );
-
int result;
boost::unit_test::const_string p( std::getenv( "BOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
bool catch_system_errors = p != "no";
try {
- result = caller.execute( catch_system_errors );
+ ::boost::execution_monitor ex_mon;
+ result = ex_mon.execute( ::boost::unit_test::callback0( cpp_main_caller( argc, argv ) ), catch_system_errors );
if( result == 0 )
- result = boost::exit_success;
- else if( result != boost::exit_success ) {
+ result = ::boost::exit_success;
+ else if( result != ::boost::exit_success ) {
std::cout << "\n**** error return code: " << result << std::endl;
- result = boost::exit_failure;
+ result = ::boost::exit_failure;
}
}
- catch( boost::execution_exception const& exex ) {
+ catch( ::boost::execution_exception const& exex ) {
std::cout << "\n**** exception(" << exex.code() << "): " << exex.what() << std::endl;
- result = boost::exit_exception_failure;
+ result = ::boost::exit_exception_failure;
}
- if( result != boost::exit_success ) {
+ if( result != ::boost::exit_success ) {
std::cerr << "******** errors detected; see standard output for details ********" << std::endl;
}
else {
@@ -88,7 +91,7 @@ int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
// like the clutter. Use an environment variable to avoid command
// line argument modifications; for use in production programs
// that's a no-no in some organizations.
- boost::unit_test::const_string p( std::getenv( "BOOST_PRG_MON_CONFIRM" ) );
+ ::boost::unit_test::const_string p( std::getenv( "BOOST_PRG_MON_CONFIRM" ) );
if( p != "no" ) {
std::cerr << std::flush << "no errors detected" << std::endl;
}
@@ -99,10 +102,15 @@ int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
//____________________________________________________________________________//
+#include
+
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.5 2005/02/20 08:27:07 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.4 2005/02/01 06:40:07 rogeeff
// copyright update
// old log entries removed
@@ -120,4 +128,4 @@ int BOOST_TEST_CALL_DECL main( int argc, char* argv[] )
//
// ***************************************************************************
-#endif // BOOST_CPP_MAIN_IPP_012205GER
+#endif // BOOST_TEST_CPP_MAIN_IPP_012205GER
diff --git a/include/boost/test/impl/execution_monitor.ipp b/include/boost/test/impl/execution_monitor.ipp
index eb3a2dc5..b751f173 100644
--- a/include/boost/test/impl/execution_monitor.ipp
+++ b/include/boost/test/impl/execution_monitor.ipp
@@ -21,10 +21,11 @@
// boost libraries.
// ***************************************************************************
-#ifndef BOOST_EXECUTION_MONITOR_IPP_012205GER
-#define BOOST_EXECUTION_MONITOR_IPP_012205GER
+#ifndef BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
+#define BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
// Boost.Test
+#include
#include
// Boost
@@ -85,21 +86,19 @@ namespace std { using ::strlen; using ::strncat; }
#include
+//____________________________________________________________________________//
+
namespace boost {
namespace detail {
using unit_test::const_string;
-// boost::execution_monitor::execute() calls boost::detail::catch_signals() to
-// execute user function with signals control
// boost::execution_monitor::execute() calls boost::detail::report_error(...) to
// report any caught exception and throw execution_exception
const std::size_t REPORT_ERROR_BUFFER_SIZE = 512;
-static int catch_signals( execution_monitor & exmon, bool catch_system_errors, int timeout ); // timeout is in seconds. 0 implies none.
-
static void report_error(
execution_exception::error_code ec,
const_string msg1, // first part of the message
@@ -134,7 +133,7 @@ private:
void BOOST_TEST_CALL_DECL ms_se_trans_func( unsigned int id, _EXCEPTION_POINTERS* exps );
void BOOST_TEST_CALL_DECL ms_se_forward_func( unsigned int id, _EXCEPTION_POINTERS* exps );
-static void report_ms_se_error( unsigned int id );
+static void report_ms_se_error( unsigned int id );
//____________________________________________________________________________//
@@ -192,15 +191,7 @@ assert_reporting_function( int reportType, char* userMessage, int* retVal )
// ************************************************************************** //
int
-execution_monitor::run_function()
-{
- return m_custom_translators ? (*m_custom_translators)( *this ) : function();
-}
-
-//____________________________________________________________________________//
-
-int
-execution_monitor::execute( bool catch_system_errors, int timeout )
+execution_monitor::execute( unit_test::callback0 const& F, bool catch_system_errors, int timeout )
{
using unit_test::const_string;
@@ -220,7 +211,7 @@ execution_monitor::execute( bool catch_system_errors, int timeout )
#endif
try {
- return detail::catch_signals( *this, catch_system_errors, timeout );
+ return catch_signals( F, catch_system_errors, timeout );
}
// Catch-clause reference arguments are a bit different from function
@@ -228,10 +219,12 @@ execution_monitor::execute( bool catch_system_errors, int timeout )
// required. Programmers ask for const anyhow, so we supply it. That's
// easier than answering questions about non-const usage.
+ catch( execution_aborted const& )
+ { return 0; }
catch( char const* ex )
{ detail::report_error( execution_exception::cpp_exception_error, "C string: ", ex ); }
catch( std::string const& ex )
- { detail::report_error( execution_exception::cpp_exception_error, "std::string: ", ex.c_str() ); }
+ { detail::report_error( execution_exception::cpp_exception_error, "std::string: ", ex.c_str() ); }
// std:: exceptions
@@ -291,14 +284,14 @@ execution_monitor::execute( bool catch_system_errors, int timeout )
//____________________________________________________________________________//
-namespace detail {
-
#if defined(BOOST_SIGACTION_BASED_SIGNAL_HANDLING)
// ************************************************************************** //
// ************** boost::detail::signal_handler ************** //
// ************************************************************************** //
+namespace detail {
+
class signal_handler {
public:
// Constructor
@@ -402,20 +395,26 @@ signal_handler::~signal_handler()
//____________________________________________________________________________//
+} // namespace detail
+
// ************************************************************************** //
-// ************** boost::detail::catch_signals ************** //
+// ************** execution_monitor::catch_signals ************** //
// ************************************************************************** //
-int catch_signals( execution_monitor & exmon, bool catch_system_errors, int timeout )
+int
+execution_monitor::catch_signals( unit_test::callback0 const& F, bool catch_system_errors, int timeout )
{
- signal_handler local_signal_handler( catch_system_errors, timeout );
- int result = 0;
- execution_exception::error_code ec = execution_exception::no_error;
- const_string em;
+ using namespace detail;
+ typedef execution_exception::error_code ec_type;
- volatile int sigtype = sigsetjmp( signal_handler::jump_buffer(), 1 );
+ signal_handler local_signal_handler( catch_system_errors, timeout );
+ int result = 0;
+ ec_type ec = execution_exception::no_error;
+ const_string em;
+
+ volatile int sigtype = sigsetjmp( signal_handler::jump_buffer(), 1 );
if( sigtype == 0 ) {
- result = exmon.run_function();
+ result = m_custom_translators ? (*m_custom_translators)( F ) : F();
}
else {
switch(sigtype) {
@@ -446,9 +445,8 @@ int catch_signals( execution_monitor & exmon, bool catch_system_errors, int time
}
}
- if( ec != execution_exception::no_error ) {
+ if( ec != execution_exception::no_error )
throw unix_signal_exception( ec, em );
- }
return result;
} // unix catch_signals
@@ -458,29 +456,30 @@ int catch_signals( execution_monitor & exmon, bool catch_system_errors, int time
#elif (defined(__BORLANDC__) && defined(_Windows) && !defined(BOOST_DISABLE_WIN32))
// this works for Borland but not other Win32 compilers (which trap too many cases)
-int catch_signals( execution_monitor & exmon, bool catch_system_errors, int )
+int
+execution_monitor::catch_signals( unit_test::callback0 const& F, bool catch_system_errors, int )
{
int result;
if( catch_system_errors ) {
- __try { result = exmon.run_function(); }
+ __try { result = m_custom_translators ? (*m_custom_translators)( F ) : F(); }
- __except (1)
- {
- throw ms_se_exception( GetExceptionCode() );
+ __except (1) {
+ throw detail::ms_se_exception( GetExceptionCode() );
}
}
- else {
- result = exmon.run_function();
- }
+ else
+ result = m_custom_translators ? (*m_custom_translators)( F ) : F();
+
return result;
}
#else // default signal handler
-int catch_signals( execution_monitor& exmon, bool, int )
+int
+execution_monitor::catch_signals( unit_test::callback0 const& F, bool, int )
{
- return exmon.run_function();
+ return m_custom_translators ? (*m_custom_translators)( F ) : F();
}
#endif // choose signal handler
@@ -491,6 +490,8 @@ int catch_signals( execution_monitor& exmon, bool, int )
#if defined(BOOST_MS_STRCTURED_EXCEPTION_HANDLING)
+namespace detail {
+
void BOOST_TEST_CALL_DECL
ms_se_trans_func( unsigned int id, _EXCEPTION_POINTERS* /* exps */ )
{
@@ -573,12 +574,16 @@ report_ms_se_error( unsigned int id )
//____________________________________________________________________________//
+} // namespace detail
+
#endif // Microsoft structured exception handling
// ************************************************************************** //
// ************** report_error ************** //
// ************************************************************************** //
+namespace detail {
+
static void report_error( execution_exception::error_code ec, const_string msg1, const_string msg2 )
{
static char buf[REPORT_ERROR_BUFFER_SIZE];
@@ -609,14 +614,19 @@ detect_memory_leaks()
#endif // BOOST_MS_CRT_DEBUG_HOOKS
}
+} // namespace boost
+
//____________________________________________________________________________//
-} // namespace boost
+#include
// ***************************************************************************
// Revision History :
//
// $Log$
+// Revision 1.5 2005/02/20 08:27:07 rogeeff
+// This a major update for Boost.Test framework. See release docs for complete list of fixes/updates
+//
// Revision 1.4 2005/02/01 06:40:07 rogeeff
// copyright update
// old log entries removed
@@ -637,4 +647,4 @@ detect_memory_leaks()
//
// ***************************************************************************
-#endif // BOOST_EXECUTION_MONITOR_IPP_012205GER
+#endif // BOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
diff --git a/include/boost/test/impl/framework.ipp b/include/boost/test/impl/framework.ipp
new file mode 100644
index 00000000..a1079ff8
--- /dev/null
+++ b/include/boost/test/impl/framework.ipp
@@ -0,0 +1,373 @@
+// (C) Copyright Gennadiy Rozental 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// See http://www.boost.org/libs/test for the library home page.
+//
+// File : $RCSfile$
+//
+// Version : $Revision$
+//
+// Description : implements framework songleton - main driver for the test
+// ***************************************************************************
+
+#ifndef BOOST_TEST_FRAMEWORK_IPP_021005GER
+#define BOOST_TEST_FRAMEWORK_IPP_021005GER
+
+// Boost.Test
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+
+#include
+
+// Boost
+#include
+
+// STL
+#include