fcf::NTest::Logger::Writer
fcf::NTest::dbg(
unsigned int a_messageCategory
= fcf::NTest::LMC_USER_GROUP)
Package: fcfTest
File: test.hpp
Available from version: 1.0.1
Returns an fcf::NTest::Logger::Writer object for debug log messages. This logging level is used to output the debugging mesasge.
The message will only be written to the output if the current logger threshold is set to fcf::NTest::LL_DBG or upper (e.g., fcf::NTest::LL_ALL, fcf::NTest::LL_TRC).
This logging level is useful for displaying debugging information.
Arguments
unsigned int a_messageCategory = fcf::NTest::LMC_USER_GROUP
- [SINCE 1.1.14] integer category identifier.
Result
fcf::NTest::Logger::Writer
- An RAII-based stream wrapper used to buffer log messages before sending them to the logger.
Example: Basic Debug Logging
#define FCF_TEST_IMPLEMENTATION
#include <fcfTest/test.hpp>
int main() {
// We set the logging level,
// since this level is upper than the default level (LL_DBG).
fcf::NTest::logger().level(fcf::NTest::LL_DBG);
fcf::NTest::dbg() << "The application is running." << std::endl;
return 0;
}
Output:
> The application is running.
Example: Output to terminal with switching to logging mode
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 "dbg" (Debug), 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_DEFINE("Engine", "User", "Motion"){
User user = {0};
// By default, the log output will not be executed
// It is necessary to set the level of logging, debug or higher.
fcf::NTest::dbg() << " The user started moving" << std::endl;
user.go();
fcf::NTest::dbg() << " The user went back" << std::endl;
user.back();
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`002`743 sec)
[SUCCESS] All tests were completed.
Tests: 1 passed, 0 failed, 0 skipped, 1 total
Duration: 0.000`002`743 sec
Running (We start with the logging mode debug):
LAUNCH $: ./example --test-log-level dbg
Output:
Performing the test: "Engine" -> "User" -> "Motion" ...
> The user started moving
> The user went back
[SUCCESS] Test completed successfully (0.000`008`661 sec)
[SUCCESS] All tests were completed.
Tests: 1 passed, 0 failed, 0 skipped, 1 total
Duration: 0.000`008`661 sec