If we just run this test, then we will not see any message. However, if we run the test by transferring the login mode to "Trace", we will see our message.
#define FCF_TEST_IMPLEMENTATION
#include <fcfTest/test.hpp>
// Tested structure
struct User {
int frontPos;
void go() { ++frontPos; }
void back() { --frontPos; }
};
// Our main test
FCF_TEST_DECLARE("Engine", "User", "Motion"){
User user = {0};
// By default, the log output will not be executed
// It is necessary to set the level of logging, trace or higher.
fcf::NTest::trc() << " frontPos before calling the go method: " << user.frontPos << std::endl;
user.go();
fcf::NTest::trc() << " frontPos after calling the go method: " << user.frontPos << std::endl;
user.back();
fcf::NTest::trc() << " frontPos after calling the back method: " << user.frontPos << std::endl;
FCF_TEST(user.frontPos == 0, user.frontPos);
}
int main(int a_argc, char* a_argv[]) {
bool error;
// We run all tests declared in the application
fcf::NTest::cmdRun(a_argc, a_argv, fcf::NTest::CRM_RUN, &error);
return error ? 1 : 0;
}
Running (Start by default. Level logging is log):
LAUNCH $: ./example
Output:
Performing the test: "Engine" -> "User" -> "Motion" ...
[SUCCESS] Test completed successfully (0.000`005`657 sec)
[SUCCESS] All tests were completed.
Tests: 1 passed, 0 failed, 0 skipped, 1 total
Duration: 0.000`005`657 sec
Running (We start with the logging mode debug):
LAUNCH $: ./example --test-log-level trc
Output:
Performing the test: "Engine" -> "User" -> "Motion" ...
> frontPos before calling the go method: 0
> frontPos after calling the go method: 1
> frontPos after calling the back method: 0
[SUCCESS] Test completed successfully (0.000`013`273 sec)
[SUCCESS] All tests were completed.
Tests: 1 passed, 0 failed, 0 skipped, 1 total
Duration: 0.000`013`273 sec