Showing preview only (1,663K chars total). Download the full file or copy to clipboard to get everything.
Repository: boostcon/cppnow_presentations_2014
Branch: master
Commit: 46107645315b
Files: 476
Total size: 46.9 MB
Directory structure:
gitextract_igkvdt0q/
├── .gitignore
├── README.md
└── files/
├── ConceptClang.pptx
├── CppNow2014Ranges.odp
├── PracticalTypeErasureSlides.odp
├── bounded_integer.odp
├── cxx11-library-design.pptx
├── functional-data-structures.key
├── open-pattern-matching.pptx
├── optimization_boost_asio.key
├── ownership_of_memory.odp
├── test_driven/
│ ├── Boost.Test Documentation Rewrite/
│ │ ├── doc/
│ │ │ └── src/
│ │ │ └── boostbook.css
│ │ ├── index.html
│ │ └── libs/
│ │ └── test/
│ │ └── doc/
│ │ ├── Jamfile.v2
│ │ ├── html/
│ │ │ ├── index.html
│ │ │ ├── test/
│ │ │ │ ├── guide/
│ │ │ │ │ ├── acceptance_tests.html
│ │ │ │ │ ├── compilation/
│ │ │ │ │ │ ├── _main_.html
│ │ │ │ │ │ ├── header_only.html
│ │ │ │ │ │ ├── minimal_header.html
│ │ │ │ │ │ ├── shared_library.html
│ │ │ │ │ │ └── static_library.html
│ │ │ │ │ ├── compilation.html
│ │ │ │ │ ├── exception_safety_test.html
│ │ │ │ │ ├── manually_registering_test_cases_and_suites.html
│ │ │ │ │ ├── mocking_collaborators.html
│ │ │ │ │ ├── test_case_design.html
│ │ │ │ │ ├── testing__main_.html
│ │ │ │ │ ├── testing_file_i_o.html
│ │ │ │ │ ├── testing_file_io.html
│ │ │ │ │ └── testing_protected_or_private_members.html
│ │ │ │ ├── guide.html
│ │ │ │ ├── how_to_read_this_documentation.html
│ │ │ │ ├── motivation.html
│ │ │ │ ├── reference/
│ │ │ │ │ ├── assertion/
│ │ │ │ │ │ ├── _boost____level___bitwise_equal_.html
│ │ │ │ │ │ ├── _boost____level___close_.html
│ │ │ │ │ │ ├── _boost____level___close_fraction_.html
│ │ │ │ │ │ ├── _boost____level___equal_collections_.html
│ │ │ │ │ │ ├── _boost____level___exception_.html
│ │ │ │ │ │ ├── _boost____level___ge_.html
│ │ │ │ │ │ ├── _boost____level___gt_.html
│ │ │ │ │ │ ├── _boost____level___le_.html
│ │ │ │ │ │ ├── _boost____level___lt_.html
│ │ │ │ │ │ ├── _boost____level___message_.html
│ │ │ │ │ │ ├── _boost____level___ne_.html
│ │ │ │ │ │ ├── _boost____level___no_throw_.html
│ │ │ │ │ │ ├── _boost____level___predicate_.html
│ │ │ │ │ │ ├── _boost____level___small_.html
│ │ │ │ │ │ ├── _boost_test_dont_print_log_value_.html
│ │ │ │ │ │ ├── _boost_test_error_.html
│ │ │ │ │ │ ├── _boost_test_is_defined_.html
│ │ │ │ │ │ ├── boost_fail.html
│ │ │ │ │ │ ├── boost_level_equal.html
│ │ │ │ │ │ ├── boost_level_exception.html
│ │ │ │ │ │ ├── boost_level_message.html
│ │ │ │ │ │ ├── boost_level_no_throw.html
│ │ │ │ │ │ ├── boost_level_throw.html
│ │ │ │ │ │ ├── boost_test_dont_print_log_value.html
│ │ │ │ │ │ └── levels.html
│ │ │ │ │ ├── assertion.html
│ │ │ │ │ ├── configuration_macros.html
│ │ │ │ │ ├── headers.html
│ │ │ │ │ ├── runner/
│ │ │ │ │ │ ├── argument/
│ │ │ │ │ │ │ ├── ___break_exec_path_.html
│ │ │ │ │ │ │ ├── ___build_info_.html
│ │ │ │ │ │ │ ├── ___catch_system_errors_.html
│ │ │ │ │ │ │ ├── ___color_output_.html
│ │ │ │ │ │ │ ├── ___detect_fp_exceptions_.html
│ │ │ │ │ │ │ ├── ___detect_memory_leaks_.html
│ │ │ │ │ │ │ ├── ___log_level_.html
│ │ │ │ │ │ │ ├── ___log_sink_.html
│ │ │ │ │ │ │ ├── ___output_format_.html
│ │ │ │ │ │ │ ├── ___random_.html
│ │ │ │ │ │ │ ├── ___report_level_.html
│ │ │ │ │ │ │ ├── ___report_sink_.html
│ │ │ │ │ │ │ ├── ___result_code_.html
│ │ │ │ │ │ │ ├── ___save_pattern_.html
│ │ │ │ │ │ │ ├── ___show_progress_.html
│ │ │ │ │ │ │ ├── ___use_alt_stack_.html
│ │ │ │ │ │ │ ├── auto_start_dbg.html
│ │ │ │ │ │ │ ├── list_content.html
│ │ │ │ │ │ │ ├── log_format.html
│ │ │ │ │ │ │ ├── log_level.html
│ │ │ │ │ │ │ ├── log_sink.html
│ │ │ │ │ │ │ ├── output_format.html
│ │ │ │ │ │ │ ├── report_format.html
│ │ │ │ │ │ │ ├── report_level.html
│ │ │ │ │ │ │ ├── report_sink.html
│ │ │ │ │ │ │ └── run_test.html
│ │ │ │ │ │ ├── argument.html
│ │ │ │ │ │ ├── output/
│ │ │ │ │ │ │ ├── _boost_test_checkpoint_.html
│ │ │ │ │ │ │ ├── _boost_test_passpoint_.html
│ │ │ │ │ │ │ ├── boost_test_checkpoint.html
│ │ │ │ │ │ │ ├── boost_test_message.html
│ │ │ │ │ │ │ ├── log.html
│ │ │ │ │ │ │ ├── report.html
│ │ │ │ │ │ │ ├── test_log.html
│ │ │ │ │ │ │ └── test_report.html
│ │ │ │ │ │ └── output.html
│ │ │ │ │ ├── runner.html
│ │ │ │ │ ├── test_case/
│ │ │ │ │ │ ├── boost_auto_test_case.html
│ │ │ │ │ │ ├── boost_auto_test_case_expected_failures.html
│ │ │ │ │ │ ├── boost_auto_test_case_template.html
│ │ │ │ │ │ ├── boost_fixture_test_case.html
│ │ │ │ │ │ ├── boost_global_fixture.html
│ │ │ │ │ │ ├── boost_param_class_test_case.html
│ │ │ │ │ │ ├── boost_param_test_case.html
│ │ │ │ │ │ ├── boost_test_case.html
│ │ │ │ │ │ ├── boost_test_case_template.html
│ │ │ │ │ │ └── boost_test_case_template_function.html
│ │ │ │ │ ├── test_case.html
│ │ │ │ │ ├── test_classes/
│ │ │ │ │ │ ├── assertion/
│ │ │ │ │ │ │ ├── _boost____level___bitwise_equal_.html
│ │ │ │ │ │ │ ├── _boost____level___close_.html
│ │ │ │ │ │ │ ├── _boost____level___close_fraction_.html
│ │ │ │ │ │ │ ├── _boost____level___equal_collections_.html
│ │ │ │ │ │ │ ├── _boost____level___exception_.html
│ │ │ │ │ │ │ ├── _boost____level___ge_.html
│ │ │ │ │ │ │ ├── _boost____level___gt_.html
│ │ │ │ │ │ │ ├── _boost____level___le_.html
│ │ │ │ │ │ │ ├── _boost____level___lt_.html
│ │ │ │ │ │ │ ├── _boost____level___message_.html
│ │ │ │ │ │ │ ├── _boost____level___ne_.html
│ │ │ │ │ │ │ ├── _boost____level___no_throw_.html
│ │ │ │ │ │ │ ├── _boost____level___predicate_.html
│ │ │ │ │ │ │ ├── _boost____level___small_.html
│ │ │ │ │ │ │ ├── _boost_test_dont_print_log_value_.html
│ │ │ │ │ │ │ ├── _boost_test_error_.html
│ │ │ │ │ │ │ ├── _boost_test_is_defined_.html
│ │ │ │ │ │ │ ├── boost_fail.html
│ │ │ │ │ │ │ ├── boost_level_equal.html
│ │ │ │ │ │ │ ├── boost_level_throw.html
│ │ │ │ │ │ │ └── levels.html
│ │ │ │ │ │ ├── assertion.html
│ │ │ │ │ │ ├── headers.html
│ │ │ │ │ │ ├── init_unit_test_func.html
│ │ │ │ │ │ ├── master_test_suite_t.html
│ │ │ │ │ │ ├── predicate_result/
│ │ │ │ │ │ │ ├── init_unit_test_func.html
│ │ │ │ │ │ │ ├── master_test_suite_t.html
│ │ │ │ │ │ │ ├── test_case.html
│ │ │ │ │ │ │ ├── test_observer.html
│ │ │ │ │ │ │ ├── test_suite.html
│ │ │ │ │ │ │ ├── test_unit.html
│ │ │ │ │ │ │ ├── unit_test_log_formatter.html
│ │ │ │ │ │ │ ├── unit_test_log_t.html
│ │ │ │ │ │ │ └── unit_test_main.html
│ │ │ │ │ │ ├── predicate_result.html
│ │ │ │ │ │ ├── runner/
│ │ │ │ │ │ │ ├── argument.html
│ │ │ │ │ │ │ └── output.html
│ │ │ │ │ │ ├── runner.html
│ │ │ │ │ │ ├── test_case.html
│ │ │ │ │ │ ├── test_observer.html
│ │ │ │ │ │ ├── test_suite.html
│ │ │ │ │ │ ├── test_unit.html
│ │ │ │ │ │ ├── unit_test_log_formatter.html
│ │ │ │ │ │ ├── unit_test_log_t.html
│ │ │ │ │ │ └── unit_test_main.html
│ │ │ │ │ ├── test_classes.html
│ │ │ │ │ ├── test_suite/
│ │ │ │ │ │ ├── boost_auto_test_suite.html
│ │ │ │ │ │ ├── boost_auto_test_suite_end.html
│ │ │ │ │ │ ├── boost_fixture_test_suite.html
│ │ │ │ │ │ ├── boost_test_module.html
│ │ │ │ │ │ └── boost_test_suite.html
│ │ │ │ │ └── test_suite.html
│ │ │ │ ├── reference.html
│ │ │ │ ├── tutorials/
│ │ │ │ │ ├── hello_test.html
│ │ │ │ │ ├── running_selected_tests.html
│ │ │ │ │ ├── testing_with_exceptions.html
│ │ │ │ │ └── testing_with_fixtures.html
│ │ │ │ └── tutorials.html
│ │ │ └── test_HTML.manifest
│ │ ├── src/
│ │ │ ├── Jamfile.v2
│ │ │ ├── UTF.log.xsd
│ │ │ ├── UTF.report.xsd
│ │ │ ├── examples/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── another_global_fixture.cpp
│ │ │ │ ├── assertion_failures.cpp
│ │ │ │ ├── assertions.cpp
│ │ │ │ ├── auto_test_case_expected_failures.cpp
│ │ │ │ ├── auto_test_case_template.cpp
│ │ │ │ ├── compilation/
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── dynamic/
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── dynamic_main/
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── minimal/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── static/
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ └── static_main/
│ │ │ │ │ ├── main.cpp
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── file_system.cpp
│ │ │ │ ├── global_fixture.cpp
│ │ │ │ ├── manual_registration.cpp
│ │ │ │ ├── param_class_test_case.cpp
│ │ │ │ ├── param_test_case.cpp
│ │ │ │ ├── test_case.cpp
│ │ │ │ ├── test_case_template.cpp
│ │ │ │ └── turtle_mock.cpp
│ │ │ ├── ref-assertion.qbk
│ │ │ ├── ref-assertion.qbk.bak
│ │ │ ├── ref-compilation.qbk
│ │ │ ├── ref-runner-argument.qbk
│ │ │ ├── ref-runner-argument.qbk.bak
│ │ │ ├── ref-runner-output.qbk
│ │ │ ├── ref-runner.qbk
│ │ │ ├── ref-test-case.qbk
│ │ │ ├── ref-test-case.qbk.bak
│ │ │ ├── ref-test-classes.qbk
│ │ │ ├── ref-test-suite.qbk
│ │ │ ├── reference.qbk
│ │ │ ├── system_under_test/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── hello/
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── hello.cpp
│ │ │ │ │ └── hello.hpp
│ │ │ │ └── scanner/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── directory_scanner.hpp
│ │ │ │ ├── filesystem_directory_scanner.hpp
│ │ │ │ ├── scanner.cpp
│ │ │ │ └── scanner.hpp
│ │ │ ├── test.qbk
│ │ │ ├── tutorials/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── hello_test/
│ │ │ │ │ ├── 1/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── hello_test~1.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ └── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── 2/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── hello_test~2.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ └── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── 3/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── hello_test~3.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ └── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── hello_test.output
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ └── test/
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── running_selected_tests/
│ │ │ │ │ ├── 1/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── report_level_detailed.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~running_selected_tests~1.output
│ │ │ │ │ ├── 2/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── report_level_detailed.output
│ │ │ │ │ │ ├── run_test_hello_inserts_text.output
│ │ │ │ │ │ ├── run_test_hello_star_inserts_text.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~running_selected_tests~2.output
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── report_level_detailed.output
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ └── test/
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── testing_with_exceptions/
│ │ │ │ │ ├── 1/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~testing_with_exceptions~1.output
│ │ │ │ │ ├── 2/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~testing_with_exceptions~2.output
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ ├── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ └── test_hello~testing_with_exceptions.output
│ │ │ │ └── testing_with_fixtures/
│ │ │ │ ├── 1/
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ └── test/
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── sut/
│ │ │ │ │ ├── hello.cpp
│ │ │ │ │ └── hello.hpp
│ │ │ │ └── test/
│ │ │ │ └── test_hello.cpp
│ │ │ ├── tutorials.qbk
│ │ │ ├── user-compilation.qbk
│ │ │ └── user-guide.qbk
│ │ └── todo.txt
│ ├── ReadMe.txt
│ └── snapshots/
│ ├── 00/
│ │ ├── CMakeLists.txt
│ │ ├── LocalPaths.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 01/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 02/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 03/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 04/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 05/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 06/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 07/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 08/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 09/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 10/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 11/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 12/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 13/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 14/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 15/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 16/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 17/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 18/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 19/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 20/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 21/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 22/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 23/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 24/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 25/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 26/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 27/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 28/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 29/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 30/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 31/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 32/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 33/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 34/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 35/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 36/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 37/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 38/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ └── 39/
│ ├── CMakeLists.txt
│ ├── factors/
│ │ ├── factors.cpp
│ │ ├── factors.h
│ │ └── mediator.h
│ └── test/
│ ├── test_factors.cpp
│ └── test_mediator.cpp
└── unicode-cpp.pptx
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
unlinked/
*~
.DS_Store
================================================
FILE: README.md
================================================
# C++Now 2014 Presentations
* [Library in a Week Repo](https://github.com/JeffGarland/liaw2014.git)
Below are links to the pdfs / keynotes / OPDs in the files directory.
Depending on your browser, you may need to right click on the link and select save.
## Tuesday, May 13
* [Library in a Week - C++ Templating Engine](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/liaw_template_engine_day1.pdf?raw=true)
* Keynote: Axiomatic Programming: From Euclidean Deductions to C++ Templates and Beyond
* C++14: Through the Looking Glass
* [Coroutines, Fibers, and Threads, Oh My](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Coroutines-Fibers-Threads.pdf?raw=true)
* The Canonical Class
* [ConceptClang: Theoretical Advances with Full C++ Concepts](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ConceptClang.pdf?raw=true) | [PPTX](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ConceptClang.pptx?raw=true)
* [Generic Programming of Generic Spaces: Compile-Time Geometric Algebra with C++11](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/generic_spaces.pdf?raw=true)
* [Test-Driven Development With Boost.Test and Turtle Mock, Part I/II](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/test_driven/test_driven.pdf?raw=true) | [Code](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/test_driven/)
* [Removing undefined behavior from integer operations: the bounded::integer library](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/bounded_integer.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/bounded_integer.opd?raw=true)
* [Value Semantics and Range Algorithms - Composability and Efficiency](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/range_algos.pdf?raw=true)
* Preparing the C++11 Library AFIO for Boost Peer Review
## Wednesday, May 14
* [MPL11: A New Metaprogramming Library for C++11](https://ldionne.github.io/mpl11-cppnow-2014)
* [The Optimization of a Boost.Asio-Based Networking Server](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/optimization_boost_asio.pdf?raw=true) | [Keynote File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/optimization_boost_asio.key?raw=true)
* [Undefined Behavior in C++; what is it, and why should I care](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Undefined-Behavior.pdf?raw=true)
* [Mach7: The Design and Evolution of a Pattern Matching Library for C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/open-pattern-matching.pdf?raw=true) | [PowerPoint File](ttps://github.com/boostcon/cppnow_presentations_2014/blob/master/files/open-pattern-matching.pptx?raw=true)
* [Practical Type Erasure: A boost::any Based Configuration Framework](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/PracticalTypeErasureSlides.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/PracticalTypeErasureSlides.odp?raw=true)
* [A Tutorial Introduction to C++11/14 Part I/II](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/tutorial_intro_cpp_11_14.pdf?raw=true)
* [C++11 in Space Plasma Model Development](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/esitys.tar?raw=true) (Requires Java)
* [C++11 Library Design](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/cxx11-library-design.pdf?raw=true) | [PPTX File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/cxx11-library-design.pptx?raw=true)
* [Goals for Better Code: Implement Complete Types](https://github.com/sean-parent/sean-parent.github.com/wiki/Papers-and-Presentations)
* [Multiplatform C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/2014_05_14_multiplatform_cpp.pdf?raw=true)
* Octopus: A Policy-Driven Framework for CFD Simulations
## Thursday, May 15
* [Keynote: Beware of C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Josuttis_C++Now_140515_handouts.pdf?raw=true)
* [Interactive Metaprogramming Shell Based on Clang](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/2014_cppnow_metashell.pdf?raw=true)
* [libcppa: Type-safe Messaging Systems in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/libcppa_part1.pdf?raw=true) | [Part II](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/libcppa_part2.pdf?raw=true)
* [Unicode in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/unicode-cpp.pdf?raw=true) | [PPTX File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/unicode-cpp.pptx?raw=true)
* [CppComponents: A Modern Portable C++11 Component System](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/cppnow2014_bandela_presentation.pdf?raw=true)
* [UI. Aesthetics. C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/UI_Aesthetics_Cpp.pdf?raw=true)
* Accelerator Programming with C++ AMP
* [Designing XML API for Modern C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/designing-xml-api-for-modern-c++.pdf?raw=true)
* [Modern C++ as Concurrent Assembly](https://github.com/diegoperini/cppnow2014-doppl)
* [Understanding &&](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/UnderstandingRValueRef_rev7.pdf?raw=true)
* [Boost Library Incubator](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/incubator.pdf?raw=true) | [Zip Archive](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/incubator.zip?raw=true)
## Friday, May 16
* [Iterators May Stay](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/CppNow2014Ranges.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/CppNow2014Ranges.opd?raw=true)
* [Value Semantics: It ain't about the syntax!](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/accu2015.140518.pdf?raw=true)
* [Create Your Own Refactoring Tool with Clang](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Create-Your-Own-Refactoring-Tool-with-Clang.pdf?raw=true)
* [How to Design C++ Implementations of Complex Combinatorial Algorithms](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/How_to_Design_C++_Implementations_of_Complex_Combinatorial_Algorithms.pdf?raw=true)
* [Intro to Functional Programming in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/intro-to-functional-programming-in-cpp.pdf?raw=true)
* [Managing Object Lifetimes](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Managing-Object-Lifetimes.pdf?raw=true)
* [0xBADC0DE](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/0xBADC0DE.pdf?raw=true)
* [Expected — An Exception-friendly Error Monad](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/expected.pdf?raw=true)
* [Lifetime and Usage of Global, Thread-local, and Static Data](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/LifetimeRev2.pdf?raw=true)
* [Functional Data Structures in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/functional-data-structures.pdf?raw=true) | [Keynote File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/functional-data-structures.key?raw=true)
* [Asynchronous Programming Using Boost.MetaStateMachine and the Upcoming Asynchronous Library](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/AsyncTalkCppNow14.pdf?raw=true)
* [Ownership of Memory in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ownership_of_memory.pdf?raw=true) | [LibreOffice File](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/ownership_of_memory.opd?raw=true)
## Saturday, May 17
* [The Future of Accelerator Programming in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/CppNow2014_Future_of_Accelerator_Programming.pdf?raw=true)
* [Functional Reactive Programming - Cleanly Abstracted Interactivity](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/Functional-Reactive-Programming.pdf?raw=true)
* [Disambiguation: The Black Technology](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/disambiguation.pdf?raw=true)
* [My Thoughts on Large Code Base Change Ripple Management in C++](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/change_ripple.pdf?raw=true) | [Position Paper](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/large_code_base_change_ripple_in_cpp.pdf?raw=true)
* [Future of Boost: Boostache](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/boostache.pdf?raw=true)
* [Future of Boost: Community Management Team](https://github.com/boostcon/cppnow_presentations_2014/blob/master/files/boost-cmt.pdf?raw=true)
================================================
FILE: files/optimization_boost_asio.key
================================================
[File too large to display: 45.4 MB]
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/doc/src/boostbook.css
================================================
/*=============================================================================
Copyright (c) 2004 Joel de Guzman
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompany-
ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
/*=============================================================================
Body defaults
=============================================================================*/
body
{
margin: 1em;
font-family: sans-serif;
}
/*=============================================================================
Paragraphs
=============================================================================*/
p
{
text-align: left;
font-size: 10pt;
line-height: 1.15;
}
/*=============================================================================
Program listings
=============================================================================*/
/* Code on paragraphs */
p tt.computeroutput
{
font-size: 9pt;
}
pre.synopsis
{
font-size: 9pt;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
.programlisting,
.screen
{
font-size: 9pt;
display: block;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
/* Program listings in tables don't get borders */
td .programlisting,
td .screen
{
margin: 0pc 0pc 0pc 0pc;
padding: 0pc 0pc 0pc 0pc;
}
/*=============================================================================
Headings
=============================================================================*/
h1, h2, h3, h4, h5, h6
{
text-align: left;
margin: 1em 0em 0.5em 0em;
font-weight: bold;
}
h1 { font-size: 140%; }
h2 { font-weight: bold; font-size: 140%; }
h3 { font-weight: bold; font-size: 130%; }
h4 { font-weight: bold; font-size: 120%; }
h5 { font-weight: normal; font-style: italic; font-size: 110%; }
h6 { font-weight: normal; font-style: italic; font-size: 100%; }
/* Top page titles */
title,
h1.title,
h2.title
h3.title,
h4.title,
h5.title,
h6.title,
.refentrytitle
{
font-weight: bold;
margin-bottom: 1pc;
}
h1.title { font-size: 140% }
h2.title { font-size: 140% }
h3.title { font-size: 130% }
h4.title { font-size: 120% }
h5.title { font-size: 110% }
h6.title { font-size: 100% }
.section h1
{
margin: 0em 0em 0.5em 0em;
font-size: 140%;
}
.section h2 { font-size: 140% }
.section h3 { font-size: 130% }
.section h4 { font-size: 120% }
.section h5 { font-size: 110% }
.section h6 { font-size: 100% }
/* Code on titles */
h1 tt.computeroutput { font-size: 140% }
h2 tt.computeroutput { font-size: 140% }
h3 tt.computeroutput { font-size: 130% }
h4 tt.computeroutput { font-size: 130% }
h5 tt.computeroutput { font-size: 130% }
h6 tt.computeroutput { font-size: 130% }
/*=============================================================================
Author
=============================================================================*/
h3.author
{
font-size: 100%
}
/*=============================================================================
Lists
=============================================================================*/
li
{
font-size: 10pt;
line-height: 1.3;
}
/* Unordered lists */
ul
{
text-align: left;
}
/* Ordered lists */
ol
{
text-align: left;
}
/*=============================================================================
Links
=============================================================================*/
a
{
text-decoration: none; /* no underline */
}
a:hover
{
text-decoration: underline;
}
/*=============================================================================
Spirit style navigation
=============================================================================*/
.spirit-nav
{
text-align: right;
}
.spirit-nav a
{
color: white;
padding-left: 0.5em;
}
.spirit-nav img
{
border-width: 0px;
}
/*=============================================================================
Copyright footer
=============================================================================*/
.copyright-footer
{
text-align: right;
font-size: 70%;
}
.copyright-footer p
{
text-align: right;
font-size: 80%;
}
/*=============================================================================
Table of contents
=============================================================================*/
div.toc
{
margin: 1pc 4% 0pc 4%;
padding: 0.1pc 1pc 0.1pc 1pc;
font-size: 80%;
line-height: 1.15;
}
.boost-toc
{
float: right;
padding: 0.5pc;
}
/* Code on toc */
.toc .computeroutput { font-size: 120% }
/* No margin on nested menus */
.toc dl dl { margin: 0; }
/*=============================================================================
Tables
=============================================================================*/
.table-title,
div.table p.title
{
margin-left: 4%;
padding-right: 0.5em;
padding-left: 0.5em;
}
.informaltable table,
.table table
{
width: 92%;
margin-left: 4%;
margin-right: 4%;
}
div.informaltable table,
div.table table
{
padding: 4px;
}
/* Table Cells */
div.informaltable table tr td,
div.table table tr td
{
padding: 0.5em;
text-align: left;
font-size: 9pt;
}
div.informaltable table tr th,
div.table table tr th
{
padding: 0.5em 0.5em 0.5em 0.5em;
border: 1pt solid white;
font-size: 80%;
}
table.simplelist
{
width: auto !important;
margin: 0em !important;
padding: 0em !important;
border: none !important;
}
table.simplelist td
{
margin: 0em !important;
padding: 0em !important;
text-align: left !important;
font-size: 9pt !important;
border: none !important;
}
/*=============================================================================
Blurbs
=============================================================================*/
div.note,
div.tip,
div.important,
div.caution,
div.warning,
p.blurb
{
font-size: 9pt; /* A little bit smaller than the main text */
line-height: 1.2;
display: block;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
p.blurb img
{
padding: 1pt;
}
/*=============================================================================
Variable Lists
=============================================================================*/
div.variablelist
{
margin: 1em 0;
}
/* Make the terms in definition lists bold */
div.variablelist dl dt,
span.term
{
font-weight: bold;
font-size: 10pt;
}
div.variablelist table tbody tr td
{
text-align: left;
vertical-align: top;
padding: 0em 2em 0em 0em;
font-size: 10pt;
margin: 0em 0em 0.5em 0em;
line-height: 1;
}
div.variablelist dl dt
{
margin-bottom: 0.2em;
}
div.variablelist dl dd
{
margin: 0em 0em 0.5em 2em;
font-size: 10pt;
}
div.variablelist table tbody tr td p,
div.variablelist dl dd p
{
margin: 0em 0em 0.5em 0em;
line-height: 1;
}
/*=============================================================================
Misc
=============================================================================*/
/* Title of books and articles in bibliographies */
span.title
{
font-style: italic;
}
span.underline
{
text-decoration: underline;
}
span.strikethrough
{
text-decoration: line-through;
}
/* Copyright, Legal Notice */
div div.legalnotice p
{
text-align: left
}
/*=============================================================================
Colors
=============================================================================*/
@media screen
{
body {
background-color: #FFFFFF;
color: #000000;
}
/* Syntax Highlighting */
.keyword { color: #0000AA; }
.identifier { color: #000000; }
.special { color: #707070; }
.preprocessor { color: #402080; }
.char { color: teal; }
.comment { color: #800000; }
.string { color: teal; }
.number { color: teal; }
.white_bkd { background-color: #FFFFFF; }
.dk_grey_bkd { background-color: #999999; }
/* Links */
a, a .keyword, a .identifier, a .special, a .preprocessor
a .char, a .comment, a .string, a .number
{
color: #005a9c;
}
a:visited, a:visited .keyword, a:visited .identifier,
a:visited .special, a:visited .preprocessor a:visited .char,
a:visited .comment, a:visited .string, a:visited .number
{
color: #9c5a9c;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
{
text-decoration: none; /* no underline */
color: #000000;
}
/* Copyright, Legal Notice */
.copyright
{
color: #666666;
font-size: small;
}
div div.legalnotice p
{
color: #666666;
}
/* Program listing */
pre.synopsis
{
border: 1px solid #DCDCDC;
}
.programlisting,
.screen
{
border: 1px solid #DCDCDC;
}
td .programlisting,
td .screen
{
border: 0px solid #DCDCDC;
}
/* Blurbs */
div.note,
div.tip,
div.important,
div.caution,
div.warning,
p.blurb
{
border: 1px solid #DCDCDC;
}
/* Table of contents */
div.toc
{
border: 1px solid #DCDCDC;
}
/* Tables */
div.informaltable table tr td,
div.table table tr td
{
border: 1px solid #DCDCDC;
}
div.informaltable table tr th,
div.table table tr th
{
background-color: #F0F0F0;
border: 1px solid #DCDCDC;
}
.copyright-footer
{
color: #8F8F8F;
}
/* Misc */
span.highlight
{
color: #00A000;
}
}
@media print
{
/* Links */
a
{
color: black;
}
a:visited
{
color: black;
}
.spirit-nav
{
display: none;
}
/* Program listing */
pre.synopsis
{
border: 1px solid gray;
}
.programlisting,
.screen
{
border: 1px solid gray;
}
td .programlisting,
td .screen
{
border: 0px solid #DCDCDC;
}
/* Table of contents */
div.toc
{
border: 1px solid gray;
}
.informaltable table,
.table table
{
border: 1px solid gray;
border-collapse: collapse;
}
/* Tables */
div.informaltable table tr td,
div.table table tr td
{
border: 1px solid gray;
}
div.informaltable table tr th,
div.table table tr th
{
border: 1px solid gray;
}
table.simplelist tr td
{
border: none !important;
}
/* Misc */
span.highlight
{
font-weight: bold;
}
}
/*=============================================================================
Images
=============================================================================*/
span.inlinemediaobject img
{
vertical-align: middle;
}
/*==============================================================================
Super and Subscript: style so that line spacing isn't effected, see
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
==============================================================================*/
sup,
sub {
height: 0;
line-height: 1;
vertical-align: baseline;
position: relative;
}
/* For internet explorer: */
* html sup,
* html sub {
vertical-align: bottom;
}
sup {
bottom: 1ex;
}
sub {
top: .5ex;
}
/*==============================================================================
Indexes: pretty much the same as the TOC.
==============================================================================*/
.index
{
font-size: 80%;
padding-top: 0px;
padding-bottom: 0px;
margin-top: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
.index ul
{
padding-left: 3em;
}
.index p
{
padding: 2px;
margin: 2px;
}
.index-entry-level-0
{
font-weight: bold;
}
.index em
{
font-weight: bold;
}
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/index.html
================================================
<html>
<head>
<title>Boost.Test</title>
</head>
<body>
<p>Browse the <a
href="libs/test/doc/html/index.html">documentation</a>.</p>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/Jamfile.v2
================================================
# Jamfile.v2
#
# Copyright (c) 2013
# Richard Thomson
#
# 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)
use-project /boost/test : ../build ;
import quickbook ;
build-project src ;
alias code : src ;
boostbook test
:
src/test.qbk
code
:
<xsl:param>chunk.section.depth=4
<xsl:param>chunk.first.sections=1
<xsl:param>toc.section.depth=4
<xsl:param>toc.max.depth=4
<xsl:param>generate.section.toc.level=4
<xsl:param>boost.root=../../../..
;
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/index.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Chapter 1. Boost.Test</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="Chapter 1. Boost.Test">
<link rel="next" href="test/motivation.html" title="Motivation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="test/motivation.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
<div class="chapter">
<div class="titlepage"><div>
<div><h2 class="title">
<a name="test"></a>Chapter 1. Boost.Test</h2></div>
<div><div class="author"><h3 class="author">
<span class="firstname">Richard</span> <span class="surname">Thomson</span>
</h3></div></div>
<div><p class="copyright">Copyright © 2013 Richard Thomson</p></div>
<div><div class="legalnotice">
<a name="test.legal"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></div>
</div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl class="toc">
<dt><span class="section"><a href="test/motivation.html">Motivation</a></span></dt>
<dt><span class="section"><a href="test/how_to_read_this_documentation.html">How To Read This Documentation</a></span></dt>
<dt><span class="section"><a href="test/tutorials.html">Tutorials</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/tutorials/hello_test.html">Hello, Test!</a></span></dt>
<dt><span class="section"><a href="test/tutorials/testing_with_exceptions.html">Testing with
Exceptions</a></span></dt>
<dt><span class="section"><a href="test/tutorials/testing_with_fixtures.html">Testing with Fixtures</a></span></dt>
<dt><span class="section"><a href="test/tutorials/running_selected_tests.html">Running Selected
Tests</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/guide.html">User's Guide</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/guide/compilation.html">Compilation and Usage Variants</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/guide/compilation/minimal_header.html">Minimal Header</a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/_main_.html"><code class="literal">main</code></a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/header_only.html">Header Only</a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/static_library.html">Static Library</a></span></dt>
<dt><span class="section"><a href="test/guide/compilation/shared_library.html">Shared Library</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/guide/test_case_design.html">Test Case Design and Maintenance</a></span></dt>
<dt><span class="section"><a href="test/guide/acceptance_tests.html">Acceptance Tests and Unit
Tests</a></span></dt>
<dt><span class="section"><a href="test/guide/testing_file_io.html">Testing File I/O</a></span></dt>
<dt><span class="section"><a href="test/guide/mocking_collaborators.html">Mocking Collaborators</a></span></dt>
<dt><span class="section"><a href="test/guide/testing__main_.html">Testing <code class="literal">main</code></a></span></dt>
<dt><span class="section"><a href="test/guide/testing_protected_or_private_members.html">Testing
Protected or Private Members</a></span></dt>
<dt><span class="section"><a href="test/guide/manually_registering_test_cases_and_suites.html">Manually
Registering Test Cases and Suites</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference.html">Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/configuration_macros.html">Configuration Macros</a></span></dt>
<dt><span class="section"><a href="test/reference/test_case.html">Test Cases</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/test_case/boost_auto_test_case.html"><code class="literal">BOOST_AUTO_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_auto_test_case_expected_failures.html"><code class="literal">BOOST_AUTO_TEST_CASE_EXPECTED_FAILURES</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_auto_test_case_template.html"><code class="literal">BOOST_AUTO_TEST_CASE_TEMPLATE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_fixture_test_case.html"><code class="literal">BOOST_FIXTURE_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_global_fixture.html"><code class="literal">BOOST_GLOBAL_FIXTURE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_param_test_case.html"><code class="literal">BOOST_PARAM_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_param_class_test_case.html"><code class="literal">BOOST_PARAM_CLASS_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_test_case.html"><code class="literal">BOOST_TEST_CASE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_test_case_template.html"><code class="literal">BOOST_TEST_CASE_TEMPLATE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_case/boost_test_case_template_function.html"><code class="literal">BOOST_TEST_CASE_TEMPLATE_FUNCTION</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/test_suite.html">Test Suites</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/test_suite/boost_auto_test_suite.html"><code class="literal">BOOST_AUTO_TEST_SUITE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_auto_test_suite_end.html"><code class="literal">BOOST_AUTO_TEST_SUITE_END</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_fixture_test_suite.html"><code class="literal">BOOST_FIXTURE_TEST_SUITE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_test_module.html"><code class="literal">BOOST_TEST_MODULE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_suite/boost_test_suite.html"><code class="literal">BOOST_TEST_SUITE</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/test_classes.html">Test Classes</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/test_classes/predicate_result.html"><code class="literal">predicate_result</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_unit.html"><code class="literal">test_unit</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_case.html"><code class="literal">test_case</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_suite.html"><code class="literal">test_suite</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/master_test_suite_t.html"><code class="literal">master_test_suite_t</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/test_observer.html"><code class="literal">test_observer</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/unit_test_log_t.html"><code class="literal">unit_test_log_t</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/unit_test_log_formatter.html"><code class="literal">unit_test_log_formatter</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/init_unit_test_func.html"><code class="literal">init_unit_test_func</code></a></span></dt>
<dt><span class="section"><a href="test/reference/test_classes/unit_test_main.html"><code class="literal">unit_test_main</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/assertion.html">Test Assertions</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/assertion/levels.html">Assertion Levels</a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___bitwise_equal_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_BITWISE_EQUAL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___close_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_CLOSE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___close_fraction_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_CLOSE_FRACTION</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_equal.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_EQUAL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___equal_collections_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_EQUAL_COLLECTIONS</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_exception.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_EXCEPTION</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_fail.html"><code class="literal">BOOST_FAIL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___ge_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_GE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___gt_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_GT</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___le_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_LE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___lt_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_LT</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_message.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_MESSAGE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___ne_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_NE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_no_throw.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_NO_THROW</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___predicate_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_PREDICATE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/_boost____level___small_.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_SMALL</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_level_throw.html"><code class="literal">BOOST_</code><em class="replaceable"><code>level</code></em><code class="literal">_THROW</code></a></span></dt>
<dt><span class="section"><a href="test/reference/assertion/boost_test_dont_print_log_value.html"><code class="literal">BOOST_TEST_DONT_PRINT_LOG_VALUE</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/runner.html">Test Runner</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/runner/argument.html">Command Line Arguments</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/runner/argument/auto_start_dbg.html"><code class="literal">--auto_start_dbg</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___build_info_.html"><code class="literal">--build_info</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___catch_system_errors_.html"><code class="literal">--catch_system_errors</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___detect_fp_exceptions_.html"><code class="literal">--detect_fp_exceptions</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___detect_memory_leaks_.html"><code class="literal">--detect_memory_leaks</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/log_format.html"><code class="literal">--log_format</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/log_level.html"><code class="literal">--log_level</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/log_sink.html"><code class="literal">--log_sink</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/output_format.html"><code class="literal">--output_format</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___random_.html"><code class="literal">--random</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/report_format.html"><code class="literal">--report_format</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/report_level.html"><code class="literal">--report_level</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/report_sink.html"><code class="literal">--report_sink</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___result_code_.html"><code class="literal">--result_code</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/run_test.html"><code class="literal">--run_test</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___show_progress_.html"><code class="literal">--show_progress</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/argument/___use_alt_stack_.html"><code class="literal">--use_alt_stack</code></a></span></dt>
</dl></dd>
<dt><span class="section"><a href="test/reference/runner/output.html">Test Output</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="test/reference/runner/output/log.html">Test Log</a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/report.html">Test Report</a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/boost_test_checkpoint.html"><code class="literal">BOOST_TEST_CHECKPOINT</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/boost_test_message.html"><code class="literal">BOOST_TEST_MESSAGE</code></a></span></dt>
<dt><span class="section"><a href="test/reference/runner/output/_boost_test_passpoint_.html"><code class="literal">BOOST_TEST_PASSPOINT</code></a></span></dt>
</dl></dd>
</dl></dd>
</dl></dd>
</dl>
</div>
<p>
This is the documentation for Boost.Test, a library designed to support automated
testing of software generally and unit testing specifically.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: January 06, 2014 at 04:37:36 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="test/motivation.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/acceptance_tests.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acceptance Tests and Unit Tests</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="test_case_design.html" title="Test Case Design and Maintenance">
<link rel="next" href="testing_file_io.html" title="Testing File I/O">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="test_case_design.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_file_io.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.acceptance_tests"></a><a class="link" href="acceptance_tests.html" title="Acceptance Tests and Unit Tests">Acceptance Tests and Unit
Tests</a>
</h3></div></div></div>
<p>
Unit testing helps us to find bugs "in the small"; little implementation
details that we got wrong while we were building a function, a method or
a class. When we test each class as an isolated unit, we can miss errors
in the way two classes interact or in the way a whole ensemble of classes
cooperate in an integrated system.
</p>
<p>
An acceptance test is an automated test that exercises our system as an integrated
whole and not as a collection of isolated units. In a unit test, we decouple
ourselves from the execution environment in order to test a piece of code
in isolation. In an acceptance test, we run the whole system and provide
controlled inputs to the system. This may consist of prepared input data
files, prepared input databases and so-on.
</p>
<p>
Using these two forms of automated testing, we can use them as a vise to
squeeze bugs between the two forms of automated tests. Unit tests push from
below and acceptance tests push from above.
</p>
<p>
While the facilities in Boost.Test can be used to create an automated acceptance
test, the tools are fairly low-level for the kinds of high-level criteria
that an acceptance test would use. Acceptance tests are usually defined by
the <a href="http://en.wikipedia.org/wiki/Product_owner#Roles" target="_top">product
owner</a> or customer and will describe acceptance criteria in the language
closest to the problem domain and farthest away from the details of the implementation.
</p>
<p>
A better approach for automated acceptance tests would be a tool such as
<a href="http://www.fitnesse.org" target="_top">FitNesse</a> that is designed for
automated acceptance testing.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="test_case_design.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_file_io.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/_main_.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>main</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="minimal_header.html" title="Minimal Header">
<link rel="next" href="header_only.html" title="Header Only">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="minimal_header.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header_only.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation._main_"></a><a class="link" href="_main_.html" title="main"><code class="literal">main</code></a>
</h4></div></div></div>
<p>
To use the implementation of <code class="literal">main</code> provided by Boost.Test,
exactly one source file must define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>
before including <code class="literal"><boost/test/unit_test.hpp></code>. If
multiple source files define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>,
then a multiply defined symbol error will occur during linking.
</p>
<p>
If <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
is defined, then no implementation of <code class="literal">main</code> will be provided
and the test executable must provide an initialization function. The exact
initialization function that must be provided varies depending on how the
library is compiled. The details are shown in the discussion of each compilation
variation.
</p>
<p>
When Boost.Test is compiled as a library, <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
must be defined when the library is compiled for it to work properly in
those circumstances.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="minimal_header.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="header_only.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/header_only.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Header Only</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="_main_.html" title="main">
<link rel="next" href="static_library.html" title="Static Library">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="_main_.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="static_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.header_only"></a><a class="link" href="header_only.html" title="Header Only">Header Only</a>
</h4></div></div></div>
<p>
The entire unit test framework can be incorporated into an executable by
including the file <code class="literal"><boost/test/included/unit_test.hpp></code>.
Because the entire implementation is incorporated into the source file
including this header, only a single source file in the test executable
can include this header.
</p>
<p>
Additional source files must define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_lib"><code class="literal">BOOST_TEST_NO_LIB</code></a>
before including <code class="literal"><boost/test/unit_test.hpp></code> to
prevent any automatic linking to a shared library. If additional source
files attempt to include <code class="literal"><boost/test/included/unit_test.hpp></code>,
a multiply defined symbol error will occur during linking.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file:</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">included</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="comment">// test cases (optional)</span>
</pre>
<p>
</p>
<pre class="programlisting"><span class="comment">// In additional source files</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_LIB</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="comment">// test cases</span>
</pre>
<p>
</p>
<p>
If <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
is defined, then an implementation of <code class="literal">main</code> must be provided
that executes the test cases. This is most readily done by delegating to
<a class="link" href="../../reference/test_classes/unit_test_main.html" title="unit_test_main"><code class="literal">unit_test_main</code></a>.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_MAIN</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">test_suite</span> <span class="special">*</span><span class="identifier">init_function</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="comment">// create test cases and suites and return a pointer to any enclosing</span>
<span class="comment">// suite, or 0.</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">unit_test_main</span><span class="special">(&</span><span class="identifier">init_function</span><span class="special">,</span> <span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h6>
<a name="test.guide.compilation.header_only.h0"></a>
<span class="phrase"><a name="test.guide.compilation.header_only.example_source_code"></a></span><a class="link" href="header_only.html#test.guide.compilation.header_only.example_source_code">Example
Source Code</a>
</h6>
<p>
The <a class="link" href="../../tutorials.html" title="Tutorials">tutorials</a> all use the header-only
version of Boost.Test.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="_main_.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="static_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/minimal_header.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Minimal Header</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="next" href="_main_.html" title="main">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../compilation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="_main_.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.minimal_header"></a><a class="link" href="minimal_header.html" title="Minimal Header">Minimal Header</a>
</h4></div></div></div>
<p>
A lightweight, minimal version of the testing framework can be obtained
by including <code class="literal"><boost/test/minimal.hpp></code>. This header
provides only the following macros:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Macro
</p>
</th>
<th>
<p>
Meaning
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="literal">BOOST_CHECK(</code><span class="emphasis"><em>expression</em></span><code class="literal">)</code>
</p>
</td>
<td>
<p>
If <span class="emphasis"><em>expression</em></span> is false, the test fails and
test execution continues.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="literal">BOOST_REQUIRE(</code><span class="emphasis"><em>expression</em></span><code class="literal">)</code>
</p>
</td>
<td>
<p>
If <span class="emphasis"><em>expression</em></span> is false, the test fails and
test execution terminates.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="literal">BOOST_ERROR(</code><span class="emphasis"><em>message</em></span><code class="literal">)</code>
</p>
</td>
<td>
<p>
Report <span class="emphasis"><em>message</em></span>, fail the test and continue
test execution.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="literal">BOOST_FAIL(</code><span class="emphasis"><em>message</em></span><code class="literal">)</code>
</p>
</td>
<td>
<p>
Report <span class="emphasis"><em>message</em></span>, fail the test and terminate
test execution.
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
The header supplies an implementation of <code class="literal">main</code> that executes
a single test case by calling a free function named <code class="literal">test_main</code>
with the following signature:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">test_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[]);</span>
</pre>
<p>
</p>
<p>
The arguments <code class="literal">argc</code> and <code class="literal">argv</code> are passed
to <code class="literal">test_main</code> from the implementation of <code class="literal">main</code>
supplied by the test framework. No command-line argument processing is
performed by <code class="literal">main</code>. A summary report of errors recorded
by the test case is printed out after executing the test case. If any exception
is thrown by the test case, it is caught by <code class="literal">main</code> and
treated as an error from the test case.
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">minimal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="keyword">int</span> <span class="identifier">test_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="comment">// test case</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h6>
<a name="test.guide.compilation.minimal_header.h0"></a>
<span class="phrase"><a name="test.guide.compilation.minimal_header.example_source_code"></a></span><a class="link" href="minimal_header.html#test.guide.compilation.minimal_header.example_source_code">Example
Source Code</a>
</h6>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
System under test:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
<a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>
</li></ul></div>
</li>
<li class="listitem">
An example of using the minimal test framework:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/minimal/test_hello.cpp" target="_top">test_hello.cpp</a>.
</li></ul></div>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../compilation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="_main_.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/shared_library.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Shared Library</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="static_library.html" title="Static Library">
<link rel="next" href="../test_case_design.html" title="Test Case Design and Maintenance">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="static_library.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../test_case_design.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.shared_library"></a><a class="link" href="shared_library.html" title="Shared Library">Shared Library</a>
</h4></div></div></div>
<p>
To build Boost.Test as a shared library, first build the boost build tools,
as described in the <a href="../../../../../../../more/getting_started/index.html" target="_top">Getting
Started</a> documentation. After you have bootstrapped the build tools,
build the test library with by invoking <code class="literal">b2</code> with arguments
similar to the following:
</p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="identifier">shared</span></pre>
<p>
</p>
<p>
This will place the resulting libraries in <code class="literal">stage/lib</code>
at the top level of the boost tree.
</p>
<p>
In a shared library configuration, Boost.Test is compiled into a single
shared library named <code class="literal">boost_unit_test_framework</code> and the
test executable is linked against that library to import symbols from the
library. The Boost.Test shared library must be available to the runtime
loader in order for the tests to execute. Every compilation unit that includes
a header from Boost.Test must define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_dyn_link"><code class="literal">BOOST_TEST_DYN_LINK</code></a>
first so that declarations are properly annotated as imported symbols.
When <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_dyn_link"><code class="literal">BOOST_TEST_DYN_LINK</code></a>
is defined, Boost.Test also defines <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_alternative_init_api"><code class="literal">BOOST_TEST_ALTERNATIVE_INIT_API</code></a>.
</p>
<p>
Exactly one compilation unit in the test executable should define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>,
in order run the tests.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one compilation unit</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_DYN_LINK</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_MAIN</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="comment">// test cases (optional)</span>
</pre>
<p>
</p>
<p>
Additional source files define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_dyn_link"><code class="literal">BOOST_TEST_DYN_LINK</code></a>,
include the main unit test header and define more test cases and/or suites.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In additional source files</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_DYN_LINK</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="comment">// test cases</span>
</pre>
<p>
</p>
<p>
To compile the library with no implementation of <code class="literal">main</code>,
add <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
to the <code class="literal">cxxflags</code> property for b2:
</p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="identifier">shared</span> <span class="identifier">define</span><span class="special">=</span><span class="identifier">BOOST_TEST_NO_MAIN</span></pre>
<p>
</p>
<p>
When the library is compiled with <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
defined, one source file must provide a definition for <code class="literal">main</code>.
The simplest is to delegate to <a class="link" href="../../reference/test_classes/unit_test_main.html" title="unit_test_main"><code class="literal">unit_test_main</code></a>
and provide an implementation of an initialization function that manually
adds test cases and suites to the test tree. Any test cases or test suites
added with <a class="link" href="../../reference/test_case/boost_auto_test_case.html" title="BOOST_AUTO_TEST_CASE"><code class="literal">BOOST_AUTO_TEST_CASE</code></a>,
<a class="link" href="../../reference/test_case/boost_fixture_test_case.html" title="BOOST_FIXTURE_TEST_CASE"><code class="literal">BOOST_FIXTURE_TEST_CASE</code></a>,
<a class="link" href="../../reference/test_suite/boost_auto_test_suite.html" title="BOOST_AUTO_TEST_SUITE"><code class="literal">BOOST_AUTO_TEST_SUITE</code></a>
or <a class="link" href="../../reference/test_suite/boost_fixture_test_suite.html" title="BOOST_FIXTURE_TEST_SUITE"><code class="literal">BOOST_FIXTURE_TEST_SUITE</code></a>
are automatically added.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_MAIN</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">init_function</span><span class="special">()</span>
<span class="special">{</span>
<span class="comment">// create test cases and suites and return a boolean indicating</span>
<span class="comment">// success (true) or failure (false).</span>
<span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">unit_test_main</span><span class="special">(&</span><span class="identifier">init_function</span><span class="special">,</span> <span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h6>
<a name="test.guide.compilation.shared_library.h0"></a>
<span class="phrase"><a name="test.guide.compilation.shared_library.example_source_code"></a></span><a class="link" href="shared_library.html#test.guide.compilation.shared_library.example_source_code">Example
Source Code</a>
</h6>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
System under test:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.hpp" target="_top">hello.hpp</a>
</li>
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>
</li>
</ul></div>
</li>
<li class="listitem">
An example of using the standard implementation of <code class="literal">main</code>:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic/main.cpp" target="_top">main.cpp</a>
</li>
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic/test_hello.cpp" target="_top">test_hello.cpp</a>.
</li>
</ul></div>
</li>
<li class="listitem">
An example of using a custom <code class="literal">main</code>:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic_main/main.cpp" target="_top">main.cpp</a>
</li>
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/dynamic_main/test_hello.cpp" target="_top">test_hello.cpp</a>.
</li>
</ul></div>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="static_library.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../test_case_design.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/static_library.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Static Library</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../compilation.html" title="Compilation and Usage Variants">
<link rel="prev" href="header_only.html" title="Header Only">
<link rel="next" href="shared_library.html" title="Shared Library">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="header_only.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="test.guide.compilation.static_library"></a><a class="link" href="static_library.html" title="Static Library">Static Library</a>
</h4></div></div></div>
<p>
To build Boost.Test as a static library, first build the boost build tools,
as described in the <a href="../../../../../../../more/getting_started/index.html" target="_top">Getting
Started</a> documentation. After you have bootstrapped the build tools,
build the test library with by invoking <code class="literal">b2</code> with arguments
similar to the following:
</p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="keyword">static</span></pre>
<p>
</p>
<p>
This will place the resulting libraries in <code class="literal">stage/lib</code>
at the top level of the boost tree.
</p>
<p>
In a static library configuration, Boost.Test is compiled into a single
static library named <code class="literal">boost_unit_test_framework</code> and the
test executable is linked against that library. Exactly one compilation
unit in the test executable should define <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_main"><code class="literal">BOOST_TEST_MAIN</code></a>,
in order run the tests.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_MAIN</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="comment">// test cases (optional)</span>
</pre>
<p>
</p>
<p>
Additional source files simply include the main unit test header and define
more test cases and/or suites.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In additional source files</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="comment">// test cases</span>
</pre>
<p>
</p>
<p>
To compile the library with no implementation of <code class="literal">main</code>,
add <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
to the <code class="literal">cxxflags</code> property for b2:
</p>
<p>
</p>
<pre class="programlisting"><span class="identifier">b2</span> <span class="special">--</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">test</span> <span class="identifier">link</span><span class="special">=</span><span class="keyword">static</span> <span class="identifier">define</span><span class="special">=</span><span class="identifier">BOOST_TEST_NO_MAIN</span></pre>
<p>
</p>
<p>
When the library is compiled with <a class="link" href="../../reference/configuration_macros.html#test.reference.compilation.boost_test_no_main"><code class="literal">BOOST_TEST_NO_MAIN</code></a>
defined, one source file must provide a definition for <code class="literal">main</code>.
The simplest is to delegate to <a class="link" href="../../reference/test_classes/unit_test_main.html" title="unit_test_main"><code class="literal">unit_test_main</code></a>
and provide an implementation of an initialization function that manually
adds test cases and suites to the test tree. Any test cases or test suites
added with <a class="link" href="../../reference/test_case/boost_auto_test_case.html" title="BOOST_AUTO_TEST_CASE"><code class="literal">BOOST_AUTO_TEST_CASE</code></a>,
<a class="link" href="../../reference/test_case/boost_fixture_test_case.html" title="BOOST_FIXTURE_TEST_CASE"><code class="literal">BOOST_FIXTURE_TEST_CASE</code></a>,
<a class="link" href="../../reference/test_suite/boost_auto_test_suite.html" title="BOOST_AUTO_TEST_SUITE"><code class="literal">BOOST_AUTO_TEST_SUITE</code></a>
or <a class="link" href="../../reference/test_suite/boost_fixture_test_suite.html" title="BOOST_FIXTURE_TEST_SUITE"><code class="literal">BOOST_FIXTURE_TEST_SUITE</code></a>
are automatically added.
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">// In exactly one source file</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_TEST_NO_MAIN</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">unit_test</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">test_suite</span> <span class="special">*</span><span class="identifier">init_function</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="comment">// create test cases and suites and return a pointer to any enclosing</span>
<span class="comment">// suite, or 0.</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unit_test</span><span class="special">::</span><span class="identifier">unit_test_main</span><span class="special">(</span><span class="identifier">init_function</span><span class="special">,</span> <span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h6>
<a name="test.guide.compilation.static_library.h0"></a>
<span class="phrase"><a name="test.guide.compilation.static_library.example_source_code"></a></span><a class="link" href="static_library.html#test.guide.compilation.static_library.example_source_code">Example
Source Code</a>
</h6>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
System under test:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.hpp" target="_top">hello.hpp</a>
</li>
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>.
</li>
</ul></div>
</li>
<li class="listitem">
An example of using the standard implementation of <code class="literal">main</code>:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/static/main.cpp" target="_top">main.cpp</a>
</li>
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/static/test_hello.cpp" target="_top">test_hello.cpp</a>.
</li>
</ul></div>
</li>
<li class="listitem">
An example of using a custom <code class="literal">main</code>:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/static_main/main.cpp" target="_top">main.cpp</a>
</li>
<li class="listitem">
<a href="../../../../../../../libs/test/doc/src/examples/compilation/static_main/test_hello.cpp" target="_top">test_hello.cpp</a>.
</li>
</ul></div>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="header_only.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../compilation.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Compilation and Usage Variants</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="../guide.html" title="User's Guide">
<link rel="next" href="compilation/minimal_header.html" title="Minimal Header">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../guide.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compilation/minimal_header.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.compilation"></a><a class="link" href="compilation.html" title="Compilation and Usage Variants">Compilation and Usage Variants</a>
</h3></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="compilation/minimal_header.html">Minimal Header</a></span></dt>
<dt><span class="section"><a href="compilation/_main_.html"><code class="literal">main</code></a></span></dt>
<dt><span class="section"><a href="compilation/header_only.html">Header Only</a></span></dt>
<dt><span class="section"><a href="compilation/static_library.html">Static Library</a></span></dt>
<dt><span class="section"><a href="compilation/shared_library.html">Shared Library</a></span></dt>
</dl></div>
<p>
Boost.Test is available in several forms:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
a single, minimal header
</li>
<li class="listitem">
a header-only form
</li>
<li class="listitem">
a static library
</li>
<li class="listitem">
a shared library
</li>
</ul></div>
<p>
The minimal header can be useful in situations where you don't already have
the library built and want to quickly explore a test with a minimal amount
of fuss. Once you need to create multiple unit tests, you will quickly outgrow
the minimal header.
</p>
<p>
The header only form is useful when you don't want to be bothered with compiling
the library. Once you have multiple compilation units with unit tests in
each compilation unit, you will grow tired of the compilation cost involved
with the header only form of the framework.
</p>
<p>
The static library form is the easiest to integrate into your build system
as it doesn't require any installation of runtime files in order to execute
your tests. This runtime simplicity comes at the cost of increased link times
and executable sizes.
</p>
<p>
The dynamic library form requires the most effort for successful test execution,
but provides faster link times than the static library, faster compile times
than the header only form and provides all the features of the framework
compared to the minimal header.
</p>
<div class="caution"><table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../doc/src/images/caution.png"></td>
<th align="left">Caution</th>
</tr>
<tr><td align="left" valign="top"><p>
Boost.Test is not a thread-safe library. Care should be taken when automated
tests create multiple threads and interact with data structures passed
to Boost.Test macros or functions.
</p></td></tr>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../guide.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compilation/minimal_header.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/exception_safety_test.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Exception Safety Tests</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test 1.22.0">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="manually_registering_test_cases_and_suites.html" title="Manually Registering Test Cases and Suites">
<link rel="next" href="../reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="manually_registering_test_cases_and_suites.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.exception_safety_test"></a><a class="link" href="exception_safety_test.html" title="Exception Safety Tests">Exception Safety Tests</a>
</h3></div></div></div>
<p>
Boost.Test provides support for a special kind of test called an exception
safety test.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="manually_registering_test_cases_and_suites.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/manually_registering_test_cases_and_suites.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Manually Registering Test Cases and Suites</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="testing_protected_or_private_members.html" title="Testing Protected or Private Members">
<link rel="next" href="../reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.manually_registering_test_cases_and_suites"></a><a class="link" href="manually_registering_test_cases_and_suites.html" title="Manually Registering Test Cases and Suites">Manually
Registering Test Cases and Suites</a>
</h3></div></div></div>
<h5>
<a name="test.guide.manually_registering_test_cases_and_suites.h0"></a>
<span class="phrase"><a name="test.guide.manually_registering_test_cases_and_suites.registering_test_cases"></a></span><a class="link" href="manually_registering_test_cases_and_suites.html#test.guide.manually_registering_test_cases_and_suites.registering_test_cases">Registering
Test Cases</a>
</h5>
<p>
You may have an existing body of tests that you wish to register with Boost.Test
manually. You can use <a class="link" href="../reference/test_case/boost_test_case.html" title="BOOST_TEST_CASE"><code class="literal">BOOST_TEST_CASE</code></a>
to register a function taking no arguments and returning <code class="literal">void</code>
as a test case:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">inserts_text</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostringstream</span> <span class="identifier">dest</span><span class="special">;</span>
<span class="identifier">hello_world</span><span class="special">(</span><span class="identifier">dest</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL</span><span class="special">(</span><span class="string">"Hello, world!\n"</span><span class="special">,</span> <span class="identifier">dest</span><span class="special">.</span><span class="identifier">str</span><span class="special">());</span>
<span class="special">}</span>
<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">register_function</span><span class="special">(</span><span class="identifier">test_suite</span><span class="special">&</span> <span class="identifier">suite</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">suite</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">BOOST_TEST_CASE</span><span class="special">(</span><span class="identifier">inserts_text</span><span class="special">));</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
You can use a test case method on a fixture class by registering a function
that creates an instance of the fixture and invokes the test method. This
assures that a fresh fixture is created for each test case, ensuring that
each test executes independently of other tests.
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">hello_fixture</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">void</span> <span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">dest</span><span class="special">.</span><span class="identifier">clear</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ios_base</span><span class="special">::</span><span class="identifier">badbit</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_THROW</span><span class="special">(</span><span class="identifier">hello_world</span><span class="special">(</span><span class="identifier">dest</span><span class="special">),</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span><span class="special">);</span>
<span class="special">}</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostringstream</span> <span class="identifier">dest</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<p>
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">hello_fixture</span><span class="special">().</span><span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">();</span>
<span class="special">};</span>
<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">register_method_function_instance</span><span class="special">(</span><span class="identifier">test_suite</span><span class="special">&</span> <span class="identifier">suite</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">suite</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">BOOST_TEST_CASE</span><span class="special">(</span><span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">));</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
You can register a method on a class as a test case by using Boost.Bind to
bind the method to a static instance of the class. This can cause oen test
case to influence the execution of another test case because they share the
static fixture.
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">hello_fixture</span> <span class="identifier">hf</span><span class="special">;</span>
<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">register_method_static_instance</span><span class="special">(</span><span class="identifier">test_suite</span><span class="special">&</span> <span class="identifier">suite</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">suite</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">BOOST_TEST_CASE</span><span class="special">(</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(&</span><span class="identifier">hello_fixture</span><span class="special">::</span><span class="identifier">stream_with_badbit_throws_runtime_error</span><span class="special">,</span>
<span class="special">&</span><span class="identifier">hf</span><span class="special">)));</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
A static instance of the class is used so that the instance exists at the
time the test case is invoked. Test case invocation happens after registration,
so using a local instance in the registration function is insufficient.
</p>
<h5>
<a name="test.guide.manually_registering_test_cases_and_suites.h1"></a>
<span class="phrase"><a name="test.guide.manually_registering_test_cases_and_suites.registering_test_suites"></a></span><a class="link" href="manually_registering_test_cases_and_suites.html#test.guide.manually_registering_test_cases_and_suites.registering_test_suites">Registering
Test Suites</a>
</h5>
<p>
A new test suite is created with the <a class="link" href="../reference/test_suite/boost_test_suite.html" title="BOOST_TEST_SUITE"><code class="literal">BOOST_TEST_SUITE</code></a>
macro. The new suite must be added to the master test suite to execute its
tests. Any number of test suites can be added in a hierarchy of suites and
any test case can be added to any test suite.
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">test_suite</span><span class="special">*</span>
<span class="identifier">init_unit_test_suite</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="identifier">test_suite</span><span class="special">*</span> <span class="identifier">hello_suite</span> <span class="special">=</span> <span class="identifier">BOOST_TEST_SUITE</span><span class="special">(</span><span class="string">"hello"</span><span class="special">);</span>
<span class="identifier">register_function</span><span class="special">(*</span><span class="identifier">hello_suite</span><span class="special">);</span>
<span class="identifier">register_method_static_instance</span><span class="special">(*</span><span class="identifier">hello_suite</span><span class="special">);</span>
<span class="identifier">register_method_function_instance</span><span class="special">(*</span><span class="identifier">hello_suite</span><span class="special">);</span>
<span class="identifier">framework</span><span class="special">::</span><span class="identifier">master_test_suite</span><span class="special">().</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">hello_suite</span><span class="special">);</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h5>
<a name="test.guide.manually_registering_test_cases_and_suites.h2"></a>
<span class="phrase"><a name="test.guide.manually_registering_test_cases_and_suites.example_source_code"></a></span><a class="link" href="manually_registering_test_cases_and_suites.html#test.guide.manually_registering_test_cases_and_suites.example_source_code">Example
Source Code</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
System under test:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../libs/test/doc/src/system_under_test/hello/hello.hpp" target="_top">hello.hpp</a>
</li>
<li class="listitem">
<a href="../../../../../../libs/test/doc/src/system_under_test/hello/hello.cpp" target="_top">hello.cpp</a>
</li>
</ul></div>
</li>
<li class="listitem">
Tests:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
<a href="../../../../../../libs/test/doc/src/examples/manual_registration.cpp" target="_top">manual_registration.cpp</a>
</li></ul></div>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/mocking_collaborators.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Mocking Collaborators</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="testing_file_io.html" title="Testing File I/O">
<link rel="next" href="testing__main_.html" title="Testing main">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_file_io.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing__main_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.mocking_collaborators"></a><a class="link" href="mocking_collaborators.html" title="Mocking Collaborators">Mocking Collaborators</a>
</h3></div></div></div>
<p>
In <a class="link" href="testing_file_io.html" title="Testing File I/O">testing file I/O</a>, we
showed an example of creating a class <code class="literal">fake_directory_scanner</code>
that acted as a simple test double for an interface. Such simple fake objects
are fine at first, but they're full of boring boiler plate code and after
a while it becomes tedious to write them by hand.
</p>
<p>
For collaborators defined by a pure virtual base class, also known as an
interface, there are mock object frameworks that alleviate the need to write
the repetitive boiler plate code. One such mock object framework that is
designed to work with Boost.Test is the <a href="http://turtle.sourceforge.net" target="_top">Turtle
mock object framework</a>.
</p>
<p>
Here is an example of the file system tests written using turtle:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="string">"directory_scanner.hpp"</span>
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">turtle</span><span class="special">/</span><span class="identifier">mock</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
<span class="identifier">MOCK_BASE_CLASS</span><span class="special">(</span><span class="identifier">mock_directory_scanner</span><span class="special">,</span> <span class="identifier">directory_scanner</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">MOCK_METHOD</span><span class="special">(</span><span class="identifier">begin</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
<span class="identifier">MOCK_METHOD</span><span class="special">(</span><span class="identifier">has_next</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
<span class="identifier">MOCK_METHOD</span><span class="special">(</span><span class="identifier">next</span><span class="special">,</span> <span class="number">0</span><span class="special">);</span>
<span class="special">};</span>
</pre>
<p>
</p>
<p>
Defining the mock object is considerably simpler than writing a fake object
by hand. Turtle uses variadic argument macros and template based type deduction
to infer the type signature of the methods simply from the number of arguments
each method takes. This alleviates us from having to repeat all of this information
from the interface into the implementation of the test double.
</p>
<p>
Now we can rewrite our tests to use a mock object configured for each test
case:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">(</span><span class="string">"foo"</span><span class="special">);</span>
<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_NON_TEXT_FILE_NAME</span><span class="special">(</span><span class="string">"foo.foo"</span><span class="special">);</span>
<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_TEXT_FILE_NAME</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
<span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="identifier">ARBITRARY_OTHER_TEXT_FILE_NAME</span><span class="special">(</span><span class="string">"bar.txt"</span><span class="special">);</span>
<span class="keyword">struct</span> <span class="identifier">text_files_fixture</span>
<span class="special">{</span>
<span class="identifier">text_files_fixture</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">begin</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">with</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">);</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">expect_enumerate_non_text_file</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">has_next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="keyword">true</span><span class="special">);</span>
<span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="identifier">ARBITRARY_NON_TEXT_FILE_NAME</span><span class="special">);</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">expect_enumerate_text_file</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">file_name</span> <span class="special">=</span> <span class="identifier">ARBITRARY_TEXT_FILE_NAME</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">has_next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="keyword">true</span><span class="special">);</span>
<span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="identifier">file_name</span><span class="special">);</span>
<span class="identifier">expected</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">file_name</span><span class="special">);</span>
<span class="special">}</span>
<span class="keyword">void</span> <span class="identifier">expect_enumerate_end</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">MOCK_EXPECT</span><span class="special">(</span><span class="identifier">scanner</span><span class="special">.</span><span class="identifier">has_next</span><span class="special">).</span><span class="identifier">once</span><span class="special">().</span><span class="identifier">returns</span><span class="special">(</span><span class="keyword">false</span><span class="special">);</span>
<span class="special">}</span>
<span class="identifier">mock_directory_scanner</span> <span class="identifier">scanner</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">empty</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">expected</span><span class="special">;</span>
<span class="special">};</span>
<span class="identifier">BOOST_FIXTURE_TEST_SUITE</span><span class="special">(</span><span class="identifier">test_text_files</span><span class="special">,</span> <span class="identifier">text_files_fixture</span><span class="special">);</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_empty_directory</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">expect_enumerate_end</span><span class="special">();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_no_text_files</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">expect_enumerate_non_text_file</span><span class="special">();</span>
<span class="identifier">expect_enumerate_end</span><span class="special">();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_file_for_text_file</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">expect_enumerate_text_file</span><span class="special">();</span>
<span class="identifier">expect_enumerate_end</span><span class="special">();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_only_text_file_for_mixed_files</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">expect_enumerate_text_file</span><span class="special">();</span>
<span class="identifier">expect_enumerate_non_text_file</span><span class="special">();</span>
<span class="identifier">expect_enumerate_end</span><span class="special">();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_all_text_files</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">expect_enumerate_text_file</span><span class="special">();</span>
<span class="identifier">expect_enumerate_non_text_file</span><span class="special">();</span>
<span class="identifier">expect_enumerate_text_file</span><span class="special">(</span><span class="identifier">ARBITRARY_OTHER_TEXT_FILE_NAME</span><span class="special">);</span>
<span class="identifier">expect_enumerate_end</span><span class="special">();</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">ARBITRARY_DIRECTORY_NAME</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_SUITE_END</span><span class="special">();</span>
</pre>
<p>
</p>
<p>
The tests themselves are largely unchanged and what is different is the intention
revealing methods we placed in the test fixture. Mock object frameworks generally
provide a rich set of methods on the mock object for setting the expectations
on the number of times a method is called, such as <code class="literal">once()</code>,
the expected arguments to a method, such as <code class="literal">with()</code>, and
the return value of a method, such as <code class="literal">returns()</code>.
</p>
<p>
With a turtle mock, the expectations are verified when the mock object is
destroyed. The mock is a member in our fixture and will be destroyed at the
end of every test case.
</p>
<h5>
<a name="test.guide.mocking_collaborators.h0"></a>
<span class="phrase"><a name="test.guide.mocking_collaborators.example_source_code"></a></span><a class="link" href="mocking_collaborators.html#test.guide.mocking_collaborators.example_source_code">Example Source
Code</a>
</h5>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
System under test:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
<a href="../../../../../../libs/test/doc/src/system_under_test/scanner/scanner.hpp" target="_top">scanner.hpp</a>
</li>
<li class="listitem">
<a href="../../../../../../libs/test/doc/src/system_under_test/scanner/scanner.cpp" target="_top">scanner.cpp</a>
</li>
<li class="listitem">
<a href="../../../../../../libs/test/doc/src/system_under_test/scanner/directory_scanner.hpp" target="_top">directory_scanner.hpp</a>
</li>
<li class="listitem">
<a href="../../../../../../libs/test/doc/src/system_under_test/scanner/filesystem_directory_scanner.hpp" target="_top">filesystem_directory_scanner.hpp</a>
</li>
</ul></div>
</li>
<li class="listitem">
Tests:
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
<a href="../../../../../../libs/test/doc/src/examples/turtle_mock.cpp" target="_top">turtle_mock.cpp</a>
</li></ul></div>
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="testing_file_io.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing__main_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/test_case_design.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Test Case Design and Maintenance</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="compilation/shared_library.html" title="Shared Library">
<link rel="next" href="acceptance_tests.html" title="Acceptance Tests and Unit Tests">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilation/shared_library.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acceptance_tests.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.test_case_design"></a><a class="link" href="test_case_design.html" title="Test Case Design and Maintenance">Test Case Design and Maintenance</a>
</h3></div></div></div>
<p>
<a href="http://xunitpatterns.com/Goals%20of%20Test%20Automation.html" target="_top">xUnit
Patterns</a><a href="#ftn.test.guide.test_case_design.f0" class="footnote" name="test.guide.test_case_design.f0"><sup class="footnote">[2]</sup></a>, by Gerard Meszaros, presents several high level objectives for
automated tests and individual goals for achieving those objectives:
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
Objective: Tests should help us improve quality.
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#tests_as_specifications">Tests as specifications</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#bug_repellant">Bug repellant</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#defect_localization">Defect localization</a>
</li>
</ul></div>
</li>
<li class="listitem">
Objective: Tests should help us understand the system under test.
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
Goal: <a class="link" href="test_case_design.html#tests_as_documentation">Tests as documentation</a>
</li></ul></div>
</li>
<li class="listitem">
Objective: Tests should reduce, not increase, risk.
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#tests_as_safety_net">Tests as safety net</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#do_no_harm">Do No Harm</a>
</li>
</ul></div>
</li>
<li class="listitem">
Objective: Tests should be easy to run.
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#fully_automated_test">Fully Automated Test</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#self_checking_test">Self-Checking Test</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#repeatable_test">Repeatable Test</a>
</li>
</ul></div>
</li>
<li class="listitem">
Objective: Tests should be easy to write and maintain.
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#simple_tests">Simple Tests</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#expressive_tests">Expressive Tests</a>
</li>
<li class="listitem">
Goal: <a class="link" href="test_case_design.html#separation_of_concerns">Separation of Concerns</a>
</li>
</ul></div>
</li>
<li class="listitem">
Objective: Tests should require minimal maintenance as the system evolves
around them.
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
Goal: <a class="link" href="test_case_design.html#robust_test">Robust Test</a>
</li></ul></div>
</li>
</ul></div>
<p>
In this section, we will discuss how the facilities in Boost.Test can support
these goals; see <span class="emphasis"><em>xUnit Patterns</em></span> for the description
and rationale of these goals.
</p>
<a name="tests_as_specifications"></a><h5>
<a name="test.guide.test_case_design.h0"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__tests_as_specifications"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__tests_as_specifications">Goal:
Tests as Specifications</a>
</h5>
<p>
Tests can serve as specifications for the system under test if we write the
test for the system first, using test-driven development. We imagine the
perfect system that does exactly what we need and write a test as if that
system existed. In order to achieve a failing test, we write just enough
of the implementation to make the test compile.
</p>
<p>
A good way to ensure that the implementation causes a test failure is for
called methods and functions to throw an exception indicating that the method
or function called is not implemented:
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">stdexcept</span><span class="special">></span>
<span class="keyword">void</span> <span class="identifier">free_function</span><span class="special">()</span>
<span class="special">{</span>
<span class="keyword">throw</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">runtime_error</span><span class="special">(</span><span class="string">"free_function not implemented."</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
We get a failing test right away, while still satisfying just enough syntax
to satisfy the compiler.
</p>
<a name="bug_repellant"></a><h5>
<a name="test.guide.test_case_design.h1"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__bug_repellant"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__bug_repellant">Goal:
Bug Repellant</a>
</h5>
<p>
It is well known that the longer a bug remains undetected in a software,
the more expensive it is to fix.<a href="#ftn.test.guide.test_case_design.f1" class="footnote" name="test.guide.test_case_design.f1"><sup class="footnote">[3]</sup></a> If we are practicing test-driven development, then we find bugs
in our implementation as soon as we code them. The time to find a bug in
this manner can be as little as seconds and was demonstrated in the tutorial
<a class="link" href="../tutorials/hello_test.html" title="Hello, Test!">"Hello, Test!"</a>.
</p>
<p>
The easiest way to achieve this rapid feedback is to run the tests as part
of the build. The details vary depending on your build system.
</p>
<p>
In Visual Studio 2012, this is most readily achieved by setting a post-build
build event as shown below. Because <code class="literal">$(TargetPath)</code> may
contain spaces, the variable is surrounded by double quotes to ensure that
the entire path to the executable is found. The description is given generically
using <code class="literal">$(TargetName)</code> so that this build event can be copied
to any test project's properties and be used without modification. Take care
that you define the build event for all configurations and all platforms
used by your build system so that the unit tests always run.
</p>
<p>
<span class="inlinemediaobject"><img src="../../../src/user-vs2012-build-event.png" alt="user-vs2012-build-event"></span>
</p>
<p>
If you are using a <code class="literal">Makefile</code> to compile your code, create
a phony target that depends on your unit test executable and specify the
command to execute your unit test and create the phony target if the test
passes. This will ensure that the unit tests continue to run as long as they
fail because the phony target will only be updated when the tests pass.
</p>
<p>
If you are using Boost.Build and Jamfiles to compile your code, you can use
the rules in the <code class="literal">testing</code> module to incorporate your unit
tests into your build. The <code class="literal">unit-test</code> rule will build an
executable and run it, failing the build when the executable returns a non-zero
exit status. Other rules in the <code class="literal">testing</code> module may also
be useful.
</p>
<a name="defect_localization"></a><h5>
<a name="test.guide.test_case_design.h2"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__defect_localization"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__defect_localization">Goal: Defect
Localization</a>
</h5>
<p>
If we keep our test cases focused on only a single behavior in our system
under test, then there is only a single cause for any particular unit test
to fail. We saw this in <a class="link" href="../tutorials/testing_with_exceptions.html" title="Testing with Exceptions">"Testing
With Exceptions"</a> when we added a new test case to <code class="literal">hello_world</code>
for a bad stream. By choosing <a href="http://c2.com/cgi/wiki?IntentionRevealingNames" target="_top">intention
revealing names</a> for our test cases, we can identify the source of
the failure simply by reading the name of the failed test case.
</p>
<p>
Since each test case excercises only one scenario for the system under test,
we must make at least one test case for each possible scenario. We can use
the <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_top">cyclomatic
complexity</a> as a rough proxy for the number of tests cases needed
for any particular method or function to ensure that we have sufficient
<a href="http://en.wikipedia.org/wiki/Code_coverage" target="_top">coverage</a>
of the system under test.
</p>
<a name="tests_as_documentation"></a><h5>
<a name="test.guide.test_case_design.h3"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__tests_as_documentation"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__tests_as_documentation">Goal:
Tests as Documentation</a>
</h5>
<p>
When confronted with a new software component or a new code base, how do
we understand its behavior? We can read the documentation, but ultimately
the behavior is defined by the code executed. Comments and documentation
can lag the actual implementation. Sometimes, the only answer to our questions
about a software component come from the implementation. If the component
is only available to us in binary form, we don't have the luxury of consulting
the source code in order to answer our questions.
</p>
<p>
Unit tests can serve as a form of executable documentation for software components.
They tell us how the system responds to the scenarios orchestrated by the
test cases.
</p>
<p>
When faced with a confusing aspect of a software component, we can answer
questions about the behavior of the component by writing a unit test that
describes our hypothesis about the component's behavior. If the unit test
passes, we have verified our hypothesis. If the unit test fails, our hypothesis
was incorrect; either way, we have learned something about the component.
We can use unit tests to document subtle and unexpected behaviors of components.
Unit tests are also the perfect documentation for a bug report on a component
maintained by others.
</p>
<a name="tests_as_safety_net"></a><h5>
<a name="test.guide.test_case_design.h4"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__tests_as_safety_net"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__tests_as_safety_net">Goal: Tests
as Safety Net</a>
</h5>
<p>
When we start building a software system, we are able to keep all the details
of the system in our mind because the system is small. As the size of the
system increases, it becomes harder and harder to keep all the details of
the system in mind as we make modifications. A comprehensive suite of unit
tests over the system give us an automated regression test that gives us
the confidence of knowing that our changes are not introducing any problems
elsewhere in the code.
</p>
<a name="do_no_harm"></a><h5>
<a name="test.guide.test_case_design.h5"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__do_no_harm"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__do_no_harm">Goal:
Do No Harm</a>
</h5>
<p>
Automated tests should only reduce risk, not introduce risk into the system.
To achieve this, we want to keep all test code separated from production
code. The easiest way to do this is to put the system under test into a library
(static or shared) and link the test executable against the library. We saw
this in the tutorial <a class="link" href="../tutorials/hello_test.html" title="Hello, Test!">"Hello,
Test!"</a>, when we separated the system under test into the <code class="literal">hello</code>
library and the test code into <code class="literal">test_hello.cpp</code>.
</p>
<a name="fully_automated_test"></a><h5>
<a name="test.guide.test_case_design.h6"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__fully_automated_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__fully_automated_test">Goal: Fully
Automated Test</a>
</h5>
<p>
Boost.Test supports fully automated tests by allowing us to supply the inputs
to the system under test in each test case in order to drive the system into
the scenario of interest. Test cases should never rely on user input, or
they will not be fully automated tests that can run unattended.
</p>
<a name="self_checking_test"></a><h5>
<a name="test.guide.test_case_design.h7"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__self_checking_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__self_checking_test">Goal: Self-Checking
Test</a>
</h5>
<p>
Boost.Test supports self-checking tests through its rich set of <a class="link" href="../reference/assertion.html" title="Test Assertions">assertions</a>.
Each test case supplies the inputs to the system under test and validates
the behavior of the system using assertions. Self-checking tests report only
bad news and good news results in no notifications. The default output from
the test runner only reports failing tests and a summary of all tests executed.
The test runner also returns a non-zero status code when a test fails, allowing
easy failure of <a href="http://en.wikipedia.org/wiki/Continuous_integration" target="_top">continuous
integration</a> builds.
</p>
<a name="repeatable_test"></a><h5>
<a name="test.guide.test_case_design.h8"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__repeatable_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__repeatable_test">Goal:
Repeatable Test</a>
</h5>
<p>
We should get the same results from automated tests every time we run them,
provided the implementation of the system under test has not changed between
runs. In the context of unit testing, this implies that a test case must
control all the collaborators that can influence the system.
</p>
<p>
The most troublesome collaborators are among the following: * current date
and time * device input * file system * system services (Windows registry,
networking, etc.) * C style apis
</p>
<p>
In the book "Working Effectively with Legacy Code", Michael Feathers
described a number of techniques for decoupling the system under test from
such troublesome collaborators that can cause unit tests to spuriously fail.
All the techniques are variations on a theme: introduce a level of indirection
to decouple the system under test from a collaborator. C++ offers <a href="http://en.wikipedia.org/wiki/Template_metaprogramming#Static_polymorphism" target="_top">static
polymorphism</a> via templates as well as the usual dynamic polymorphism
via interfaces to decouple a system under test from a collaborator.
</p>
<a name="simple_tests"></a><h5>
<a name="test.guide.test_case_design.h9"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__simple_tests"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__simple_tests">Goal:
Simple Tests</a>
</h5>
<p>
We keep tests simple by exercising only one scenario for each test case.
Simple test cases read linearly through the phases of setup, exercise and
verify. Trying to exercise too much functionality in a single test case can
introduce unnecessary complexity into the test.
</p>
<p>
Duplication between test cases can make tests hard to read by distracting
us from the steady rhythm of setup, exercise and verify of test cases. You
may find it useful to apply the <a href="http://en.wikipedia.org/wiki/Rule_of_three_(computer_programming)" target="_top">rule
of three</a> when writing test cases to decide when to extract duplication
into a fixture.
</p>
<a name="expressive_tests"></a><h5>
<a name="test.guide.test_case_design.h10"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__expressive_tests"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__expressive_tests">Goal:
Expressive Tests</a>
</h5>
<p>
Sometimes low-level setup details get in the way of a test reading clearly.
This could be the result of a complicated data structure needed in order
to exercise the system down a particular code path. Similarly, the verification
of a result produced by the system under test may involve a series of assertions
that make the test hard to follow. Boost.Test provides fixtures as a way
to localize these distracting details by extracting setup and assertion methods
into the fixture.
</p>
<p>
Over time we build up a series of methods in the fixture that allow us to
express domain concepts succinctly and clearly in the tests, making them
more expressive of the scenario in the domain. Fixtures can be combined through
aggregation or inheritance in order to express combinations and hierarchies
of domain concepts.
</p>
<a name="separation_of_concerns"></a><h5>
<a name="test.guide.test_case_design.h11"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__separation_of_concerns"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__separation_of_concerns">Goal:
Separation of Concerns</a>
</h5>
<p>
We keep test code separated from production code with the packaging mechanisms
provided by C++. Production code is supplied to the test executable as a
library, either static or dynamic. The test code resides in separate source
files from the production code. The production code consumed by the test
code is compiled with the exact same preprocessor settings as the production
code to ensure that tests do not influence the production code.
</p>
<p>
We keep concerns separated in our tests by testing each concern in its own
test case. Each test case exercises a single scenario and our tests exercise
the responsibilities or classes individually. If we are practicing test-driven
development, we keep the <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle" target="_top">single
responsibility principle</a> in mind as we are creating the system to
satisfy the evolving tests. When our tests start involving more than one
concern, it can be a sign that our system under test is covering more than
one responsibility.
</p>
<a name="robust_test"></a><h5>
<a name="test.guide.test_case_design.h12"></a>
<span class="phrase"><a name="test.guide.test_case_design.goal__robust_test"></a></span><a class="link" href="test_case_design.html#test.guide.test_case_design.goal__robust_test">Goal:
Robust Test</a>
</h5>
<p>
Test cases are robust when small changes to the system under test result
in a small number of test cases failing. If a small change to the system
results in many test cases failing, then our tests are not robust. If our
tests cases do not sufficiently isolate the system under test from its collaborators,
then a change to one part of the system can cause tests on seemingly unrelated
parts of the system to fail. If we have repeated assertions in many test
cases for the same system under test, then many test cases can fail if that
single assertion fails. Each of these situations is a case of overlap between
test cases; in the first case, the overlap is between the parts of the production
code unrelated to the system under test that we exercise and in the second
case, the overlap is between test cases on the system under test.
</p>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
<div id="ftn.test.guide.test_case_design.f0" class="footnote"><p><a href="#test.guide.test_case_design.f0" class="para"><sup class="para">[2] </sup></a>
The term <span class="emphasis"><em>xUnit</em></span> is a generic term for unit testing
frameworks, such as jUnit. The advice in <span class="emphasis"><em>xUnit Patterns</em></span>
applies equally well to Boost.Test.
</p></div>
<div id="ftn.test.guide.test_case_design.f1" class="footnote"><p><a href="#test.guide.test_case_design.f1" class="para"><sup class="para">[3] </sup></a>
<a href="https://en.wikipedia.org/wiki/Software_testing#Economics" target="_top">Software
Testing: Economics</a>
</p></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilation/shared_library.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acceptance_tests.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing__main_.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Testing main</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="mocking_collaborators.html" title="Mocking Collaborators">
<link rel="next" href="testing_protected_or_private_members.html" title="Testing Protected or Private Members">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mocking_collaborators.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.testing__main_"></a><a class="link" href="testing__main_.html" title="Testing main">Testing <code class="literal">main</code></a>
</h3></div></div></div>
<p>
If there is considerable logic in an appliation's <code class="literal">main</code>
function, this can be difficult to unit test. The <a href="http://en.wikipedia.org/wiki/One_definition_rule" target="_top">One
Definition Rule</a> prevents us from having the application's <code class="literal">main</code>
and the unit test executable's <code class="literal">main</code> in the same executable.
Furthermore, even if we could perform some trick to resolve the multiply
defined symbol<a href="#ftn.test.guide.testing__main_.f0" class="footnote" name="test.guide.testing__main_.f0"><sup class="footnote">[4]</sup></a>, we would still need to figure out how to link the test executable
with the application's <code class="literal">main</code> function to test the code.
</p>
<p>
When it becomes difficult to test code where it is currently, such as in
the body of <code class="literal">main</code>, the simplest thing to do is to move
the code somewhere else that makes it easy to test. Here is one way to accomplish
this:
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
rename <code class="literal">main</code> to <code class="literal">app_main</code>.
</li>
<li class="listitem">
move <code class="literal">app_main</code> to a library.
</li>
<li class="listitem">
create a simple delegating <code class="literal">main</code> that calls <code class="literal">app_main</code>.
</li>
<li class="listitem">
write tests for <code class="literal">app_main</code> by linking against the library.
</li>
</ol></div>
<p>
The delegating <code class="literal">main</code> looks like this:
</p>
<pre class="programlisting"><span class="keyword">extern</span> <span class="keyword">int</span> <span class="identifier">app_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[]);</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
<span class="special">{</span>
<span class="keyword">return</span> <span class="identifier">app_main</span><span class="special">(</span><span class="identifier">argc</span><span class="special">,</span> <span class="identifier">argv</span><span class="special">);</span>
<span class="special">}</span>
</pre>
<p>
If you don't already have a library for <code class="literal">app_main</code>, then
create one and add all the other application code to the library as well.
The build logic for making the executable will consist of compiling a single
source file containing your delegating implementation of <code class="literal">main</code>
and linking against a library containing the rest of the application. This
will give you a starting point for writing unit tests for anything in your
application.
</p>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
<div id="ftn.test.guide.testing__main_.f0" class="footnote"><p><a href="#test.guide.testing__main_.f0" class="para"><sup class="para">[4] </sup></a>
We could abuse the C++ preprocessor or use object file symbol modification.
</p></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2013 Richard Thomson<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="mocking_collaborators.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing_protected_or_private_members.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
================================================
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_file_i_o.html
================================================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Testing File I/O</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="../../index.html" title="Chapter 1. Boost.Test 1.22.0">
<link rel="up" href="../guide.html" title="User's Guide">
<link rel="prev" href="acceptance_tests.html" title="Acceptance Tests and Unit Tests">
<link rel="next" href="testing__main_.html" title="Testing main">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="acceptance_tests.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../guide.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="testing__main_.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="test.guide.testing_file_i_o"></a><a class="link" href="testing_file_i_o.html" title="Testing File I/O">Testing File I/O</a>
</h3></div></div></div>
<p>
A common problem encountered in unit testing is interaction with the file
system: scanning directories, creating files, opening files, reading files,
writing files, creating symbolic links and so-on. Interacting directly with
the file system when executing unit tests can lead to a failure of tests
to be <a class="link" href="test_case_design.html#robust_test">robust</a> or <a class="link" href="test_case_design.html#repeatable_test">repeatable</a>.
We also want our unit tests to be fast; an execution time of 100 milliseconds
is considered a slow unit test. Interacting directly with the file system
can make our unit tests take too long to execute.
</p>
<p>
The simplest approach is to wrap file system operations in an interface and
perform all operations through the interface. Consider the following example
of a function that returns a vector of filenames ending in ".txt"
in a given directory:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">extern</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">text_files</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">directory</span><span class="special">);</span>
</pre>
<p>
</p>
<p>
How can we unit test <code class="literal">text_files</code> without relying on the
actual contents of the file system? We can decouple <code class="literal">text_files</code>
from the file system by introducing an interface:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">directory_scanner</span><span class="special">;</span>
<span class="keyword">extern</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">text_files</span><span class="special">(</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">directory</span><span class="special">,</span>
<span class="identifier">directory_scanner</span><span class="special">&</span> <span class="identifier">scanner</span><span class="special">);</span>
</pre>
<p>
</p>
<p>
We've used a forward declaration of <code class="literal">directory_scanner</code>
where <code class="literal">text_files</code> is declared. The interface looks like
this:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">directory_scanner</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">directory_scanner</span><span class="special">()</span> <span class="special">{}</span>
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">directory</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">has_next</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">next</span><span class="special">()</span> <span class="keyword">const</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<p>
</p>
<p>
The interface <code class="literal">directory_scanner</code> is used to isolate the
free function <code class="literal">text_files</code> from directly interacting with
the file system. In the unit tests, we use an implementation of <code class="literal">directory_scanner</code>
that senses how <code class="literal">text_files</code> uses the interface and allows
us to control the data made available to <code class="literal">text_files</code>. The
tests can use a hand-crafted fake implementation or an implementation from
a mock library. The fake might look something like this:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">fake_directory_scanner</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">directory_scanner</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="identifier">fake_directory_scanner</span><span class="special">()</span>
<span class="special">:</span> <span class="identifier">begin_called</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span>
<span class="identifier">has_next_called</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span>
<span class="identifier">next_called</span><span class="special">(</span><span class="keyword">false</span><span class="special">),</span>
<span class="identifier">next_call_count</span><span class="special">(</span><span class="number">0U</span><span class="special">)</span>
<span class="special">{}</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">fake_directory_scanner</span><span class="special">()</span> <span class="special">{}</span>
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">directory</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">begin_called</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
<span class="identifier">begin_last_directory</span> <span class="special">=</span> <span class="identifier">directory</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">bool</span> <span class="identifier">begin_called</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">begin_last_directory</span><span class="special">;</span>
<span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">has_next</span><span class="special">()</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="identifier">has_next_called</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
<span class="keyword">return</span> <span class="identifier">next_call_count</span> <span class="special"><=</span> <span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span>
<span class="special">}</span>
<span class="keyword">mutable</span> <span class="keyword">bool</span> <span class="identifier">has_next_called</span><span class="special">;</span>
<span class="keyword">bool</span> <span class="identifier">has_next_fake_result</span><span class="special">;</span>
<span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">next</span><span class="special">()</span> <span class="keyword">const</span>
<span class="special">{</span>
<span class="identifier">next_called</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
<span class="special">++</span><span class="identifier">next_call_count</span><span class="special">;</span>
<span class="keyword">return</span> <span class="identifier">has_next</span><span class="special">()</span> <span class="special">?</span> <span class="identifier">next_fake_results</span><span class="special">[</span><span class="identifier">next_call_count</span> <span class="special">-</span> <span class="number">1U</span><span class="special">]</span> <span class="special">:</span> <span class="string">""</span><span class="special">;</span>
<span class="special">}</span>
<span class="keyword">mutable</span> <span class="keyword">bool</span> <span class="identifier">next_called</span><span class="special">;</span>
<span class="keyword">mutable</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">next_call_count</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">next_fake_results</span><span class="special">;</span>
<span class="special">};</span>
</pre>
<p>
</p>
<p>
The tests for <code class="literal">text_files</code> use the <code class="literal">fake_directory_scanner</code>
to specify the configuration of the file system for the different test cases:
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">text_files_fixture</span>
<span class="special">{</span>
<span class="identifier">fake_directory_scanner</span> <span class="identifier">scanner</span><span class="special">;</span>
<span class="special">};</span>
<span class="identifier">BOOST_FIXTURE_TEST_SUITE</span><span class="special">(</span><span class="identifier">test_text_files</span><span class="special">,</span> <span class="identifier">text_files_fixture</span><span class="special">);</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_empty_directory</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">empty</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_empty_for_no_text_files</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.foo"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">empty</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">empty</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_file_for_text_file</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">expected</span><span class="special">;</span>
<span class="identifier">expected</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_CASE</span><span class="special">(</span><span class="identifier">returns_only_text_file_for_mixed_files</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
<span class="identifier">scanner</span><span class="special">.</span><span class="identifier">next_fake_results</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.foo"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">expected</span><span class="special">;</span>
<span class="identifier">expected</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="string">"foo.txt"</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">files</span> <span class="special">=</span> <span class="identifier">text_files</span><span class="special">(</span><span class="string">"foo"</span><span class="special">,</span> <span class="identifier">scanner</span><span class="special">);</span>
<span class="identifier">BOOST_REQUIRE_EQUAL_COLLECTIONS</span><span class="special">(</span><span class="identifier">expected</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">expected</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">files</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
<span class="special">}</span>
<span class="identifier">BOOST_AUTO_TEST_SUITE_END</span><span class="special">();</span>
</pre>
<p>
</p>
<p>
In production code, we use an implementation of <code class="literal">directory_scanner</code>
that interacts directly with the file system using Boost.FileSystem.
</p>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">filesystem_directory_scanner</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">directory_scanner</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="identifier">filesystem_directory_scanner</span><span class="special">()</span> <span class="special">{}</span>
<span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">filesystem_directory_scanner</span><span class="special">()</span> <span class="special">{}</span>
<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">directory</span><span class="special">)</span>
<span class="special">{</span>
<span class="identifier">current</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">directory_iterator</span><span class="special">(</span><span class="identifier">directory</span><span class="special">);</span>
<span class="special">}</span>
<span class="keyword">virtual</span> <span class="keyword">bool</span> <span class="identifier">has_next</span><span class="specia
gitextract_igkvdt0q/
├── .gitignore
├── README.md
└── files/
├── ConceptClang.pptx
├── CppNow2014Ranges.odp
├── PracticalTypeErasureSlides.odp
├── bounded_integer.odp
├── cxx11-library-design.pptx
├── functional-data-structures.key
├── open-pattern-matching.pptx
├── optimization_boost_asio.key
├── ownership_of_memory.odp
├── test_driven/
│ ├── Boost.Test Documentation Rewrite/
│ │ ├── doc/
│ │ │ └── src/
│ │ │ └── boostbook.css
│ │ ├── index.html
│ │ └── libs/
│ │ └── test/
│ │ └── doc/
│ │ ├── Jamfile.v2
│ │ ├── html/
│ │ │ ├── index.html
│ │ │ ├── test/
│ │ │ │ ├── guide/
│ │ │ │ │ ├── acceptance_tests.html
│ │ │ │ │ ├── compilation/
│ │ │ │ │ │ ├── _main_.html
│ │ │ │ │ │ ├── header_only.html
│ │ │ │ │ │ ├── minimal_header.html
│ │ │ │ │ │ ├── shared_library.html
│ │ │ │ │ │ └── static_library.html
│ │ │ │ │ ├── compilation.html
│ │ │ │ │ ├── exception_safety_test.html
│ │ │ │ │ ├── manually_registering_test_cases_and_suites.html
│ │ │ │ │ ├── mocking_collaborators.html
│ │ │ │ │ ├── test_case_design.html
│ │ │ │ │ ├── testing__main_.html
│ │ │ │ │ ├── testing_file_i_o.html
│ │ │ │ │ ├── testing_file_io.html
│ │ │ │ │ └── testing_protected_or_private_members.html
│ │ │ │ ├── guide.html
│ │ │ │ ├── how_to_read_this_documentation.html
│ │ │ │ ├── motivation.html
│ │ │ │ ├── reference/
│ │ │ │ │ ├── assertion/
│ │ │ │ │ │ ├── _boost____level___bitwise_equal_.html
│ │ │ │ │ │ ├── _boost____level___close_.html
│ │ │ │ │ │ ├── _boost____level___close_fraction_.html
│ │ │ │ │ │ ├── _boost____level___equal_collections_.html
│ │ │ │ │ │ ├── _boost____level___exception_.html
│ │ │ │ │ │ ├── _boost____level___ge_.html
│ │ │ │ │ │ ├── _boost____level___gt_.html
│ │ │ │ │ │ ├── _boost____level___le_.html
│ │ │ │ │ │ ├── _boost____level___lt_.html
│ │ │ │ │ │ ├── _boost____level___message_.html
│ │ │ │ │ │ ├── _boost____level___ne_.html
│ │ │ │ │ │ ├── _boost____level___no_throw_.html
│ │ │ │ │ │ ├── _boost____level___predicate_.html
│ │ │ │ │ │ ├── _boost____level___small_.html
│ │ │ │ │ │ ├── _boost_test_dont_print_log_value_.html
│ │ │ │ │ │ ├── _boost_test_error_.html
│ │ │ │ │ │ ├── _boost_test_is_defined_.html
│ │ │ │ │ │ ├── boost_fail.html
│ │ │ │ │ │ ├── boost_level_equal.html
│ │ │ │ │ │ ├── boost_level_exception.html
│ │ │ │ │ │ ├── boost_level_message.html
│ │ │ │ │ │ ├── boost_level_no_throw.html
│ │ │ │ │ │ ├── boost_level_throw.html
│ │ │ │ │ │ ├── boost_test_dont_print_log_value.html
│ │ │ │ │ │ └── levels.html
│ │ │ │ │ ├── assertion.html
│ │ │ │ │ ├── configuration_macros.html
│ │ │ │ │ ├── headers.html
│ │ │ │ │ ├── runner/
│ │ │ │ │ │ ├── argument/
│ │ │ │ │ │ │ ├── ___break_exec_path_.html
│ │ │ │ │ │ │ ├── ___build_info_.html
│ │ │ │ │ │ │ ├── ___catch_system_errors_.html
│ │ │ │ │ │ │ ├── ___color_output_.html
│ │ │ │ │ │ │ ├── ___detect_fp_exceptions_.html
│ │ │ │ │ │ │ ├── ___detect_memory_leaks_.html
│ │ │ │ │ │ │ ├── ___log_level_.html
│ │ │ │ │ │ │ ├── ___log_sink_.html
│ │ │ │ │ │ │ ├── ___output_format_.html
│ │ │ │ │ │ │ ├── ___random_.html
│ │ │ │ │ │ │ ├── ___report_level_.html
│ │ │ │ │ │ │ ├── ___report_sink_.html
│ │ │ │ │ │ │ ├── ___result_code_.html
│ │ │ │ │ │ │ ├── ___save_pattern_.html
│ │ │ │ │ │ │ ├── ___show_progress_.html
│ │ │ │ │ │ │ ├── ___use_alt_stack_.html
│ │ │ │ │ │ │ ├── auto_start_dbg.html
│ │ │ │ │ │ │ ├── list_content.html
│ │ │ │ │ │ │ ├── log_format.html
│ │ │ │ │ │ │ ├── log_level.html
│ │ │ │ │ │ │ ├── log_sink.html
│ │ │ │ │ │ │ ├── output_format.html
│ │ │ │ │ │ │ ├── report_format.html
│ │ │ │ │ │ │ ├── report_level.html
│ │ │ │ │ │ │ ├── report_sink.html
│ │ │ │ │ │ │ └── run_test.html
│ │ │ │ │ │ ├── argument.html
│ │ │ │ │ │ ├── output/
│ │ │ │ │ │ │ ├── _boost_test_checkpoint_.html
│ │ │ │ │ │ │ ├── _boost_test_passpoint_.html
│ │ │ │ │ │ │ ├── boost_test_checkpoint.html
│ │ │ │ │ │ │ ├── boost_test_message.html
│ │ │ │ │ │ │ ├── log.html
│ │ │ │ │ │ │ ├── report.html
│ │ │ │ │ │ │ ├── test_log.html
│ │ │ │ │ │ │ └── test_report.html
│ │ │ │ │ │ └── output.html
│ │ │ │ │ ├── runner.html
│ │ │ │ │ ├── test_case/
│ │ │ │ │ │ ├── boost_auto_test_case.html
│ │ │ │ │ │ ├── boost_auto_test_case_expected_failures.html
│ │ │ │ │ │ ├── boost_auto_test_case_template.html
│ │ │ │ │ │ ├── boost_fixture_test_case.html
│ │ │ │ │ │ ├── boost_global_fixture.html
│ │ │ │ │ │ ├── boost_param_class_test_case.html
│ │ │ │ │ │ ├── boost_param_test_case.html
│ │ │ │ │ │ ├── boost_test_case.html
│ │ │ │ │ │ ├── boost_test_case_template.html
│ │ │ │ │ │ └── boost_test_case_template_function.html
│ │ │ │ │ ├── test_case.html
│ │ │ │ │ ├── test_classes/
│ │ │ │ │ │ ├── assertion/
│ │ │ │ │ │ │ ├── _boost____level___bitwise_equal_.html
│ │ │ │ │ │ │ ├── _boost____level___close_.html
│ │ │ │ │ │ │ ├── _boost____level___close_fraction_.html
│ │ │ │ │ │ │ ├── _boost____level___equal_collections_.html
│ │ │ │ │ │ │ ├── _boost____level___exception_.html
│ │ │ │ │ │ │ ├── _boost____level___ge_.html
│ │ │ │ │ │ │ ├── _boost____level___gt_.html
│ │ │ │ │ │ │ ├── _boost____level___le_.html
│ │ │ │ │ │ │ ├── _boost____level___lt_.html
│ │ │ │ │ │ │ ├── _boost____level___message_.html
│ │ │ │ │ │ │ ├── _boost____level___ne_.html
│ │ │ │ │ │ │ ├── _boost____level___no_throw_.html
│ │ │ │ │ │ │ ├── _boost____level___predicate_.html
│ │ │ │ │ │ │ ├── _boost____level___small_.html
│ │ │ │ │ │ │ ├── _boost_test_dont_print_log_value_.html
│ │ │ │ │ │ │ ├── _boost_test_error_.html
│ │ │ │ │ │ │ ├── _boost_test_is_defined_.html
│ │ │ │ │ │ │ ├── boost_fail.html
│ │ │ │ │ │ │ ├── boost_level_equal.html
│ │ │ │ │ │ │ ├── boost_level_throw.html
│ │ │ │ │ │ │ └── levels.html
│ │ │ │ │ │ ├── assertion.html
│ │ │ │ │ │ ├── headers.html
│ │ │ │ │ │ ├── init_unit_test_func.html
│ │ │ │ │ │ ├── master_test_suite_t.html
│ │ │ │ │ │ ├── predicate_result/
│ │ │ │ │ │ │ ├── init_unit_test_func.html
│ │ │ │ │ │ │ ├── master_test_suite_t.html
│ │ │ │ │ │ │ ├── test_case.html
│ │ │ │ │ │ │ ├── test_observer.html
│ │ │ │ │ │ │ ├── test_suite.html
│ │ │ │ │ │ │ ├── test_unit.html
│ │ │ │ │ │ │ ├── unit_test_log_formatter.html
│ │ │ │ │ │ │ ├── unit_test_log_t.html
│ │ │ │ │ │ │ └── unit_test_main.html
│ │ │ │ │ │ ├── predicate_result.html
│ │ │ │ │ │ ├── runner/
│ │ │ │ │ │ │ ├── argument.html
│ │ │ │ │ │ │ └── output.html
│ │ │ │ │ │ ├── runner.html
│ │ │ │ │ │ ├── test_case.html
│ │ │ │ │ │ ├── test_observer.html
│ │ │ │ │ │ ├── test_suite.html
│ │ │ │ │ │ ├── test_unit.html
│ │ │ │ │ │ ├── unit_test_log_formatter.html
│ │ │ │ │ │ ├── unit_test_log_t.html
│ │ │ │ │ │ └── unit_test_main.html
│ │ │ │ │ ├── test_classes.html
│ │ │ │ │ ├── test_suite/
│ │ │ │ │ │ ├── boost_auto_test_suite.html
│ │ │ │ │ │ ├── boost_auto_test_suite_end.html
│ │ │ │ │ │ ├── boost_fixture_test_suite.html
│ │ │ │ │ │ ├── boost_test_module.html
│ │ │ │ │ │ └── boost_test_suite.html
│ │ │ │ │ └── test_suite.html
│ │ │ │ ├── reference.html
│ │ │ │ ├── tutorials/
│ │ │ │ │ ├── hello_test.html
│ │ │ │ │ ├── running_selected_tests.html
│ │ │ │ │ ├── testing_with_exceptions.html
│ │ │ │ │ └── testing_with_fixtures.html
│ │ │ │ └── tutorials.html
│ │ │ └── test_HTML.manifest
│ │ ├── src/
│ │ │ ├── Jamfile.v2
│ │ │ ├── UTF.log.xsd
│ │ │ ├── UTF.report.xsd
│ │ │ ├── examples/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── another_global_fixture.cpp
│ │ │ │ ├── assertion_failures.cpp
│ │ │ │ ├── assertions.cpp
│ │ │ │ ├── auto_test_case_expected_failures.cpp
│ │ │ │ ├── auto_test_case_template.cpp
│ │ │ │ ├── compilation/
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── dynamic/
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── dynamic_main/
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── minimal/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── static/
│ │ │ │ │ │ ├── main.cpp
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ └── static_main/
│ │ │ │ │ ├── main.cpp
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── file_system.cpp
│ │ │ │ ├── global_fixture.cpp
│ │ │ │ ├── manual_registration.cpp
│ │ │ │ ├── param_class_test_case.cpp
│ │ │ │ ├── param_test_case.cpp
│ │ │ │ ├── test_case.cpp
│ │ │ │ ├── test_case_template.cpp
│ │ │ │ └── turtle_mock.cpp
│ │ │ ├── ref-assertion.qbk
│ │ │ ├── ref-assertion.qbk.bak
│ │ │ ├── ref-compilation.qbk
│ │ │ ├── ref-runner-argument.qbk
│ │ │ ├── ref-runner-argument.qbk.bak
│ │ │ ├── ref-runner-output.qbk
│ │ │ ├── ref-runner.qbk
│ │ │ ├── ref-test-case.qbk
│ │ │ ├── ref-test-case.qbk.bak
│ │ │ ├── ref-test-classes.qbk
│ │ │ ├── ref-test-suite.qbk
│ │ │ ├── reference.qbk
│ │ │ ├── system_under_test/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── hello/
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── hello.cpp
│ │ │ │ │ └── hello.hpp
│ │ │ │ └── scanner/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── directory_scanner.hpp
│ │ │ │ ├── filesystem_directory_scanner.hpp
│ │ │ │ ├── scanner.cpp
│ │ │ │ └── scanner.hpp
│ │ │ ├── test.qbk
│ │ │ ├── tutorials/
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── hello_test/
│ │ │ │ │ ├── 1/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── hello_test~1.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ └── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── 2/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── hello_test~2.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ └── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── 3/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── hello_test~3.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ └── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── hello_test.output
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ └── test/
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── running_selected_tests/
│ │ │ │ │ ├── 1/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── report_level_detailed.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~running_selected_tests~1.output
│ │ │ │ │ ├── 2/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── report_level_detailed.output
│ │ │ │ │ │ ├── run_test_hello_inserts_text.output
│ │ │ │ │ │ ├── run_test_hello_star_inserts_text.output
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~running_selected_tests~2.output
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── report_level_detailed.output
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ └── test/
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── testing_with_exceptions/
│ │ │ │ │ ├── 1/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~testing_with_exceptions~1.output
│ │ │ │ │ ├── 2/
│ │ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ │ ├── sut/
│ │ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ │ ├── test/
│ │ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ │ └── test_hello~testing_with_exceptions~2.output
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ ├── test/
│ │ │ │ │ │ └── test_hello.cpp
│ │ │ │ │ └── test_hello~testing_with_exceptions.output
│ │ │ │ └── testing_with_fixtures/
│ │ │ │ ├── 1/
│ │ │ │ │ ├── Jamfile.v2
│ │ │ │ │ ├── sut/
│ │ │ │ │ │ ├── hello.cpp
│ │ │ │ │ │ └── hello.hpp
│ │ │ │ │ └── test/
│ │ │ │ │ └── test_hello.cpp
│ │ │ │ ├── Jamfile.v2
│ │ │ │ ├── sut/
│ │ │ │ │ ├── hello.cpp
│ │ │ │ │ └── hello.hpp
│ │ │ │ └── test/
│ │ │ │ └── test_hello.cpp
│ │ │ ├── tutorials.qbk
│ │ │ ├── user-compilation.qbk
│ │ │ └── user-guide.qbk
│ │ └── todo.txt
│ ├── ReadMe.txt
│ └── snapshots/
│ ├── 00/
│ │ ├── CMakeLists.txt
│ │ ├── LocalPaths.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 01/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 02/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 03/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 04/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 05/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 06/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 07/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 08/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 09/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 10/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 11/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 12/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 13/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 14/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 15/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 16/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 17/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 18/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 19/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 20/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 21/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 22/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 23/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 24/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ └── test_factors.cpp
│ ├── 25/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ └── factors.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 26/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 27/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 28/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 29/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 30/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 31/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 32/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 33/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 34/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 35/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 36/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 37/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ ├── 38/
│ │ ├── CMakeLists.txt
│ │ ├── factors/
│ │ │ ├── factors.cpp
│ │ │ ├── factors.h
│ │ │ └── mediator.h
│ │ └── test/
│ │ ├── test_factors.cpp
│ │ └── test_mediator.cpp
│ └── 39/
│ ├── CMakeLists.txt
│ ├── factors/
│ │ ├── factors.cpp
│ │ ├── factors.h
│ │ └── mediator.h
│ └── test/
│ ├── test_factors.cpp
│ └── test_mediator.cpp
└── unicode-cpp.pptx
SYMBOL INDEX (518 symbols across 146 files)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/another_global_fixture.cpp
type global3 (line 5) | struct global3
method global3 (line 7) | global3()
function BOOST_AUTO_TEST_CASE (line 19) | BOOST_AUTO_TEST_CASE(three)
type global4 (line 26) | struct global4
method global4 (line 28) | global4()
function BOOST_AUTO_TEST_CASE (line 40) | BOOST_AUTO_TEST_CASE(four)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertion_failures.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(example_fail)
function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(example_passpoint)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertions.cpp
type bit_flags (line 15) | enum bit_flags
function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(example_bitwise_equal)
function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(example_close)
function BOOST_AUTO_TEST_CASE (line 39) | BOOST_AUTO_TEST_CASE(example_close_fraction)
function BOOST_AUTO_TEST_CASE (line 47) | BOOST_AUTO_TEST_CASE(example_equal)
type symbol (line 65) | struct symbol
function BOOST_AUTO_TEST_CASE (line 84) | BOOST_AUTO_TEST_CASE(example_equal_custom_compare)
function generate_list (line 96) | static std::list<int> generate_list()
function BOOST_AUTO_TEST_CASE (line 106) | BOOST_AUTO_TEST_CASE(example_equal_collections)
function BOOST_AUTO_TEST_CASE (line 120) | BOOST_AUTO_TEST_CASE(example_equal_collections_pod)
class error_number_exception (line 133) | class error_number_exception
method error_number_exception (line 136) | error_number_exception(int num)
method error_number (line 140) | int error_number() const { return num_; }
function has_error_number_1 (line 146) | static bool has_error_number_1(error_number_exception const& ex)
function BOOST_AUTO_TEST_CASE (line 151) | BOOST_AUTO_TEST_CASE(example_exception)
function BOOST_AUTO_TEST_CASE (line 159) | BOOST_AUTO_TEST_CASE(example_ge)
function BOOST_AUTO_TEST_CASE (line 180) | BOOST_AUTO_TEST_CASE(example_gt)
function BOOST_AUTO_TEST_CASE (line 197) | BOOST_AUTO_TEST_CASE(example_le)
function BOOST_AUTO_TEST_CASE (line 218) | BOOST_AUTO_TEST_CASE(example_lt)
function global_int_is_positive (line 238) | static bool global_int_is_positive()
function global_int_equal (line 244) | static boost::test_tools::predicate_result global_int_equal(int expected)
function BOOST_AUTO_TEST_CASE (line 256) | BOOST_AUTO_TEST_CASE(example_message)
function BOOST_AUTO_TEST_CASE (line 267) | BOOST_AUTO_TEST_CASE(example_ne)
function BOOST_AUTO_TEST_CASE (line 284) | BOOST_AUTO_TEST_CASE(example_no_throw)
function custom_string_compare (line 291) | static bool custom_string_compare(char const* const expected, char const...
function BOOST_AUTO_TEST_CASE (line 296) | BOOST_AUTO_TEST_CASE(example_predicate)
function BOOST_AUTO_TEST_CASE (line 305) | BOOST_AUTO_TEST_CASE(example_small)
function always_throws (line 314) | static void always_throws()
function BOOST_AUTO_TEST_CASE (line 319) | BOOST_AUTO_TEST_CASE(example_throw)
type custom (line 326) | struct custom
function BOOST_AUTO_TEST_CASE (line 338) | BOOST_AUTO_TEST_CASE(example_test_dont_print_log_value)
function BOOST_AUTO_TEST_CASE (line 347) | BOOST_AUTO_TEST_CASE(example_checkpoint)
function BOOST_AUTO_TEST_CASE (line 357) | BOOST_AUTO_TEST_CASE(example_test_message)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_expected_failures.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(inserts_text_check_expected)
function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(inserts_text_check_exceeded)
function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(inserts_text_require_expected)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_template.cpp
function BOOST_AUTO_TEST_CASE_TEMPLATE (line 14) | BOOST_AUTO_TEST_CASE_TEMPLATE(not_is_signed_for_unsigned_types, T, unsig...
function BOOST_AUTO_TEST_CASE_TEMPLATE (line 24) | BOOST_AUTO_TEST_CASE_TEMPLATE(is_signed_for_signed_types, T, signed_types)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic/test_hello.cpp
type hello_world_fixture (line 7) | struct hello_world_fixture
function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(inserts_text)
function BOOST_AUTO_TEST_CASE (line 21) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/main.cpp
function init_function (line 5) | bool init_function()
function main (line 12) | int main(int argc, char* argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/test_hello.cpp
type hello_world_fixture (line 8) | struct hello_world_fixture
function BOOST_AUTO_TEST_CASE (line 15) | BOOST_AUTO_TEST_CASE(inserts_text)
function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/minimal/test_hello.cpp
function inserts_text (line 6) | static void inserts_text()
function stream_with_badbit_throws_runtime_error (line 15) | static void stream_with_badbit_throws_runtime_error()
function test_main (line 37) | int test_main(int /*argc*/, char* /*argv*/[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static/test_hello.cpp
type hello_world_fixture (line 6) | struct hello_world_fixture
function BOOST_AUTO_TEST_CASE (line 13) | BOOST_AUTO_TEST_CASE(inserts_text)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/main.cpp
function main (line 11) | int main(int argc, char *argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/test_hello.cpp
type hello_world_fixture (line 7) | struct hello_world_fixture
function BOOST_AUTO_TEST_CASE (line 14) | BOOST_AUTO_TEST_CASE(inserts_text)
function BOOST_AUTO_TEST_CASE (line 21) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/file_system.cpp
class fake_directory_scanner (line 7) | class fake_directory_scanner : public directory_scanner
method fake_directory_scanner (line 10) | fake_directory_scanner()
method begin (line 19) | virtual void begin(std::string const &directory)
method has_next (line 27) | virtual bool has_next() const
method next (line 35) | virtual std::string next() const
type text_files_fixture (line 53) | struct text_files_fixture
method expect_enumerate_non_text_file (line 55) | void expect_enumerate_non_text_file()
method expect_enumerate_text_file (line 60) | void expect_enumerate_text_file(std::string const& file_name = ARBITRA...
function BOOST_AUTO_TEST_CASE (line 73) | BOOST_AUTO_TEST_CASE(returns_empty_for_empty_directory)
function BOOST_AUTO_TEST_CASE (line 80) | BOOST_AUTO_TEST_CASE(returns_empty_for_no_text_files)
function BOOST_AUTO_TEST_CASE (line 89) | BOOST_AUTO_TEST_CASE(returns_file_for_text_file)
function BOOST_AUTO_TEST_CASE (line 98) | BOOST_AUTO_TEST_CASE(returns_only_text_file_for_mixed_files)
function BOOST_AUTO_TEST_CASE (line 108) | BOOST_AUTO_TEST_CASE(returns_all_text_files)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/global_fixture.cpp
type global_fixture (line 7) | struct global_fixture
method global_fixture (line 9) | global_fixture()
type suite_fixture (line 22) | struct suite_fixture
method suite_fixture (line 24) | suite_fixture()
function BOOST_AUTO_TEST_CASE (line 36) | BOOST_AUTO_TEST_CASE(one)
type global2 (line 43) | struct global2
method global2 (line 45) | global2()
function BOOST_AUTO_TEST_CASE (line 57) | BOOST_AUTO_TEST_CASE(two)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/manual_registration.cpp
function inserts_text (line 8) | static void inserts_text()
function register_function (line 17) | static void register_function(test_suite& suite)
class hello_fixture (line 24) | class hello_fixture
method stream_with_badbit_throws_runtime_error (line 27) | void stream_with_badbit_throws_runtime_error()
function register_method_static_instance (line 41) | static void register_method_static_instance(test_suite& suite)
function stream_with_badbit_throws_runtime_error (line 50) | static void stream_with_badbit_throws_runtime_error()
function register_method_function_instance (line 55) | static void register_method_function_instance(test_suite& suite)
function test_suite (line 62) | static test_suite*
function main (line 74) | int main(int argc, char* argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_class_test_case.cpp
class hello_world_tester (line 13) | class hello_world_tester
method hello_world_tester (line 16) | hello_world_tester()
method inserts_text (line 24) | void inserts_text(std::string const& text)
method does_not_insert_text (line 33) | void does_not_insert_text(std::string const& text)
function test_suite (line 48) | static test_suite*
function main (line 61) | int main(int argc, char* argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_test_case.cpp
function does_not_insert_text (line 10) | static void does_not_insert_text(std::string const& text)
function test_suite (line 21) | static test_suite*
function main (line 33) | int main(int argc, char* argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case.cpp
function inserts_text (line 9) | static void inserts_text()
function test_suite (line 18) | static test_suite*
function main (line 25) | int main(int argc, char* argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case_template.cpp
function BOOST_TEST_CASE_TEMPLATE_FUNCTION (line 11) | BOOST_TEST_CASE_TEMPLATE_FUNCTION(not_is_signed_for_unsigned_types, T)
function BOOST_TEST_CASE_TEMPLATE_FUNCTION (line 22) | BOOST_TEST_CASE_TEMPLATE_FUNCTION(is_signed_for_signed_types, T)
function test_suite (line 29) | static test_suite*
function main (line 38) | int main(int argc, char* argv[])
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/turtle_mock.cpp
function MOCK_BASE_CLASS (line 9) | MOCK_BASE_CLASS(mock_directory_scanner, directory_scanner)
type text_files_fixture (line 23) | struct text_files_fixture
method text_files_fixture (line 25) | text_files_fixture()
method expect_enumerate_non_text_file (line 30) | void expect_enumerate_non_text_file()
method expect_enumerate_text_file (line 36) | void expect_enumerate_text_file(std::string const& file_name = ARBITRA...
method expect_enumerate_end (line 43) | void expect_enumerate_end()
function BOOST_AUTO_TEST_CASE (line 55) | BOOST_AUTO_TEST_CASE(returns_empty_for_empty_directory)
function BOOST_AUTO_TEST_CASE (line 64) | BOOST_AUTO_TEST_CASE(returns_empty_for_no_text_files)
function BOOST_AUTO_TEST_CASE (line 74) | BOOST_AUTO_TEST_CASE(returns_file_for_text_file)
function BOOST_AUTO_TEST_CASE (line 84) | BOOST_AUTO_TEST_CASE(returns_only_text_file_for_mixed_files)
function BOOST_AUTO_TEST_CASE (line 95) | BOOST_AUTO_TEST_CASE(returns_all_text_files)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/hello/hello.cpp
function hello_world (line 3) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/directory_scanner.hpp
class directory_scanner (line 7) | class directory_scanner
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/filesystem_directory_scanner.hpp
class filesystem_directory_scanner (line 8) | class filesystem_directory_scanner : public directory_scanner
method filesystem_directory_scanner (line 11) | filesystem_directory_scanner() {}
method begin (line 14) | virtual void begin(std::string const &directory)
method has_next (line 19) | virtual bool has_next() const
method next (line 24) | virtual std::string next() const
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/scanner.cpp
function text_files (line 5) | extern std::vector<std::string>
function text_files (line 25) | extern std::vector<std::string>
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/scanner/scanner.hpp
class directory_scanner (line 12) | class directory_scanner
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/1/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/1/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/2/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/2/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/3/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/3/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/hello_test/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/1/sut/hello.cpp
function hello_world (line 3) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/1/test/test_hello.cpp
type hello_world_fixture (line 8) | struct hello_world_fixture
function HELLO_WORLD_TEST_CASE (line 16) | HELLO_WORLD_TEST_CASE(inserts_text)
function HELLO_WORLD_TEST_CASE (line 23) | HELLO_WORLD_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/2/sut/hello.cpp
function hello_world (line 3) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/2/test/test_hello.cpp
type hello_world_fixture (line 8) | struct hello_world_fixture
function HELLO_WORLD_TEST_CASE (line 18) | HELLO_WORLD_TEST_CASE(inserts_text)
function HELLO_WORLD_TEST_CASE (line 25) | HELLO_WORLD_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/sut/hello.cpp
function hello_world (line 3) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/running_selected_tests/test/test_hello.cpp
type hello_world_fixture (line 8) | struct hello_world_fixture
function BOOST_AUTO_TEST_CASE (line 15) | BOOST_AUTO_TEST_CASE(inserts_text)
function BOOST_AUTO_TEST_CASE (line 22) | BOOST_AUTO_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/1/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/1/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
function BOOST_AUTO_TEST_CASE (line 17) | BOOST_AUTO_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/2/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/2/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
function BOOST_AUTO_TEST_CASE (line 17) | BOOST_AUTO_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/sut/hello.cpp
function hello_world (line 4) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_exceptions/test/test_hello.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(hello_world_inserts_text)
function BOOST_AUTO_TEST_CASE (line 17) | BOOST_AUTO_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/1/sut/hello.cpp
function hello_world (line 3) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/1/test/test_hello.cpp
type hello_world_fixture (line 8) | struct hello_world_fixture
method hello_world_fixture (line 10) | hello_world_fixture()
function BOOST_FIXTURE_TEST_CASE (line 19) | BOOST_FIXTURE_TEST_CASE(hello_world_inserts_text, hello_world_fixture)
function BOOST_FIXTURE_TEST_CASE (line 26) | BOOST_FIXTURE_TEST_CASE(hello_world_stream_with_badbit_throws_runtime_er...
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/sut/hello.cpp
function hello_world (line 3) | void hello_world(std::ostream& stream)
FILE: files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/tutorials/testing_with_fixtures/test/test_hello.cpp
type hello_world_fixture (line 8) | struct hello_world_fixture
function HELLO_WORLD_TEST_CASE (line 16) | HELLO_WORLD_TEST_CASE(inserts_text)
function HELLO_WORLD_TEST_CASE (line 23) | HELLO_WORLD_TEST_CASE(stream_with_badbit_throws_runtime_error)
FILE: files/test_driven/snapshots/03/test/test_factors.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
FILE: files/test_driven/snapshots/04/test/test_factors.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
FILE: files/test_driven/snapshots/05/factors/factors.cpp
function prime_factors (line 4) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/05/test/test_factors.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
FILE: files/test_driven/snapshots/06/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/06/test/test_factors.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
FILE: files/test_driven/snapshots/07/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/07/test/test_factors.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(two_yields_2)
FILE: files/test_driven/snapshots/08/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/08/test/test_factors.cpp
function BOOST_AUTO_TEST_CASE (line 7) | BOOST_AUTO_TEST_CASE(one_yields_empty)
function BOOST_AUTO_TEST_CASE (line 18) | BOOST_AUTO_TEST_CASE(two_yields_2)
FILE: files/test_driven/snapshots/09/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/09/test/test_factors.cpp
type fixture (line 7) | struct fixture {
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(one_yields_empty)
function BOOST_AUTO_TEST_CASE (line 23) | BOOST_AUTO_TEST_CASE(two_yields_2)
FILE: files/test_driven/snapshots/10/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/10/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(one_yields_empty)
function BOOST_AUTO_TEST_CASE (line 29) | BOOST_AUTO_TEST_CASE(two_yields_2)
FILE: files/test_driven/snapshots/11/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/11/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_AUTO_TEST_CASE (line 27) | BOOST_AUTO_TEST_CASE(two_yields_2)
FILE: files/test_driven/snapshots/12/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/12/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
FILE: files/test_driven/snapshots/13/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/13/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
FILE: files/test_driven/snapshots/14/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/14/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
FILE: files/test_driven/snapshots/15/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/15/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
FILE: files/test_driven/snapshots/16/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/16/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
FILE: files/test_driven/snapshots/17/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/17/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
FILE: files/test_driven/snapshots/18/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/18/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 65) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
FILE: files/test_driven/snapshots/19/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/19/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
method verify_expected_factors (line 13) | void verify_expected_factors() {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 27) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 36) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 45) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 65) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
FILE: files/test_driven/snapshots/20/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/20/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
FILE: files/test_driven/snapshots/21/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/21/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/22/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/22/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/23/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/23/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/24/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/24/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/25/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/25/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/26/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/26/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/27/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/27/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/27/test/test_mediator.cpp
function BOOST_AUTO_TEST_CASE (line 5) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/28/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/28/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 10) | class prime_factors_mediator
FILE: files/test_driven/snapshots/28/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/28/test/test_mediator.cpp
function BOOST_AUTO_TEST_CASE (line 5) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/29/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/29/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 11) | class prime_factors_mediator
FILE: files/test_driven/snapshots/29/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/29/test/test_mediator.cpp
function BOOST_AUTO_TEST_CASE (line 5) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/30/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/30/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 11) | class prime_factors_mediator
FILE: files/test_driven/snapshots/30/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/30/test/test_mediator.cpp
function BOOST_AUTO_TEST_CASE (line 6) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/31/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/31/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 11) | class prime_factors_mediator
FILE: files/test_driven/snapshots/31/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/31/test/test_mediator.cpp
function BOOST_AUTO_TEST_CASE (line 6) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/32/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/32/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 11) | class prime_factors_mediator
FILE: files/test_driven/snapshots/32/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/32/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 11) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/33/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/33/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 11) | class prime_factors_mediator
FILE: files/test_driven/snapshots/33/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/33/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 11) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
FILE: files/test_driven/snapshots/34/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/34/factors/mediator.h
function class (line 4) | class prime_factors_dialog
function class (line 11) | class prime_factors_mediator
FILE: files/test_driven/snapshots/34/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/34/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
FILE: files/test_driven/snapshots/35/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/35/factors/mediator.h
function class (line 6) | class prime_factors_dialog
function class (line 14) | class prime_factors_mediator
FILE: files/test_driven/snapshots/35/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/35/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
FILE: files/test_driven/snapshots/36/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/36/factors/mediator.h
function class (line 6) | class prime_factors_dialog
function class (line 14) | class prime_factors_mediator
FILE: files/test_driven/snapshots/36/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/36/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)
FILE: files/test_driven/snapshots/37/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/37/factors/mediator.h
function class (line 6) | class prime_factors_dialog
function class (line 14) | class prime_factors_mediator
FILE: files/test_driven/snapshots/37/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/37/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)
FILE: files/test_driven/snapshots/38/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/38/factors/mediator.h
function class (line 6) | class prime_factors_dialog
function class (line 14) | class prime_factors_mediator
FILE: files/test_driven/snapshots/38/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/38/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)
function BOOST_AUTO_TEST_CASE (line 41) | BOOST_AUTO_TEST_CASE(not_a_number_disables_button)
FILE: files/test_driven/snapshots/39/factors/factors.cpp
function prime_factors (line 3) | extern std::vector<int> prime_factors(int n)
FILE: files/test_driven/snapshots/39/factors/mediator.h
function class (line 7) | class prime_factors_dialog
function class (line 15) | class prime_factors_mediator
FILE: files/test_driven/snapshots/39/test/test_factors.cpp
type fixture (line 7) | struct fixture {
method prime_factors (line 10) | void prime_factors(int n) {
function BOOST_FIXTURE_TEST_CASE (line 20) | BOOST_FIXTURE_TEST_CASE(one_yields_empty, fixture)
function BOOST_FIXTURE_TEST_CASE (line 25) | BOOST_FIXTURE_TEST_CASE(two_yields_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 32) | BOOST_FIXTURE_TEST_CASE(three_yields_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 39) | BOOST_FIXTURE_TEST_CASE(four_yields_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 47) | BOOST_FIXTURE_TEST_CASE(six_yields_2_3, fixture)
function BOOST_FIXTURE_TEST_CASE (line 55) | BOOST_FIXTURE_TEST_CASE(eight_yields_2_2_2, fixture)
function BOOST_FIXTURE_TEST_CASE (line 64) | BOOST_FIXTURE_TEST_CASE(nine_yields_3_3, fixture)
FILE: files/test_driven/snapshots/39/test/test_mediator.cpp
function MOCK_BASE_CLASS (line 6) | MOCK_BASE_CLASS(mock_dialog, prime_factors_dialog)
function BOOST_AUTO_TEST_CASE (line 12) | BOOST_AUTO_TEST_CASE(ok_button_initially_disabled)
function BOOST_AUTO_TEST_CASE (line 20) | BOOST_AUTO_TEST_CASE(ok_button_enabled_with_valid_integer)
function BOOST_AUTO_TEST_CASE (line 31) | BOOST_AUTO_TEST_CASE(empty_text_disables_button)
function BOOST_AUTO_TEST_CASE (line 41) | BOOST_AUTO_TEST_CASE(not_a_number_disables_button)
Condensed preview — 476 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,678K chars).
[
{
"path": ".gitignore",
"chars": 22,
"preview": "unlinked/\n*~\n.DS_Store"
},
{
"path": "README.md",
"chars": 9326,
"preview": "# C++Now 2014 Presentations\n\n* [Library in a Week Repo](https://github.com/JeffGarland/liaw2014.git)\n\nBelow are links to"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/doc/src/boostbook.css",
"chars": 14127,
"preview": "/*=============================================================================\n Copyright (c) 2004 Joel de Guzman\n "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/index.html",
"chars": 148,
"preview": "<html>\n<head>\n<title>Boost.Test</title>\n</head>\n<body>\n<p>Browse the <a\nhref=\"libs/test/doc/html/index.html\">documentati"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/Jamfile.v2",
"chars": 623,
"preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/index.html",
"chars": 17093,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Chapter 1. Boost.T"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/acceptance_tests.html",
"chars": 4815,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Acceptance Tests and Unit Te"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/_main_.html",
"chars": 4524,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>main</title>\n<link rel=\"styl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/header_only.html",
"chars": 8358,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Header Only</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/minimal_header.html",
"chars": 8605,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Minimal Header</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/shared_library.html",
"chars": 13319,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Shared Library</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation/static_library.html",
"chars": 12337,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Static Library</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/compilation.html",
"chars": 5648,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Compilation and Usage Varian"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/exception_safety_test.html",
"chars": 3123,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Exception Safety Tests</titl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/manually_registering_test_cases_and_suites.html",
"chars": 14002,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Manually Registering Test Ca"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/mocking_collaborators.html",
"chars": 23315,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Mocking Collaborators</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/test_case_design.html",
"chars": 26020,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Case Design and Mainten"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing__main_.html",
"chars": 6769,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing main</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_file_i_o.html",
"chars": 32287,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing File I/O</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_file_io.html",
"chars": 35234,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing File I/O</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide/testing_protected_or_private_members.html",
"chars": 7951,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing Protected or Private"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/guide.html",
"chars": 4460,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>User's Guide</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/how_to_read_this_documentation.html",
"chars": 3975,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>How To Read This Documentati"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/motivation.html",
"chars": 3417,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Motivation</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___bitwise_equal_.html",
"chars": 5185,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_BITWISE_EQUAL</t"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___close_.html",
"chars": 4946,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___close_fraction_.html",
"chars": 4974,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE_FRACTION</"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___equal_collections_.html",
"chars": 11357,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL_COLLECTION"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___exception_.html",
"chars": 6547,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EXCEPTION</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___ge_.html",
"chars": 8480,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GE</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___gt_.html",
"chars": 7678,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GT</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___le_.html",
"chars": 8517,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LE</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___lt_.html",
"chars": 7683,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LT</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___message_.html",
"chars": 7678,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_MESSAGE</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___ne_.html",
"chars": 7679,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NE</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___no_throw_.html",
"chars": 3984,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NO_THROW</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___predicate_.html",
"chars": 6435,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_PREDICATE</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost____level___small_.html",
"chars": 4584,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_SMALL</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost_test_dont_print_log_value_.html",
"chars": 6385,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_DONT_PRINT_LOG_VA"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost_test_error_.html",
"chars": 3301,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_ERROR</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/_boost_test_is_defined_.html",
"chars": 3322,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_IS_DEFINED</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_fail.html",
"chars": 5052,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_FAIL</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_equal.html",
"chars": 11957,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_exception.html",
"chars": 7199,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EXCEPTION</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_message.html",
"chars": 7969,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_MESSAGE</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_no_throw.html",
"chars": 4269,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NO_THROW</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_level_throw.html",
"chars": 5021,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_THROW</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/boost_test_dont_print_log_value.html",
"chars": 6373,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_DONT_PRINT_LOG_VA"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion/levels.html",
"chars": 5448,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Assertion Levels</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/assertion.html",
"chars": 8627,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Assertions</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/configuration_macros.html",
"chars": 6298,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Configuration Macros</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/headers.html",
"chars": 28932,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Header Files</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___break_exec_path_.html",
"chars": 4518,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--break_exec_path</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___build_info_.html",
"chars": 4435,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--build_info</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___catch_system_errors_.html",
"chars": 4338,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--catch_system_errors</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___color_output_.html",
"chars": 4479,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--color_output</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___detect_fp_exceptions_.html",
"chars": 4489,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--detect_fp_exceptions</titl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___detect_memory_leaks_.html",
"chars": 5139,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--detect_memory_leaks</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___log_level_.html",
"chars": 6994,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_level</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___log_sink_.html",
"chars": 4794,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_sink</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___output_format_.html",
"chars": 4672,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--output_format</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___random_.html",
"chars": 4771,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--random</title>\n<link rel=\""
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___report_level_.html",
"chars": 4897,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_level</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___report_sink_.html",
"chars": 4801,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_sink</title>\n<link "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___result_code_.html",
"chars": 5632,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--result_code</title>\n<link "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___save_pattern_.html",
"chars": 4687,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--save_pattern</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___show_progress_.html",
"chars": 4434,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--show_progress</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/___use_alt_stack_.html",
"chars": 4312,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--use_alt_stack</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/auto_start_dbg.html",
"chars": 4463,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--auto_start_dbg</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/list_content.html",
"chars": 4405,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--list_content</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/log_format.html",
"chars": 4380,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_format</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/log_level.html",
"chars": 6967,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_level</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/log_sink.html",
"chars": 4755,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--log_sink</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/output_format.html",
"chars": 4651,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--output_format</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/report_format.html",
"chars": 4320,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_format</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/report_level.html",
"chars": 5010,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_level</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/report_sink.html",
"chars": 4792,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--report_sink</title>\n<link "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument/run_test.html",
"chars": 7665,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>--run_test</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/argument.html",
"chars": 11012,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Command Line Arguments</titl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/_boost_test_checkpoint_.html",
"chars": 5020,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CHECKPOINT</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/_boost_test_passpoint_.html",
"chars": 3681,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_PASSPOINT</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/boost_test_checkpoint.html",
"chars": 5009,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CHECKPOINT</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/boost_test_message.html",
"chars": 4894,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_MESSAGE</title>\n<"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/log.html",
"chars": 4130,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Log</title>\n<link rel=\""
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/report.html",
"chars": 4255,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Report</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/test_log.html",
"chars": 2919,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Log</title>\n<link rel=\""
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output/test_report.html",
"chars": 2974,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Report</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner/output.html",
"chars": 3524,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Output</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/runner.html",
"chars": 6072,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Runner</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_auto_test_case.html",
"chars": 5768,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_CASE</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_auto_test_case_expected_failures.html",
"chars": 9038,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_CASE_EXPECTE"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_auto_test_case_template.html",
"chars": 7240,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_CASE_TEMPLAT"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_fixture_test_case.html",
"chars": 5622,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_FIXTURE_TEST_CASE</tit"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_global_fixture.html",
"chars": 6546,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_GLOBAL_FIXTURE</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_param_class_test_case.html",
"chars": 15359,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_PARAM_CLASS_TEST_CASE<"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_param_test_case.html",
"chars": 9907,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_PARAM_TEST_CASE</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_test_case.html",
"chars": 8342,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CASE</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_test_case_template.html",
"chars": 7185,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CASE_TEMPLATE</ti"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case/boost_test_case_template_function.html",
"chars": 6022,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_CASE_TEMPLATE_FUN"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_case.html",
"chars": 10673,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Cases</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___bitwise_equal_.html",
"chars": 4915,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_BITWISE_EQUAL</t"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___close_.html",
"chars": 4790,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___close_fraction_.html",
"chars": 4782,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_CLOSE_FRACTION</"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___equal_collections_.html",
"chars": 7873,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL_COLLECTION"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___exception_.html",
"chars": 6629,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EXCEPTION</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___ge_.html",
"chars": 8011,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GE</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___gt_.html",
"chars": 7148,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_GT</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___le_.html",
"chars": 7983,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LE</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___lt_.html",
"chars": 7174,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_LT</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___message_.html",
"chars": 7654,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_MESSAGE</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___ne_.html",
"chars": 5017,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NE</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___no_throw_.html",
"chars": 3557,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_NO_THROW</title>"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___predicate_.html",
"chars": 3704,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_PREDICATE</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost____level___small_.html",
"chars": 3191,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_SMALL</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost_test_dont_print_log_value_.html",
"chars": 3615,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_DONT_PRINT_LOG_VA"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost_test_error_.html",
"chars": 3370,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_ERROR</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/_boost_test_is_defined_.html",
"chars": 3389,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_IS_DEFINED</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/boost_fail.html",
"chars": 3399,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_FAIL</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/boost_level_equal.html",
"chars": 11363,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_EQUAL</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/boost_level_throw.html",
"chars": 3619,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_level_THROW</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion/levels.html",
"chars": 5669,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Assertion Levels</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/assertion.html",
"chars": 8746,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Assertions</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/headers.html",
"chars": 28933,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Header Files</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/init_unit_test_func.html",
"chars": 4471,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>init_unit_test_func</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/master_test_suite_t.html",
"chars": 5646,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>master_test_suite_t</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/init_unit_test_func.html",
"chars": 4571,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>init_unit_test_func</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/master_test_suite_t.html",
"chars": 5750,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>master_test_suite_t</title>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_case.html",
"chars": 5132,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_case</title>\n<link rel="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_observer.html",
"chars": 7054,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_observer</title>\n<link "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_suite.html",
"chars": 6593,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_suite</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/test_unit.html",
"chars": 8542,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_unit</title>\n<link rel="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/unit_test_log_formatter.html",
"chars": 11947,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_formatter</tit"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/unit_test_log_t.html",
"chars": 11257,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_t</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result/unit_test_main.html",
"chars": 4704,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_main</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/predicate_result.html",
"chars": 9062,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>predicate_result</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/runner/argument.html",
"chars": 58362,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Command Line Arguments</titl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/runner/output.html",
"chars": 7105,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Output</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/runner.html",
"chars": 3276,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Runner</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_case.html",
"chars": 5034,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_case</title>\n<link rel="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_observer.html",
"chars": 6956,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_observer</title>\n<link "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_suite.html",
"chars": 6497,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_suite</title>\n<link rel"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/test_unit.html",
"chars": 8433,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>test_unit</title>\n<link rel="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/unit_test_log_formatter.html",
"chars": 11851,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_formatter</tit"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/unit_test_log_t.html",
"chars": 11159,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_log_t</title>\n<lin"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes/unit_test_main.html",
"chars": 4593,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>unit_test_main</title>\n<link"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_classes.html",
"chars": 6199,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Classes</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_auto_test_suite.html",
"chars": 5657,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_SUITE</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_auto_test_suite_end.html",
"chars": 5480,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_AUTO_TEST_SUITE_END</t"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_fixture_test_suite.html",
"chars": 5402,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_FIXTURE_TEST_SUITE</ti"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_test_module.html",
"chars": 4953,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_MODULE</title>\n<l"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite/boost_test_suite.html",
"chars": 6457,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>BOOST_TEST_SUITE</title>\n<li"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference/test_suite.html",
"chars": 4112,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Test Suites</title>\n<link re"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/reference.html",
"chars": 14691,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Reference</title>\n<link rel="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/hello_test.html",
"chars": 17866,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Hello, Test!</title>\n<link r"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/running_selected_tests.html",
"chars": 18270,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Running Selected Tests</titl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/testing_with_exceptions.html",
"chars": 13070,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing with Exceptions</tit"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials/testing_with_fixtures.html",
"chars": 13959,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Testing with Fixtures</title"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test/tutorials.html",
"chars": 4165,
"preview": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=US-ASCII\">\n<title>Tutorials</title>\n<link rel="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/html/test_HTML.manifest",
"chars": 4499,
"preview": "index.html\ntest/motivation.html\ntest/how_to_read_this_documentation.html\ntest/tutorials.html\ntest/tutorials/hello_test.h"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/Jamfile.v2",
"chars": 363,
"preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/UTF.log.xsd",
"chars": 5516,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n\t<xs:attributeGroup name="
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/UTF.report.xsd",
"chars": 3057,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- edited with XMLSpy v2007 (http://www.altova.com) by rogeeff (boost) -->\n<xs:"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/Jamfile.v2",
"chars": 2016,
"preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/another_global_fixture.cpp",
"chars": 652,
"preview": "#include <boost/test/unit_test.hpp>\r\n\r\n#include <iostream>\r\n\r\nstruct global3\r\n{\r\n global3()\r\n {\r\n std::cout"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertion_failures.cpp",
"chars": 324,
"preview": "#define BOOST_TEST_MAIN\n#include <boost/test/unit_test.hpp>\n\n#include <stdexcept>\n\n//[example_fail\nBOOST_AUTO_TEST_CASE("
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/assertions.cpp",
"chars": 7500,
"preview": "//[example_test_module\n#define BOOST_TEST_MAIN\n#define BOOST_TEST_MODULE \"Assertions\"\n#include <boost/test/unit_test.hpp"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_expected_failures.cpp",
"chars": 992,
"preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n#include \"hello.hpp\"\r\n#include <sstream>\r\n\r\nBOOST_AUTO_TES"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/auto_test_case_template.cpp",
"chars": 716,
"preview": "#define BOOST_TEST_MODULE auto_test_case_template\r\n#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n\r\n//[au"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/Jamfile.v2",
"chars": 1448,
"preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic/main.cpp",
"chars": 88,
"preview": "#define BOOST_TEST_DYN_LINK\n#define BOOST_TEST_MAIN\n#include <boost/test/unit_test.hpp>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic/test_hello.cpp",
"chars": 568,
"preview": "#define BOOST_TEST_DYN_LINK\n#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/main.cpp",
"chars": 357,
"preview": "#define BOOST_TEST_DYN_LINK\n#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n\nbool init_function()\n{\n /"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/dynamic_main/test_hello.cpp",
"chars": 595,
"preview": "#define BOOST_TEST_DYN_LINK\n#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/minimal/test_hello.cpp",
"chars": 734,
"preview": "#include <boost/test/minimal.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\nstatic void inserts_text()\n{\n "
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static/main.cpp",
"chars": 60,
"preview": "#define BOOST_TEST_MAIN\n#include <boost/test/unit_test.hpp>\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static/test_hello.cpp",
"chars": 540,
"preview": "#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\nstruct hello_world_fixture\n{"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/main.cpp",
"chars": 354,
"preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n\nboost::unit_test::test_suite *init_function(int argc, ch"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/compilation/static_main/test_hello.cpp",
"chars": 567,
"preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/unit_test.hpp>\n#include \"hello.hpp\"\n#include <ios>\n#include <sstream>\n\ns"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/file_system.cpp",
"chars": 3558,
"preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n#include \"directory_scanner.hpp\"\r\n#include \"scanner.hpp\"\r\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/global_fixture.cpp",
"chars": 987,
"preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n\r\n#include <iostream>\r\n\r\n//[global_fixture\r\nstruct global_"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/manual_registration.cpp",
"chars": 1683,
"preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include \"hello.hpp\"\n\nusing namespace boost::uni"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_class_test_case.cpp",
"chars": 1567,
"preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include <boost/test/parameterized_test.hpp>\n#in"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/param_test_case.cpp",
"chars": 795,
"preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include <boost/test/parameterized_test.hpp>\n#in"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case.cpp",
"chars": 527,
"preview": "//[test_case\n#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include \"hello.hpp\"\n#include <sstr"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/test_case_template.cpp",
"chars": 1043,
"preview": "#define BOOST_TEST_NO_MAIN\n#include <boost/test/included/unit_test.hpp>\n#include <sstream>\n\nusing namespace boost::unit_"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/examples/turtle_mock.cpp",
"chars": 3255,
"preview": "#define BOOST_TEST_MAIN\r\n#include <boost/test/unit_test.hpp>\r\n#include \"scanner.hpp\"\r\n\r\n//[mock_directory_scanner\r\n#incl"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-assertion.qbk",
"chars": 10416,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-assertion.qbk.bak",
"chars": 10416,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-compilation.qbk",
"chars": 1919,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner-argument.qbk",
"chars": 11447,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner-argument.qbk.bak",
"chars": 11447,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner-output.qbk",
"chars": 3030,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-runner.qbk",
"chars": 477,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-case.qbk",
"chars": 12583,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-case.qbk.bak",
"chars": 12584,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-classes.qbk",
"chars": 5110,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/ref-test-suite.qbk",
"chars": 4412,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/reference.qbk",
"chars": 677,
"preview": "[/==============================================================================\n Copyright (C) 2013 Richard Thomson\n"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/Jamfile.v2",
"chars": 327,
"preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
},
{
"path": "files/test_driven/Boost.Test Documentation Rewrite/libs/test/doc/src/system_under_test/hello/Jamfile.v2",
"chars": 249,
"preview": "# Jamfile.v2\n#\n# Copyright (c) 2013\n# Richard Thomson\n#\n# Distributed Under the Boost Software License, Version 1.0. (Se"
}
]
// ... and 276 more files (download for full content)
About this extraction
This page contains the full source code of the boostcon/cppnow_presentations_2014 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 476 files (46.9 MB), approximately 414.1k tokens, and a symbol index with 518 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.