From 0c40b2ec9dcff8e8dd2db7ced3ce601a4e824832 Mon Sep 17 00:00:00 2001 From: He Yin Ling Date: Mon, 13 Nov 2017 16:58:46 +0800 Subject: [PATCH] test: collect performance for esp-timer / spinlock --- components/esp32/test/test_esp_timer.c | 4 ++-- components/freertos/test/test_spinlocks.c | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/components/esp32/test/test_esp_timer.c b/components/esp32/test/test_esp_timer.c index 061b86aa4..08fdb15dc 100644 --- a/components/esp32/test/test_esp_timer.c +++ b/components/esp32/test/test_esp_timer.c @@ -9,6 +9,7 @@ #include "freertos/semphr.h" #include "test_utils.h" + TEST_CASE("esp_timer orders timers correctly", "[esp_timer]") { void dummy_cb(void* arg) @@ -335,8 +336,7 @@ TEST_CASE("esp_timer_get_time call takes less than 1us", "[esp_timer]") end = esp_timer_get_time(); } int ns_per_call = (int) ((end - begin) * 1000 / iter_count); - printf("esp_timer_get_time: %dns per call\n", ns_per_call); - TEST_ASSERT(ns_per_call < 1000); + TEST_PERFORMANCE_LESS_THAN(ESP_TIMER_GET_TIME_PER_CALL, "%dns", ns_per_call); } /* This test runs for about 10 minutes and is disabled in CI. diff --git a/components/freertos/test/test_spinlocks.c b/components/freertos/test/test_spinlocks.c index 68880ce93..38a87f4a7 100644 --- a/components/freertos/test/test_spinlocks.c +++ b/components/freertos/test/test_spinlocks.c @@ -17,6 +17,8 @@ #include "soc/io_mux_reg.h" #include "soc/cpu.h" +#include "idf_performance.h" + #define REPEAT_OPS 10000 static uint32_t start, end; @@ -42,6 +44,12 @@ TEST_CASE("portMUX spinlocks (no contention)", "[freertos]") portEXIT_CRITICAL(&mux); } BENCHMARK_END("no contention lock"); + +#ifdef CONFIG_FREERTOS_UNICORE + TEST_PERFORMANCE_LESS_THAN(FREERTOS_SPINLOCK_CYCLES_PER_OP_UNICORE, "%d cycles/op", ((end - start)/REPEAT_OPS)); +#else + TEST_PERFORMANCE_LESS_THAN(FREERTOS_SPINLOCK_CYCLES_PER_OP, "%d cycles/op", ((end - start)/REPEAT_OPS)); +#endif } TEST_CASE("portMUX recursive locks (no contention)", "[freertos]")