static void test_1_02() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log_NOTICE(pantheios::real(+1.1)); pantheios::log_NOTICE(pantheios::real(-1.1)); pantheios::log_NOTICE(pantheios::real(+0.0000001)); pantheios::log_NOTICE(pantheios::real(-0.0000001)); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST(4 == results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("1.1"), results[0].statement); XTESTS_TEST_STRING_EQUAL(PSTR("-1.1"), results[1].statement); // XTESTS_TEST_STRING_EQUAL(PSTR("0.0000001"), results[2].statement); // XTESTS_TEST_STRING_EQUAL(PSTR("-0.0000001"), results[3].statement); }
static void test_1_01() { // 1. Setup const PAN_CHAR_T prefix[] = PSTR("process: "); PAN_CHAR_T pid_[21 + STLSOFT_NUM_ELEMENTS(prefix)]; PAN_CHAR_T const* pid = stlsoft::integer_to_string(&pid_[0], STLSOFT_NUM_ELEMENTS(pid_), pan_get_pid_()); PAN_CHAR_T const* stmt = pid - (STLSOFT_NUM_ELEMENTS(prefix) - 1); #ifdef PANTHEIOS_USE_WIDE_STRINGS ::wcsncpy(const_cast<PAN_CHAR_T*>(stmt), prefix, (STLSOFT_NUM_ELEMENTS(prefix) - 1)); #else /* ? PANTHEIOS_USE_WIDE_STRINGS */ ::strncpy(const_cast<PAN_CHAR_T*>(stmt), prefix, (STLSOFT_NUM_ELEMENTS(prefix) - 1)); #endif /* PANTHEIOS_USE_WIDE_STRINGS */ pantheios::be::test::reset(); // 2. Create test data pantheios::log_NOTICE(pantheios::processId); pantheios::log_NOTICE(prefix, pantheios::processId); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_BOOLEAN_FALSE(results.empty()); XTESTS_REQUIRE(XTESTS_TEST_INTEGER_EQUAL(2u, results.size())); XTESTS_TEST_STRING_EQUAL(pid, results[0].statement); XTESTS_TEST_STRING_EQUAL(stmt, results[1].statement); }
static void test_1_05() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::boolean::set_value_strings(PSTR("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), PSTR("T")); pantheios::log_NOTICE(PSTR("{"), pantheios::boolean(false), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::boolean(true), PSTR("}")); pantheios::boolean::set_value_strings(NULL, NULL); pantheios::log_NOTICE(PSTR("{"), pantheios::boolean(false), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::boolean(true), PSTR("}")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST_INTEGER_EQUAL(4u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("{ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff}"), results[0].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{T}"), results[1].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{false}"), results[2].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{true}"), results[3].statement); }
static void test_1_01() { PAN_CHAR_T hostname[1000]; const string_t hid = pan_get_hid_(); { for(size_t i = 0; i != STLSOFT_NUM_ELEMENTS(hostname); ++i) { ::memset(&hostname[0], 0, sizeof(hostname)); const size_t len = pantheios::getHostName(&hostname[0], i); if(len == i) { // The function did not have enough space to write in, so it // will return the length passed to it ... XTESTS_TEST_INTEGER_EQUAL(i, len); // ... and will not have written anything to the file XTESTS_TEST_STRING_EQUAL(PANTHEIOS_LITERAL_STRING(""), hostname); } else { // The function had enough space, so it will return the length // of the intended hostname ... XTESTS_TEST_INTEGER_EQUAL(hid.size(), len); // ... and will have written the hostname XTESTS_TEST_STRING_EQUAL(hid, hostname); } }} }
static void test_plain_characters() { static char const plain_characters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`~!@#$%^&*()-_=+[{]}|;:\",<.>/?"; // 1. Setup pantheios::be::test::reset(); // 2. Create test data { for(size_t i = 0; STLSOFT_NUM_ELEMENTS(plain_characters) - 1 != i; ++i) { PAN_CHAR_T const ch = plain_characters[i]; pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(ch), PSTR("}")); }} // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST_INTEGER_EQUAL(STLSOFT_NUM_ELEMENTS(plain_characters) - 1, results.size()); { for(size_t i = 0; STLSOFT_NUM_ELEMENTS(plain_characters) - 1 != i; ++i) { PAN_CHAR_T const ch = plain_characters[i]; PAN_CHAR_T sz[4] = { '{', ch, '}', '\0' }; XTESTS_TEST_STRING_EQUAL(sz, results[i].statement); }} }
static void test_21() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data string_t msgEl1(256, '~'); string_t msgEl2(4096, '#'); pantheios::log(pantheios::informational, msgEl1, msgEl2); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_INTEGER_EQUAL(1u, results.size()); XTESTS_TEST_STRING_EQUAL(msgEl1 + msgEl2, results[0].statement); XTESTS_TEST(pantheios::informational == results[0].severity); }
static void test_1_01() { { for(size_t i = 0; i != STLSOFT_NUM_ELEMENTS(s_severities); ++i) { const int severity = s_severities[i]; // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::pantheios_logprintf(severity, PSTR("abc")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); if(!results.empty()) // Do test here, so will work with any back-end { XTESTS_TEST(1 == results.size()); PANTHEIOS_SEV_LEVELS_EQUAL(severity, results[0].severity); XTESTS_TEST_STRING_EQUAL(PSTR("abc"), results[0].statement); } }} }
static void test_1_13() { recls_char_t result[2]; size_t cch = Recls_SqueezePath(RECLS_LITERAL("abc/def/ghi"), &result[0], STLSOFT_NUM_ELEMENTS(result) - 1); result[cch] = '\0'; XTESTS_TEST_INTEGER_EQUAL(1u, cch); XTESTS_TEST_STRING_EQUAL(RECLS_LITERAL("g"), result); }
static void test_1_0() { recls_char_t result[1]; size_t cch = Recls_SqueezePath(RECLS_LITERAL(""), NULL, 0); result[cch] = '\0'; XTESTS_TEST_INTEGER_EQUAL(0u, cch); XTESTS_TEST_STRING_EQUAL(RECLS_LITERAL(""), result); }
static void test_1_10() { std::string sink; ff::flush(ff::fmt(sink, FF_STR("{0}"), FF_STR(""))); XTESTS_TEST_INTEGER_EQUAL(0u, sink.size()); XTESTS_TEST_STRING_EQUAL("", sink.data()); ff::flush(ff::fmt(sink, FF_STR("{0}"), FF_STR("abc"))); XTESTS_TEST_INTEGER_EQUAL(3u, sink.size()); XTESTS_TEST_STRING_EQUAL("abc", sink.data()); ff::flush(ff::fmt(sink, FF_STR("{0}"), FF_STR(""))); XTESTS_TEST_INTEGER_EQUAL(3u, sink.size()); XTESTS_TEST_STRING_EQUAL("abc", sink.data()); }
static void test_1_04() { { for(size_t i = 0; i != STLSOFT_NUM_ELEMENTS(s_severities); ++i) { const int severity = s_severities[i]; // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::pantheios_logputs(severity, PSTR("abc")); pantheios::pantheios_logputs(severity, PSTR("def")); pantheios::pantheios_logputs(severity, PSTR("abcdefghijklmnopqrstuvwxyz")); pantheios::pantheios_logputs(severity, PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); if(!results.empty()) // Do test here, so will work with any back-end { XTESTS_TEST(4 == results.size()); PANTHEIOS_SEV_LEVELS_EQUAL(severity, results[0].severity); XTESTS_TEST_STRING_EQUAL(PSTR("abc"), results[0].statement); PANTHEIOS_SEV_LEVELS_EQUAL(severity, results[1].severity); XTESTS_TEST_STRING_EQUAL(PSTR("def"), results[1].statement); PANTHEIOS_SEV_LEVELS_EQUAL(severity, results[2].severity); XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghijklmnopqrstuvwxyz"), results[2].statement); PANTHEIOS_SEV_LEVELS_EQUAL(severity, results[3].severity); XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"), results[3].statement); } }} }
static void test_11() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data const size_t numEntries = 1000; { for(size_t i = 0; i < numEntries; ++i) { if(0 == (i % 2)) { pantheios::log(pantheios::informational, PSTR("a"), PSTR("b"), PSTR("c"), PSTR("d"), PSTR("e"), PSTR("f"), PSTR("g"), PSTR("h"), PSTR("i"), PSTR("j"), PSTR("k"), PSTR("l"), PSTR("m"), PSTR("n"), PSTR("o"), PSTR("p"), PSTR("q"), PSTR("r"), PSTR("s"), PSTR("t"), PSTR("u"), PSTR("v"), PSTR("w"), PSTR("x"), PSTR("y"), PSTR("z")); } else { pantheios::log(pantheios::informational, PSTR("A"), PSTR("B"), PSTR("C"), PSTR("D"), PSTR("E"), PSTR("F"), PSTR("G"), PSTR("H"), PSTR("I"), PSTR("J"), PSTR("K"), PSTR("L"), PSTR("M"), PSTR("N"), PSTR("O"), PSTR("P"), PSTR("Q"), PSTR("R"), PSTR("S"), PSTR("T"), PSTR("U"), PSTR("V"), PSTR("W"), PSTR("X"), PSTR("Y"), PSTR("Z")); } }} // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_INTEGER_EQUAL(numEntries, results.size()); { for(size_t i = 0; i < numEntries; ++i) { if(0 == (i % 2)) { XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghijklmnopqrstuvwxyz"), results[i].statement); } else { XTESTS_TEST_STRING_EQUAL(PSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), results[i].statement); } }} }
static void test_10() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log(pantheios::informational, PSTR("a"), PSTR("b"), PSTR("c"), PSTR("d"), PSTR("e"), PSTR("f"), PSTR("g"), PSTR("h"), PSTR("i"), PSTR("j"), PSTR("k"), PSTR("l"), PSTR("m"), PSTR("n"), PSTR("o"), PSTR("p"), PSTR("q"), PSTR("r"), PSTR("s"), PSTR("t"), PSTR("u"), PSTR("v"), PSTR("w"), PSTR("x"), PSTR("y"), PSTR("z")); pantheios::log(pantheios::informational, PSTR("A"), PSTR("B"), PSTR("C"), PSTR("D"), PSTR("E"), PSTR("F"), PSTR("G"), PSTR("H"), PSTR("I"), PSTR("J"), PSTR("K"), PSTR("L"), PSTR("M"), PSTR("N"), PSTR("O"), PSTR("P"), PSTR("Q"), PSTR("R"), PSTR("S"), PSTR("T"), PSTR("U"), PSTR("V"), PSTR("W"), PSTR("X"), PSTR("Y"), PSTR("Z")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_INTEGER_EQUAL(2u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghijklmnopqrstuvwxyz"), results[0].statement); XTESTS_TEST_STRING_EQUAL(PSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), results[1].statement); }
static void test_1_01() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log_NOTICE(PSTR("{"), pantheios::boolean(false), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::boolean(true), PSTR("}")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST_INTEGER_EQUAL(2u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("{false}"), results[0].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{true}"), results[1].statement); }
static void test_1_01() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log_NOTICE(pantheios::real(static_cast<float>(0))); pantheios::log_NOTICE(pantheios::real(static_cast<double>(0))); pantheios::log_NOTICE(pantheios::real(static_cast<long double>(0))); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST(3 == results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("0"), results[0].statement); XTESTS_TEST_STRING_EQUAL(PSTR("0"), results[1].statement); XTESTS_TEST_STRING_EQUAL(PSTR("0"), results[2].statement); }
static void test_1_02() { const string_t hid = pan_get_hid_(); { for(size_t i = 1; i != 1001; ++i) { pantheios::util::auto_buffer_selector<PAN_CHAR_T, 256>::type hostname(i); const size_t len = pantheios::getHostName(hostname); // The function had enough space, so it will return the length // of the intended hostname ... XTESTS_TEST_INTEGER_EQUAL(hid.size(), len); // ... and will have written the hostname XTESTS_TEST_STRING_EQUAL(hid, hostname.data()); }} }
static void test_03() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log(pantheios::notice, PSTR("abc")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_BOOLEAN_FALSE(results.empty()); XTESTS_TEST_INTEGER_EQUAL(1u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("abc"), results[0].statement); XTESTS_TEST(pantheios::notice == results[0].severity); }
static void test_1_03() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::pantheios_logprintf(pantheios::error(0x01234567), PSTR("abc")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST(1 == results.size()); PANTHEIOS_SEV_LEVELS_EQUAL(PANTHEIOS_SEV_ERROR | (0x01234567 << 4), results[0].severity); XTESTS_TEST_STRING_EQUAL(PSTR("abc"), results[0].statement); }
static void test_06() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log(pantheios::informational, PSTR("abc"), PSTR("def"), PSTR("ghi"), PSTR("jk"), PSTR("lm"), PSTR("no"), PSTR("pq"), PSTR("rs"), PSTR("tu"), PSTR("vw"), PSTR("xy"), PSTR("z")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_INTEGER_EQUAL(1u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghijklmnopqrstuvwxyz"), results[0].statement); XTESTS_TEST(pantheios::informational == results[0].severity); }
static void test_07() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log(pantheios::informational, PSTR("a"), PSTR("b"), PSTR("c"), PSTR("d"), PSTR("e"), PSTR("f"), PSTR("g"), PSTR("h"), PSTR("i"), PSTR("j"), PSTR("k"), PSTR("l"), PSTR("m"), PSTR("n"), PSTR("o"), PSTR("p"), PSTR("q"), PSTR("r"), PSTR("s"), PSTR("t"), PSTR("u"), PSTR("v"), PSTR("w"), PSTR("x"), PSTR("y"), PSTR("z")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_INTEGER_EQUAL(1u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghijklmnopqrstuvwxyz"), results[0].statement); XTESTS_TEST(pantheios::informational == results[0].severity); }
static void test_1_02() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log(pantheios::notice(1), PSTR("abc")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST(1 == results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("abc"), results[0].statement); PANTHEIOS_SEV_LEVELS_EQUAL(PANTHEIOS_SEV_NOTICE | (1 << 4), results[0].severity); }
static void test_05() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log(pantheios::informational, PSTR("abc"), PSTR("def"), PSTR("ghi")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST_INTEGER_EQUAL(1u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("abcdefghi"), results[0].statement); XTESTS_TEST(pantheios::informational == results[0].severity); }
static void test_special_characters_1() { // 1. Setup pantheios::be::test::reset(); // 2. Create test data pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(0), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(1), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(2), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(3), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(4), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(5), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(6), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(7), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(8), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(9), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(10), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(11), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(12), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(13), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(14), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(15), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(16), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(17), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(18), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(19), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(20), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(21), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(22), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(23), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(24), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(25), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(26), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(27), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(28), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(29), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(30), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(31), PSTR("}")); pantheios::log_NOTICE(PSTR("{"), pantheios::stream_character(127), PSTR("}")); // 3. Verification pantheios::be::test::Results results = pantheios::be::test::results(); XTESTS_TEST(!results.empty()); XTESTS_TEST_INTEGER_EQUAL(33u, results.size()); XTESTS_TEST_STRING_EQUAL(PSTR("{NUL}"), results[0].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{SOH}"), results[1].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{STX}"), results[2].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{ETX}"), results[3].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{EOT}"), results[4].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{ENQ}"), results[5].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{ACK}"), results[6].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{BEL}"), results[7].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{BS}"), results[8].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{HT}"), results[9].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{LF}"), results[10].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{VT}"), results[11].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{FF}"), results[12].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{CR}"), results[13].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{SO}"), results[14].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{SI}"), results[15].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{DLE}"), results[16].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{DC1}"), results[17].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{DC2}"), results[18].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{DC3}"), results[19].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{DC4}"), results[20].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{NAK}"), results[21].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{SYN}"), results[22].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{ETB}"), results[23].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{CAN}"), results[24].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{EM}"), results[25].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{SUB}"), results[26].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{ESC}"), results[27].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{FS}"), results[28].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{GS}"), results[29].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{RS}"), results[30].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{US}"), results[31].statement); XTESTS_TEST_STRING_EQUAL(PSTR("{DEL}"), results[32].statement); }
static int main_(int argc, char** argv) { int retCode = EXIT_SUCCESS; int verbosity = 2; static PAN_CHAR_T const* strings[] = { PANTHEIOS_LITERAL_STRING("abc") , PANTHEIOS_LITERAL_STRING("ABC") , PANTHEIOS_LITERAL_STRING("abcdefghijklmnopqrstuvwxyz") , PANTHEIOS_LITERAL_STRING("ABCDEFGHIJKLMNOPQRSTUVWXYZ") , PANTHEIOS_LITERAL_STRING("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789") }; static int severities[] = { PANTHEIOS_SEV_DEBUG , PANTHEIOS_SEV_INFORMATIONAL , PANTHEIOS_SEV_NOTICE , PANTHEIOS_SEV_WARNING , PANTHEIOS_SEV_ERROR , PANTHEIOS_SEV_CRITICAL , PANTHEIOS_SEV_ALERT , PANTHEIOS_SEV_EMERGENCY }; XTESTS_COMMANDLINE_PARSEVERBOSITY(argc, argv, &verbosity); if(XTESTS_START_RUNNER("test.unit.be.COMErrorObject", verbosity)) { /* Case 1 - verifying be.COMErrorObject, with flags 0 */ if(!XTESTS_CASE_BEGIN("case-1", "verifying be.COMErrorObject, with flags 0")) { retCode = EXIT_FAILURE; } else { pan_be_COMErrorObject_init_t init; init.flags = 0 // | PANTHEIOS_BE_INIT_F_NO_PROCESS_ID // | PANTHEIOS_BE_INIT_F_NO_THREAD_ID | PANTHEIOS_BE_INIT_F_NO_SEVERITY ; void* token; int res = pantheios_be_COMErrorObject_init(PANTHEIOS_FE_PROCESS_IDENTITY, PANTHEIOS_BEID_ALL, &init, NULL, &token); if(PANTHEIOS_INIT_RC_SUCCESS != res) { XTESTS_FAIL_WITH_QUALIFIER("failed to initialise bec.COMErrorObject", pantheios::getInitErrorString(res)); } else { { for(size_t i = 0; i != STLSOFT_NUM_ELEMENTS(severities); ++i) { { for(size_t j = 0; j != STLSOFT_NUM_ELEMENTS(strings); ++j) { const int severity = severities[i]; pantheios_be_COMErrorObject_logEntry(NULL, token, severity, strings[j], stlsoft::c_str_len(strings[j])); if( PANTHEIOS_SEV_DEBUG == severity || PANTHEIOS_SEV_INFORMATIONAL == severity) { ; // be.COMErrorObject does not write out debug-level or informational-level messages } else { comstl::errorinfo_desc ed; XTESTS_TEST_STRING_EQUAL(strings[j], ed); } }} }} pantheios_be_COMErrorObject_uninit(token); } XTESTS_CASE_END(""); } /* Case 2 - verifying be.COMErrorObject, with PANTHEIOS_BE_COMERROROBJECT_F_DONT_OVERWRITE_EXISTING flag */ if(!XTESTS_CASE_BEGIN("case-2", "verifying be.COMErrorObject, with PANTHEIOS_BE_COMERROROBJECT_F_DONT_OVERWRITE_EXISTING flag")) { retCode = EXIT_FAILURE; } else { pan_be_COMErrorObject_init_t init; init.flags = 0 // | PANTHEIOS_BE_INIT_F_NO_PROCESS_ID // | PANTHEIOS_BE_INIT_F_NO_THREAD_ID | PANTHEIOS_BE_INIT_F_NO_SEVERITY | PANTHEIOS_BE_COMERROROBJECT_F_DONT_OVERWRITE_EXISTING ; void* token; int res = pantheios_be_COMErrorObject_init(PANTHEIOS_FE_PROCESS_IDENTITY, PANTHEIOS_BEID_ALL, &init, NULL, &token); if(PANTHEIOS_INIT_RC_SUCCESS != res) { XTESTS_FAIL_WITH_QUALIFIER("failed to initialise bec.COMErrorObject", pantheios::getInitErrorString(res)); } else { { for(size_t i = 0; i != STLSOFT_NUM_ELEMENTS(severities); ++i) { { for(size_t j = 0; j != STLSOFT_NUM_ELEMENTS(strings); ++j) { const int severity = severities[i]; comstl::set_error_info(L"the first string"); pantheios_be_COMErrorObject_logEntry(NULL, token, severity, strings[j], stlsoft::c_str_len(strings[j])); if( PANTHEIOS_SEV_DEBUG == severity || PANTHEIOS_SEV_INFORMATIONAL == severity) { ; // be.COMErrorObject does not write out debug-level or informational-level messages } else { comstl::errorinfo_desc ed; XTESTS_TEST_MULTIBYTE_STRING_EQUAL("the first string", ed); } }} }} pantheios_be_COMErrorObject_uninit(token); } XTESTS_CASE_END(""); } XTESTS_PRINT_RESULTS(); XTESTS_END_RUNNER_UPDATE_EXITCODE(&retCode); } return retCode; }