Browse Source

Integrate unit tester

Brian Pugh 4 years ago
parent
commit
42c6995851

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+build/
+sdkconfig
+sdkconfig.old

+ 19 - 0
Makefile

@@ -0,0 +1,19 @@
+PROJECT_NAME := littlefs
+
+EXTRA_COMPONENT_DIRS := \
+	$(abspath .) \
+	$(abspath unit_tester) \
+	$(IDF_PATH)/tools/unit-test-app/components/
+
+CFLAGS += \
+		-Werror
+
+include $(IDF_PATH)/make/project.mk
+
+.PHONY: tests
+
+tests:
+	$(MAKE) \
+		TEST_COMPONENTS='src' \
+		flash monitor;
+

+ 6 - 4
README.md

@@ -37,10 +37,12 @@ and changing `ABSOLUTE_MAX_NUM_FILES`.
 
 # Running Unit Tests
 
-Clone the [ESP-IDF unit test app](https://github.com/espressif/esp-idf/tree/master/tools/unit-test-app) 
-and add this component to the `components/` directory. Run `make menuconfig` to
-set up parameters specific to your development environment. Finally, flash the 
-unit test app via `make flash TEST_COMPONENTS='littlefs' monitor`.
+To flash the unit-tester app and the unit-tests, run
+
+
+```
+make tests
+```
 
 # Acknowledgement
 

+ 15 - 0
partition_table_unit_test_app.csv

@@ -0,0 +1,15 @@
+# Special partition table for unit test app
+#
+# Name,     Type, SubType, Offset,   Size, Flags
+# Note: if you change the phy_init or app partition offset, make sure to change the offset in Kconfig.projbuild
+nvs,        data, nvs,     0x9000,  0x4000
+otadata,    data, ota,     0xd000,  0x2000
+phy_init,   data, phy,     0xf000,  0x1000
+factory,    0,    0,       0x10000, 2M
+# these OTA partitions are used for tests, but can't fit real OTA apps in them
+# (done this way so tests can run in 2MB of flash.)
+ota_0,      0,    ota_0,   ,        64K
+ota_1,      0,    ota_1,   ,        64K
+# flash_test partition used for SPI flash tests, WL FAT tests, and SPIFFS tests
+fat_store, data, fat,     ,        528K
+spiffs_store,  data, spiffs,    ,        512K

+ 125 - 0
sdkconfig.defaults

@@ -0,0 +1,125 @@
+#
+# Partition Table
+#
+CONFIG_PARTITION_TABLE_CUSTOM=y
+CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partition_table_unit_test_app.csv"
+CONFIG_PARTITION_TABLE_FILENAME="partition_table_unit_test_app.csv"
+CONFIG_PARTITION_TABLE_OFFSET=0x8000
+CONFIG_PARTITION_TABLE_MD5=y
+
+#
+# Watchdog
+#
+CONFIG_TASK_WDT=n
+CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=n
+CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=n
+
+#
+# ESP32-specific
+#
+CONFIG_IDF_TARGET_ESP32=y
+CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y
+CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240
+
+CONFIG_ESP32_XTAL_FREQ_AUTO=y
+
+#
+# Serial flasher config
+#
+CONFIG_ESPTOOLPY_BAUD_OTHER=y
+CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=1500000
+CONFIG_ESPTOOLPY_COMPRESSED=y
+CONFIG_FLASHMODE_QIO=y
+CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
+CONFIG_ESPTOOLPY_FLASHFREQ="80m"
+CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
+CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
+CONFIG_ESPTOOLPY_BEFORE_RESET=y
+CONFIG_ESPTOOLPY_BEFORE="default_reset"
+CONFIG_ESPTOOLPY_AFTER_RESET=y
+CONFIG_ESPTOOLPY_AFTER_NORESET=
+CONFIG_ESPTOOLPY_AFTER="hard_reset"
+CONFIG_MONITOR_BAUD_OTHER=y
+CONFIG_MONITOR_BAUD_OTHER_VAL=230400
+CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
+CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=n
+
+CONFIG_ESP_CONSOLE_UART_NUM=0
+CONFIG_ESP_CONSOLE_UART_BAUDRATE=230400
+
+#
+# SPI Flash driver
+#
+CONFIG_SPI_FLASH_VERIFY_WRITE=
+CONFIG_SPI_FLASH_ENABLE_COUNTERS=
+CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
+CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
+CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS=
+CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED=
+
+#
+# SPIFFS Configuration
+#
+CONFIG_SPIFFS_MAX_PARTITIONS=3
+
+#
+# SPIFFS Cache Configuration
+#
+CONFIG_SPIFFS_CACHE=y
+CONFIG_SPIFFS_CACHE_WR=y
+CONFIG_SPIFFS_CACHE_STATS=
+CONFIG_SPIFFS_PAGE_CHECK=y
+CONFIG_SPIFFS_GC_MAX_RUNS=10
+CONFIG_SPIFFS_GC_STATS=
+CONFIG_SPIFFS_PAGE_SIZE=256
+CONFIG_SPIFFS_OBJ_NAME_LEN=32
+CONFIG_SPIFFS_USE_MAGIC=y
+CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
+CONFIG_SPIFFS_META_LENGTH=4
+CONFIG_SPIFFS_USE_MTIME=n
+
+#
+# FAT Filesystem support
+#
+CONFIG_FATFS_CODEPAGE_DYNAMIC=
+CONFIG_FATFS_CODEPAGE_437=y
+CONFIG_FATFS_CODEPAGE_720=
+CONFIG_FATFS_CODEPAGE_737=
+CONFIG_FATFS_CODEPAGE_771=
+CONFIG_FATFS_CODEPAGE_775=
+CONFIG_FATFS_CODEPAGE_850=
+CONFIG_FATFS_CODEPAGE_852=
+CONFIG_FATFS_CODEPAGE_855=
+CONFIG_FATFS_CODEPAGE_857=
+CONFIG_FATFS_CODEPAGE_860=
+CONFIG_FATFS_CODEPAGE_861=
+CONFIG_FATFS_CODEPAGE_862=
+CONFIG_FATFS_CODEPAGE_863=
+CONFIG_FATFS_CODEPAGE_864=
+CONFIG_FATFS_CODEPAGE_865=
+CONFIG_FATFS_CODEPAGE_866=
+CONFIG_FATFS_CODEPAGE_869=
+CONFIG_FATFS_CODEPAGE_932=
+CONFIG_FATFS_CODEPAGE_936=
+CONFIG_FATFS_CODEPAGE_949=
+CONFIG_FATFS_CODEPAGE_950=
+CONFIG_FATFS_CODEPAGE=437
+CONFIG_FATFS_LFN_NONE=y
+CONFIG_FATFS_LFN_HEAP=
+CONFIG_FATFS_LFN_STACK=
+CONFIG_FATFS_FS_LOCK=0
+CONFIG_FATFS_TIMEOUT_MS=10000
+CONFIG_FATFS_PER_FILE_CACHE=y
+
+CONFIG_UNITY_FREERTOS_PRIORITY=5
+CONFIG_UNITY_FREERTOS_CPU=0
+CONFIG_UNITY_FREERTOS_STACK_SIZE=8192
+CONFIG_UNITY_WARN_LEAK_LEVEL_GENERAL=255
+CONFIG_UNITY_CRITICAL_LEAK_LEVEL_GENERAL=1024
+CONFIG_UNITY_CRITICAL_LEAK_LEVEL_LWIP=4095
+CONFIG_UNITY_ENABLE_FLOAT=y
+CONFIG_UNITY_ENABLE_DOUBLE=y
+CONFIG_UNITY_ENABLE_COLOR=y
+CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
+CONFIG_UNITY_ENABLE_FIXTURE=y
+CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL=y

+ 0 - 0
test/CMakeLists.txt → src/test/CMakeLists.txt


+ 0 - 0
test/component.mk → src/test/component.mk


+ 0 - 0
test/test_littlefs.c → src/test/test_littlefs.c


+ 0 - 0
partitions.csv → unit_tester/component.mk


+ 18 - 0
unit_tester/main.c

@@ -0,0 +1,18 @@
+#include "freertos/FreeRTOS.h"
+#include "freertos/task.h"
+#include "esp_task_wdt.h"
+#include "test_utils.h"
+#include "unity.h"
+
+static void unity_task( void *pvParameters )
+{
+    vTaskDelay( 2 ); /* Delay a bit to let the main task be deleted */
+    esp_task_wdt_delete( xTaskGetIdleTaskHandle() );
+    unity_run_menu(); /* Doesn't return */
+}
+
+void app_main( void )
+{
+    xTaskCreatePinnedToCore( unity_task, "unityTask", UNITY_FREERTOS_STACK_SIZE, NULL, UNITY_FREERTOS_PRIORITY, NULL,
+                             UNITY_FREERTOS_CPU );
+}