diff options
Diffstat (limited to 'pw_perf_test/perf_test.cc')
-rw-r--r-- | pw_perf_test/perf_test.cc | 80 |
1 files changed, 1 insertions, 79 deletions
diff --git a/pw_perf_test/perf_test.cc b/pw_perf_test/perf_test.cc index 0e2f8d1ee..3cbe0e2f1 100644 --- a/pw_perf_test/perf_test.cc +++ b/pw_perf_test/perf_test.cc @@ -16,89 +16,11 @@ #include "pw_perf_test/perf_test.h" -#include <cstdint> - -#include "pw_log/log.h" #include "pw_perf_test/event_handler.h" +#include "pw_perf_test/internal/framework.h" #include "pw_perf_test/internal/timer.h" namespace pw::perf_test { -namespace internal { - -Framework Framework::framework_; - -int Framework::RunAllTests() { - if (!internal::TimerPrepare()) { - return false; - } - - event_handler_->RunAllTestsStart(run_info_); - - for (const TestInfo* test = tests_; test != nullptr; test = test->next()) { - State test_state = - CreateState(kDefaultIterations, *event_handler_, test->test_name()); - test->Run(test_state); - } - internal::TimerCleanup(); - event_handler_->RunAllTestsEnd(); - return true; -} - -void Framework::RegisterTest(TestInfo& new_test) { - ++run_info_.total_tests; - if (tests_ == nullptr) { - tests_ = &new_test; - return; - } - TestInfo* info = tests_; - for (; info->next() != nullptr; info = info->next()) { - } - info->SetNext(&new_test); -} - -State CreateState(int durations, - EventHandler& event_handler, - const char* test_name) { - return State(durations, event_handler, test_name); -} -} // namespace internal - -bool State::KeepRunning() { - internal::Timestamp iteration_end = internal::GetCurrentTimestamp(); - if (current_iteration_ == -1) { - ++current_iteration_; - event_handler_->TestCaseStart(test_info); - iteration_start_ = internal::GetCurrentTimestamp(); - return true; - } - int64_t duration = internal::GetDuration(iteration_start_, iteration_end); - if (duration > max_) { - max_ = duration; - } - if (duration < min_) { - min_ = duration; - } - total_duration_ += duration; - ++current_iteration_; - PW_LOG_DEBUG("Iteration number: %d - Duration: %ld", - current_iteration_, - static_cast<long>(duration)); - event_handler_->TestCaseIteration({current_iteration_, duration}); - if (current_iteration_ == test_iterations_) { - PW_LOG_DEBUG("Total Duration: %ld Total Iterations: %d", - static_cast<long>(total_duration_), - test_iterations_); - mean_ = total_duration_ / test_iterations_; - PW_LOG_DEBUG("Mean: %ld: ", static_cast<long>(mean_)); - PW_LOG_DEBUG("Minimum: %ld", static_cast<long>(min_)); - PW_LOG_DEBUG("Maxmimum: %ld", static_cast<long>(max_)); - event_handler_->TestCaseEnd(test_info, - Results{mean_, max_, min_, test_iterations_}); - return false; - } - iteration_start_ = internal::GetCurrentTimestamp(); - return true; -} void RunAllTests(EventHandler& handler) { internal::Framework::Get().RegisterEventHandler(handler); |