Changeset 1064 for library/tests/testsuite/logger_test.cpp
- Timestamp:
- 06/09/10 14:00:40 (14 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/testsuite/logger_test.cpp
r916 r1064 15 15 16 16 int get_file_size ( const char *fname ) { 17 18 19 20 21 22 17 struct stat st; 18 if ( stat ( fname, &st ) ) { 19 std::string msg = "can't stat "; 20 msg += fname; 21 throw std::runtime_error ( msg ); 22 } 23 23 24 25 26 27 28 29 24 int sz = static_cast<int> ( st.st_size ); 25 if ( sz != st.st_size ) { 26 std::string msg = fname; 27 msg += " too big"; 28 throw std::runtime_error ( msg ); 29 } 30 30 31 31 return sz; 32 32 } 33 33 34 34 class log_tester : public root 35 35 { 36 36 LOG_LEVEL(log_tester,logr,logth,logpol); 37 37 public: 38 39 38 RV th, r; 39 int pol, i; 40 40 41 42 43 44 41 log_tester() { 42 th = RV ( "{alog blog }" ); 43 r = RV ( "{r }", "2" ); 44 pol = 11; 45 45 46 47 48 49 46 log_level[logr] = true; 47 log_level[logth] = true; 48 log_level[logpol] = true; 49 } 50 50 51 52 53 54 55 56 57 51 void log_register( logger &L, const string prefix ) { 52 root::log_register( L, prefix ); 53 L.add_vector( log_level, logr, r, prefix ); 54 L.add_vector( log_level, logth, th, prefix ); 55 L.add_setting( log_level, logpol, prefix, 0 ); 56 L.add_setting( log_level, logpol, prefix, 1 ); 57 } 58 58 59 60 61 62 63 64 65 59 void log_write() const { 60 root::log_write(); 61 log_level.store( logr, vec_2 ( ( double ) i, ( double ) ( i + 1 ) ) ); 62 log_level.store( logth, vec_2 ( ( double ) ( 100 - i ), ( double ) ( i - 50 ) ) ); 63 log_level.store( logpol, pol, 0 ); 64 log_level.store( logpol, pol^2, 1 ); 65 } 66 66 67 67 }; 68 68 69 69 TEST ( memlog_test ) { 70 71 70 string ls ( "memlog_test" ); 71 remove_all ( ls.c_str() ); 72 72 73 73 memlog logger ( 100, ls ); 74 74 75 75 76 log_tester tester; 77 tester.log_register( logger, "memlog" ); 78 79 logger.init(); 76 log_tester tester; 77 tester.log_register( logger, "memlog" ); 80 78 81 for ( tester.i = 0; tester.i < 10; tester.i++ ) { 82 tester.log_write(); 83 logger.step(); 84 } 79 logger.init(); 85 80 86 logger.finalize(); 81 for ( tester.i = 0; tester.i < 10; tester.i++ ) { 82 tester.log_write(); 83 logger.step(); 84 } 87 85 88 CHECK_EQUAL ( get_file_size ( "logger_test.matrix" ), get_file_size ( ( ls + ".it" ).c_str() ) ); 89 CHECK_EQUAL ( get_file_size ( ( ls + ".cfg.check" ).c_str() ), get_file_size ( ( ls + ".cfg" ).c_str() ) ); 86 logger.finalize(); 87 88 CHECK_EQUAL ( get_file_size ( "logger_test.matrix" ), get_file_size ( ( ls + ".it" ).c_str() ) ); 89 CHECK_EQUAL ( get_file_size ( ( ls + ".cfg.check" ).c_str() ), get_file_size ( ( ls + ".cfg" ).c_str() ) ); 90 90 } 91 91 … … 93 93 94 94 95 96 97 98 95 string ls ( "exp" ); 96 remove_all ( ls.c_str() ); 97 makedir ( ls, false ); 98 remove_all ( "dirfilelog_files" ); 99 99 100 100 dirfilelog logger ( "dirfilelog_files", 10 ); 101 101 102 103 tester.log_register( logger, "dirfilelog" ); 102 log_tester tester; 103 tester.log_register( logger, "dirfilelog" ); 104 104 105 105 logger.init(); 106 106 107 108 109 110 107 for ( tester.i = 0; tester.i < 150; tester.i++ ) { 108 tester.log_write(); 109 logger.step(); 110 } 111 111 112 112 logger.finalize(); 113 113 114 115 116 114 std::string expected ( load_test_file ( "logger_test_dirfile_format.matrix" ) ); 115 std::string actual ( load_test_file ( "dirfilelog_files/format" ) ); 116 CHECK_EQUAL ( expected, actual ); 117 117 }