Chris@16
|
1 // (C) Copyright Gennadiy Rozental 2001-2008.
|
Chris@16
|
2 // (C) Copyright Beman Dawes 1995-2001.
|
Chris@16
|
3 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
4 // (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
5 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
6
|
Chris@16
|
7 // See http://www.boost.org/libs/test for the library home page.
|
Chris@16
|
8 //
|
Chris@16
|
9 // File : $RCSfile$
|
Chris@16
|
10 //
|
Chris@101
|
11 // Version : $$Revision$
|
Chris@16
|
12 //
|
Chris@16
|
13 // Description : implements main function for Test Execution Monitor.
|
Chris@16
|
14 // ***************************************************************************
|
Chris@16
|
15
|
Chris@16
|
16 #ifndef BOOST_TEST_TEST_MAIN_IPP_012205GER
|
Chris@16
|
17 #define BOOST_TEST_TEST_MAIN_IPP_012205GER
|
Chris@16
|
18
|
Chris@16
|
19 // Boost.Test
|
Chris@16
|
20 #include <boost/test/framework.hpp>
|
Chris@16
|
21 #include <boost/test/test_tools.hpp>
|
Chris@16
|
22 #include <boost/test/unit_test_suite.hpp>
|
Chris@16
|
23
|
Chris@16
|
24 // Boost
|
Chris@16
|
25 #include <boost/cstdlib.hpp>
|
Chris@16
|
26
|
Chris@16
|
27 #include <boost/test/detail/suppress_warnings.hpp>
|
Chris@16
|
28
|
Chris@16
|
29 //____________________________________________________________________________//
|
Chris@16
|
30
|
Chris@16
|
31 extern int test_main( int argc, char* argv[] ); // prototype for user's test_main()
|
Chris@16
|
32
|
Chris@16
|
33 struct test_main_caller {
|
Chris@16
|
34 test_main_caller( int argc, char** argv ) : m_argc( argc ), m_argv( argv ) {}
|
Chris@16
|
35
|
Chris@16
|
36 void operator()() {
|
Chris@16
|
37 int test_main_result = test_main( m_argc, m_argv );
|
Chris@16
|
38
|
Chris@16
|
39 // translate a test_main non-success return into a test error
|
Chris@16
|
40 BOOST_CHECK( test_main_result == 0 || test_main_result == boost::exit_success );
|
Chris@16
|
41 }
|
Chris@16
|
42
|
Chris@16
|
43 private:
|
Chris@16
|
44 // Data members
|
Chris@16
|
45 int m_argc;
|
Chris@16
|
46 char** m_argv;
|
Chris@16
|
47 };
|
Chris@16
|
48
|
Chris@16
|
49 // ************************************************************************** //
|
Chris@16
|
50 // ************** test main ************** //
|
Chris@16
|
51 // ************************************************************************** //
|
Chris@16
|
52
|
Chris@16
|
53 ::boost::unit_test::test_suite*
|
Chris@16
|
54 init_unit_test_suite( int argc, char* argv[] ) {
|
Chris@16
|
55 using namespace ::boost::unit_test;
|
Chris@16
|
56
|
Chris@16
|
57 framework::master_test_suite().p_name.value = "Test Program";
|
Chris@16
|
58
|
Chris@16
|
59 framework::master_test_suite().add( BOOST_TEST_CASE( test_main_caller( argc, argv ) ) );
|
Chris@16
|
60
|
Chris@16
|
61 return 0;
|
Chris@16
|
62 }
|
Chris@16
|
63
|
Chris@16
|
64 //____________________________________________________________________________//
|
Chris@16
|
65
|
Chris@16
|
66 #include <boost/test/detail/enable_warnings.hpp>
|
Chris@16
|
67
|
Chris@16
|
68 #endif // BOOST_TEST_TEST_MAIN_IPP_012205GER
|