1 //////////////////////////////////////////////////////////////////////////////
2 // Copyright 2005-2006 Andreas Huber Doenni
3 // Distributed under the Boost Software License, Version 1.0. (See accompany-
4 // ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 //////////////////////////////////////////////////////////////////////////////
6
7
8
9 #define BOOST_ENABLE_ASSERT_HANDLER
10
11 static int s_failed_assertions = 0;
12
13 namespace boost
14 {
15
assertion_failed(char const *,char const *,char const *,long)16 void assertion_failed(
17 char const *, char const *, char const *, long )
18 {
19 ++s_failed_assertions;
20 }
21
22 } // namespace boost
23
24
25 #include <boost/statechart/result.hpp>
26 #include <boost/test/test_tools.hpp>
27
28
29 namespace sc = boost::statechart;
30
31
make_unconsumed_result()32 void make_unconsumed_result()
33 {
34 // We cannot test sc::result in its natural environment here because a
35 // failing assert triggers a stack unwind, what will lead to another
36 // failing assert...
37
38 // Creates a temp sc::result value which is destroyed immediately
39 sc::detail::result_utility::make_result( sc::detail::do_discard_event );
40 }
41
test_main(int,char * [])42 int test_main( int, char* [] )
43 {
44 make_unconsumed_result();
45
46 #ifdef NDEBUG
47 BOOST_TEST( s_failed_assertions == 0 );
48 #else
49 BOOST_TEST( s_failed_assertions == 1 );
50 #endif
51
52 return 0;
53 }
54