diff --git a/alib2common/test-src/measurements/MeasurementsTest.cpp b/alib2common/test-src/measurements/MeasurementsTest.cpp index 2e2e42115844b38db4432de497543d93bffd4608..5f3452d2e557a0b5136605dc747bfb5b0ca710c8 100644 --- a/alib2common/test-src/measurements/MeasurementsTest.cpp +++ b/alib2common/test-src/measurements/MeasurementsTest.cpp @@ -62,6 +62,19 @@ void MeasurementsTest::testTimeMeasurements ( ) { measurements::end ( ); measurements::end ( ); + + //root, global1, init, main, aux, aux, fin,aux,...,global2,...,global3, init, main, aux, aux + int expectedResults [ ] = {0, 510000, 100000, 260000, 40000, 40000, 150000, 40000, 100000, 360000, 100000, 260000, 40000, 40000 }; + const int DEVIATION = 25000; + + auto results = measurements::results ( ); + + int i = 0; + for(const measurements::MeasurementFrame & frame : results.frames) { + CPPUNIT_ASSERT ( std::abs ( expectedResults[i] - frame.time.duration.count ( ) ) <= DEVIATION ); + i++; + } + std::cout << measurements::MeasurementFormat::LIST << measurements::results ( ) << std::endl; std::cout << measurements::MeasurementFormat::TREE << measurements::results ( ) << std::endl; std::cout << measurements::MeasurementFormat::XML << measurements::results ( ) << std::endl; @@ -92,6 +105,20 @@ void MeasurementsTest::testMemoryMeasurements ( ) { measurements::end ( ); measurements::end ( ); + int expectedResultsHW [ ] = { 12000, 2000, 12000 , 12000, 4000, 4000 }; + int expectedResultsSHU [ ] = { 0, 0 , 4000 , 4000 , 0 , 0 }; + int expectedResultsEHU [ ] = { 0, 2000, 0 , 12000, 0 , 0 }; + + auto results = measurements::results ( ); + + int i = 0; + for(const measurements::MeasurementFrame & frame : results.frames) { + CPPUNIT_ASSERT ( expectedResultsHW[i] == frame.memory.highWatermark ); + CPPUNIT_ASSERT ( expectedResultsSHU[i] == frame.memory.startHeapUsage ); + CPPUNIT_ASSERT ( expectedResultsEHU[i] == frame.memory.endHeapUsage ); + i++; + } + std::cout << measurements::MeasurementFormat::LIST << measurements::results ( ) << std::endl; std::cout << measurements::MeasurementFormat::TREE << measurements::results ( ) << std::endl; std::cout << measurements::MeasurementFormat::XML << measurements::results ( ) << std::endl; @@ -119,6 +146,32 @@ void MeasurementsTest::testCounterMeasurements ( ) { measurements::end ( ); measurements::end ( ); + std::map < std::string, int > expectedResults [ ] = { + { } , + { { "test1", 3 } , { "test2", -19 } , { "test3", -3 } , { "test4", -2 } } , + { { "test1", 3 } , { "test2", -19 } , { "test3", -3 } , { "test4", -2 } } , + { { "test1", 4 } , { "test2", -9 } , { "test3", -2 } , { "test4", -1 } } , + { { "test1", 3 } , { "test2", -19 } , { "test3", -3 } , { "test4", -2 } } , + }; + + auto results = measurements::results ( ); + + int i = 0; + for(const measurements::MeasurementFrame & frame : results.frames) { + + auto erit = expectedResults[i].begin ( ); + auto it = frame.counter.counters.begin ( ); + + while ( erit != expectedResults[i].end ( ) ) { + CPPUNIT_ASSERT ( erit->first == measurements::to_string ( it->first ) ); + CPPUNIT_ASSERT ( erit->second == it->second ); + ++erit; + ++it; + } + + i++; + } + std::cout << measurements::MeasurementFormat::LIST << measurements::results ( ) << std::endl; std::cout << measurements::MeasurementFormat::TREE << measurements::results ( ) << std::endl; std::cout << measurements::MeasurementFormat::XML << measurements::results ( ) << std::endl;