static int main_(int argc, char **argv) { #ifndef PANTHEIOS_USE_WIDE_STRINGS pantheios::log_DEBUG("main_(", pantheios::args(argc, argv), ")"); #endif { unsigned flags = PANTHEIOS_BE_FILE_F_DISCARD_CACHED_CONTENTS | PANTHEIOS_BE_FILE_F_TRUNCATE; int res1 = pantheios_be_file_setFilePath(PSTR("test-%T-%D.log"), flags, flags, PANTHEIOS_BEID_LOCAL); pantheios_be_file_flush(PANTHEIOS_BEID_LOCAL); pantheios::log_NOTICE(PSTR("stmt 1")); } #ifndef PANTHEIOS_USE_WIDE_STRINGS { pantheios::log_NOTICE("stmt 1"); unsigned flags = PANTHEIOS_BE_FILE_F_DISCARD_CACHED_CONTENTS | PANTHEIOS_BE_FILE_F_TRUNCATE; int res1 = pantheios_be_file_setFilePath(FILENAME_LOCAL, flags, flags, PANTHEIOS_BEID_LOCAL); pantheios::log_NOTICE("stmt 2"); pantheios::log_NOTICE("stmt 3"); int res2 = pantheios_be_file_setFilePath(FILENAME_REMOTE, flags, flags, PANTHEIOS_BEID_REMOTE); pantheios::log_NOTICE("stmt 4"); pantheios::log_NOTICE("stmt 5"); pantheios_be_file_setFilePath(NULL, PANTHEIOS_BEID_LOCAL); pantheios_be_file_setFilePath(NULL, PANTHEIOS_BEID_REMOTE); pantheios::log_NOTICE("stmt 6"); pantheios::log_NOTICE("stmt 7"); file_lines_t local_lines(FILENAME_LOCAL); file_lines_t remote_lines(FILENAME_REMOTE); const size_t numLocal = local_lines.size(); const size_t numRemote = remote_lines.size(); STLSOFT_ASSERT(4 == numLocal); STLSOFT_ASSERT(2 == numRemote); fs_traits_t::delete_file(FILENAME_LOCAL); fs_traits_t::get_last_error(); fs_traits_t::delete_file(FILENAME_REMOTE); fs_traits_t::get_last_error(); STLSOFT_SUPPRESS_UNUSED(res1); STLSOFT_SUPPRESS_UNUSED(res2); } #endif pantheios::log_DEBUG(PSTR("exiting main_()")); return EXIT_SUCCESS; }
static void test_ROLL_ON_ENTRIES() { // Create a file, with rolling quantum of unsigned flags = 0 | PANTHEIOS_BE_FILE_F_DISCARD_CACHED_CONTENTS | PANTHEIOS_BE_FILE_F_TRUNCATE | PANTHEIOS_BE_FILE_F_ROLL_ON_ENTRY_COUNT | 0; pantheios_be_file_setFilePath("rolling-log.test.remote", flags, flags, PANTHEIOS_BEID_REMOTE); const int NUM_ENTRIES = 104; { for(size_t i = 0; i < NUM_ENTRIES; ++i) { pantheios::log_NOTICE("stmt #", pantheios::integer(i)); }} pantheios_be_file_setFilePath(NULL, PANTHEIOS_BEID_REMOTE); { for(size_t i = 0; i < NUM_ENTRIES; i += ENTRY_QUANTUM) { size_t index = i / ENTRY_QUANTUM; path_t path = "rolling-log.test.remote"; path /= pantheios::integer(index).c_str(); file_lines_t remote_lines(path); size_t numRemote = remote_lines.size(); STLSOFT_ASSERT(index < (NUM_ENTRIES / ENTRY_QUANTUM) ? ENTRY_QUANTUM == numRemote : (NUM_ENTRIES % ENTRY_QUANTUM) == numRemote); fs_traits_t::delete_file(path.c_str()); fs_traits_t::get_last_error(); }} }