| ############################################################################## |
| # Copyright 2005-2009 Andreas Huber Doenni |
| # 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) |
| ############################################################################## |
| |
| project libs/statechart/test ; |
| |
| local test_monitor = |
| ../../../libs/test/build//boost_test_exec_monitor/<link>static ; |
| # Some platforms have either problems with the automatic detection of the |
| # threading mode (e.g. vc-7_1 & gcc >= 3.4.0) or don't support single- |
| # threaded mode (e.g. vc-8_0). We therefore manually turn MT off here |
| local st-requirements = <define>BOOST_DISABLE_THREADS ; |
| local dll = <define>BOOST_STATECHART_TEST_DYNAMIC_LINK ; |
| local dll-export = $(dll) <define>BOOST_STATECHART_TEST_DLL_EXPORT ; |
| |
| local normal = ; |
| local native = <define>BOOST_STATECHART_USE_NATIVE_RTTI ; |
| local relaxed = <define>BOOST_STATECHART_RELAX_TRANSITION_CONTEXT ; |
| local both = $(native) $(relaxed) ; |
| |
| rule independent-obj-build ( name : cpp-sources + : requirements * ) |
| { |
| local objs ; |
| |
| for local cpp-source in $(cpp-sources) |
| { |
| obj $(name)$(cpp-source) : $(cpp-source).cpp : $(requirements) ; |
| objs += $(name)$(cpp-source) ; |
| } |
| |
| return $(objs) ; |
| } |
| |
| rule statechart-st-lib ( name : cpp-sources + : requirements * ) |
| { |
| lib $(name) |
| : [ independent-obj-build $(name) |
| : $(cpp-sources) |
| : <threading>single $(st-requirements) |
| <link>shared:$(dll-export) $(requirements) ] ; |
| |
| return $(name) ; |
| } |
| |
| rule statechart-run ( name : sources + : requirements * ) |
| { |
| return [ run $(sources) $(test_monitor) : : : $(requirements) : $(name) ] ; |
| } |
| |
| rule statechart-st-run ( name : sources + : requirements * ) |
| { |
| return [ statechart-run $(name) : $(sources) |
| : <threading>single $(st-requirements) $(requirements) ] ; |
| } |
| |
| rule statechart-st-run-variants ( cpp-source ) |
| { |
| local result ; |
| |
| result += [ statechart-st-run $(cpp-source)Normal |
| : $(cpp-source).cpp : $(normal) ] ; |
| result += [ statechart-st-run $(cpp-source)Native |
| : $(cpp-source).cpp : $(native) ] ; |
| result += [ statechart-st-run $(cpp-source)Relaxed |
| : $(cpp-source).cpp : $(relaxed) ] ; |
| result += [ statechart-st-run $(cpp-source)Both |
| : $(cpp-source).cpp : $(both) ] ; |
| |
| return $(result) ; |
| } |
| |
| rule statechart-compile-fail ( name : cpp-sources + : requirements * ) |
| { |
| return [ compile-fail $(cpp-sources).cpp : $(requirements) : $(name) ] ; |
| } |
| |
| rule statechart-compile-fail-variants ( cpp-source ) |
| { |
| local result ; |
| |
| result += [ statechart-compile-fail $(cpp-source)Normal |
| : $(cpp-source) : $(normal) ] ; |
| result += [ statechart-compile-fail $(cpp-source)Native |
| : $(cpp-source) : $(native) ] ; |
| result += [ statechart-compile-fail $(cpp-source)Relaxed |
| : $(cpp-source) : $(relaxed) ] ; |
| result += [ statechart-compile-fail $(cpp-source)Both |
| : $(cpp-source) : $(both) ] ; |
| |
| return $(result) ; |
| } |
| |
| rule statechart-st-lib-run ( |
| name : exe-cpp-sources + : lib-cpp-sources + : requirements * ) |
| { |
| return [ statechart-st-run $(name) |
| : $(exe-cpp-sources).cpp |
| [ statechart-st-lib $(name)Lib |
| : $(lib-cpp-sources) : $(requirements) ] |
| : <link>shared:$(dll) $(requirements) ] ; |
| } |
| |
| rule statechart-st-compile-example ( name : directory : cpp-sources + ) |
| { |
| return [ link ../example/$(directory)/$(cpp-sources).cpp |
| : <threading>single $(st-requirements) : $(name)Example ] ; |
| } |
| |
| test-suite statechart |
| : [ statechart-compile-fail-variants InvalidChartTest1 ] |
| [ statechart-compile-fail-variants InvalidChartTest2 ] |
| [ statechart-compile-fail-variants InvalidChartTest3 ] |
| [ statechart-st-run-variants TransitionTest ] |
| [ statechart-compile-fail-variants InvalidTransitionTest1 ] |
| [ statechart-compile-fail-variants InvalidTransitionTest2 ] |
| [ statechart-st-run-variants InStateReactionTest ] |
| [ statechart-st-run-variants TerminationTest ] |
| [ statechart-st-run-variants DeferralTest ] |
| [ statechart-st-run-variants CustomReactionTest ] |
| [ statechart-compile-fail-variants InvalidResultAssignTest ] |
| [ statechart-compile-fail-variants InvalidResultDefCtorTest ] |
| [ statechart-st-run-variants InvalidResultCopyTest ] |
| [ statechart-st-run-variants UnconsumedResultTest ] |
| [ statechart-st-run-variants HistoryTest ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest1 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest2 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest3 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest4 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest5 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest6 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest7 ] |
| [ statechart-compile-fail-variants InconsistentHistoryTest8 ] |
| [ statechart-compile-fail-variants UnsuppDeepHistoryTest ] |
| [ statechart-st-run-variants StateCastTest ] |
| [ statechart-st-run-variants TypeInfoTest ] |
| [ statechart-st-run-variants StateIterationTest ] |
| [ statechart-st-run-variants FifoSchedulerTest ] |
| [ statechart-st-run-variants TriggeringEventTest ] |
| [ statechart-st-lib-run LibTestNormal |
| : TuTestMain : TuTest : <link>static $(normal) ] |
| [ statechart-st-lib-run LibTestNative |
| : TuTestMain : TuTest : <link>static $(native) ] |
| [ statechart-st-lib-run DllTestNormal |
| : TuTestMain : TuTest : <link>shared $(normal) ] |
| [ statechart-st-lib-run DllTestNative |
| : TuTestMain : TuTest : <link>shared $(native) ] |
| [ statechart-st-compile-example BitMachine : BitMachine : BitMachine ] |
| [ statechart-st-compile-example Camera |
| : Camera : Camera Configuring Main Shooting ] |
| [ statechart-st-compile-example Handcrafted : Handcrafted : Handcrafted ] |
| [ statechart-st-compile-example Keyboard : Keyboard : Keyboard : ] |
| [ statechart-st-compile-example Performance : Performance : Performance ] |
| [ statechart-st-compile-example PingPong : PingPong : PingPong Player ] |
| [ statechart-st-compile-example StopWatch : StopWatch : StopWatch ] |
| [ statechart-st-compile-example StopWatch2 : StopWatch : StopWatch2 ] ; |