From 8352e7e9ec4a525aa080e317566bf14a99af7d81 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Wed, 22 Mar 2017 11:50:05 +0800 Subject: [PATCH] unit test: Measure test wall time with CCOUNT, so it includes time w/ interrupts off --- components/spi_flash/flash_ops.c | 2 +- tools/unit-test-app/components/unity/unity_platform.c | 10 +++++++--- tools/unit-test-app/main/app_main.c | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/components/spi_flash/flash_ops.c b/components/spi_flash/flash_ops.c index 21a77a945..86101ef04 100644 --- a/components/spi_flash/flash_ops.c +++ b/components/spi_flash/flash_ops.c @@ -491,7 +491,7 @@ static esp_err_t IRAM_ATTR spi_flash_translate_rc(SpiFlashOpResult rc) static inline void dump_counter(spi_flash_counter_t* counter, const char* name) { - ESP_LOGI(TAG, "%s count=%8d time=%8dms bytes=%8d\n", name, + ESP_LOGI(TAG, "%s count=%8d time=%8dus bytes=%8d\n", name, counter->count, counter->time, counter->bytes); } diff --git a/tools/unit-test-app/components/unity/unity_platform.c b/tools/unit-test-app/components/unity/unity_platform.c index 05e50a160..3f453326c 100644 --- a/tools/unit-test-app/components/unity/unity_platform.c +++ b/tools/unit-test-app/components/unity/unity_platform.c @@ -8,6 +8,7 @@ #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" +#include "soc/cpu.h" #define unity_printf ets_printf @@ -167,10 +168,13 @@ void unity_run_menu() int test_index = strtol(cmdline, NULL, 10); if (test_index >= 1 && test_index <= test_count) { - uint32_t start = esp_log_timestamp(); /* hacky way to get ms */ + uint32_t start; + RSR(CCOUNT, start); unity_run_single_test_by_index(test_index - 1); - uint32_t end = esp_log_timestamp(); - printf("Test ran in %dms\n", end - start); + uint32_t end; + RSR(CCOUNT, end); + uint32_t ms = (end - start) / (XT_CLOCK_FREQ / 1000); + printf("Test ran in %dms\n", ms); } } diff --git a/tools/unit-test-app/main/app_main.c b/tools/unit-test-app/main/app_main.c index b00034adf..58a195172 100644 --- a/tools/unit-test-app/main/app_main.c +++ b/tools/unit-test-app/main/app_main.c @@ -11,8 +11,10 @@ void unityTask(void *pvParameters) while(1); } -void app_main() +void app_main() { + // Note: if unpinning this task, change the way run times are calculated in + // unity_platform xTaskCreatePinnedToCore(unityTask, "unityTask", 4096, NULL, 5, NULL, 0); }