aboutsummaryrefslogtreecommitdiff
path: root/pw_perf_test/perf_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'pw_perf_test/perf_test.cc')
-rw-r--r--pw_perf_test/perf_test.cc80
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);