void test_case_5() { value1 = 1; BOOST_CHECK_EQUAL( 1, value1); BOOST_CHECK_EQUAL( std::string(""), value3); gctx = boost::contexts::context( fn3, "abc", boost::contexts::default_stacksize(), boost::contexts::stack_unwind, boost::contexts::return_to_caller); BOOST_CHECK( ! gctx.is_started() ); BOOST_CHECK( ! gctx.is_complete() ); intptr_t vp = gctx.start(); BOOST_CHECK( gctx.is_started() ); BOOST_CHECK( ! gctx.is_resumed() ); BOOST_CHECK( ! gctx.is_complete() ); BOOST_CHECK_EQUAL( vp, value1); BOOST_CHECK_EQUAL( 1, value1); int x = 7; vp = 0; vp = gctx.resume( x); BOOST_CHECK_EQUAL( 7, value1); BOOST_CHECK( ! vp); BOOST_CHECK( ! gctx.is_complete() ); BOOST_CHECK( gctx.is_resumed() ); BOOST_CHECK_EQUAL( std::string(""), value3); gctx.unwind_stack(); BOOST_CHECK( gctx.is_complete() ); BOOST_CHECK_EQUAL( std::string("abc"), value3); }