logging.cpp(0): CHECK( vec[i] != (1 << i) ) is NOT correct! values: CHECK( 1 != 1 ) logged: current iteration of loop: i := 0 logging.cpp(0): CHECK( vec[i] != (1 << i) ) is NOT correct! values: CHECK( 2 != 2 ) logged: current iteration of loop: i := 1 logging.cpp(0): CHECK( vec[i] != (1 << i) ) is NOT correct! values: CHECK( 4 != 4 ) logged: current iteration of loop: i := 2 logging.cpp(0): CHECK( vec[i] != (1 << i) ) is NOT correct! values: CHECK( 8 != 8 ) logged: current iteration of loop: i := 3 logging.cpp(0): CHECK( vec[i] != (1 << i) ) is NOT correct! values: CHECK( 16 != 16 ) logged: current iteration of loop: i := 4 logging.cpp(0): forcing the many captures to be stringified logged: lots of captures: 42 42 42; old way of capturing - using the streaming operator: 42 42 logging.cpp(0): CHECK( some_var == 666 ) is NOT correct! values: CHECK( 42 == 666 ) logged: someTests() returned: 42 this should be printed if an exception is thrown even if no assert has failed: 42 in a nested scope this should be printed as well: 42 why is this not 666 ?! 0 0 logging.cpp(0): MY_ASSERT(false) logging.cpp(0): MY_ASSERT_FATAL(false) logging.cpp(0): this should not end the test case, but mark it as failing logging.cpp(0): fail the test case and also end it Program code.