Add a unit test app + example tests

custom
jacqueline 2 years ago
parent c29c218b85
commit 6584060296
  1. 1
      .env
  2. 5
      .gitignore
  3. 34
      CMakeLists.txt
  4. 33
      common.cmake
  5. 1
      src/drivers/test/CMakeLists.txt
  6. 9
      src/drivers/test/test_example.cpp
  7. 10
      test/CMakeLists.txt
  8. 1
      test/main/CMakeLists.txt
  9. 22
      test/main/main.c
  10. 2
      test/sdkconfig.defaults

@ -1,4 +1,5 @@
repo_dir=$(cd "$(dirname "$_")" && pwd)
export PROJ_PATH=$repo_dir
export ADF_PATH=$repo_dir/lib/esp-adf
export IDF_PATH=$ADF_PATH/esp-idf
. $IDF_PATH/export.sh

5
.gitignore vendored

@ -5,3 +5,8 @@ build.clang/
sdkconfig.old
.vscode
compile_commands.json
warnings.txt
test/build/
test/dependencies.lock
test/sdkconfig

@ -1,34 +1,4 @@
# For more information about build system see
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
cmake_minimum_required(VERSION 3.8)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
cmake_minimum_required(VERSION 3.16)
include(common.cmake)
# ESP-ADF clobbers EXTRA_COMPONENT_DIRS, so include it first.
include($ENV{ADF_PATH}/CMakeLists.txt)
# Build only the subset of components that we actually depend on.
set(COMPONENTS "")
# External dependencies
list(APPEND EXTRA_COMPONENT_DIRS "lib/result")
list(APPEND EXTRA_COMPONENT_DIRS "lib/lvgl")
# Project components
list(APPEND EXTRA_COMPONENT_DIRS "src")
# Additional warnings used when compiling our components.
# Unable to be used due to issues in ESP-IDF includes are: -Wpedantic
# -Wuseless-cast -Wconversion -Wold-style-cast -Wsign-conversion -Wcast-align
set(EXTRA_WARNINGS "-Wshadow" "-Wnon-virtual-dtor" "-Wunused"
"-Woverloaded-virtual" "-Wmisleading-indentation" "-Wduplicated-cond"
"-Wduplicated-branches" "-Wlogical-op" "-Wnull-dereference"
"-Wdouble-promotion" "-Wformat=2" "-Wimplicit-fallthrough")
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(gay-ipod-fw)
# Extra build flags that should apply to the entire build. This should mostly
# just be used to setting flags that our external dependencies requires.
# Otherwise, prefer adding per-component build flags to keep things neat.
idf_build_set_property(COMPILE_OPTIONS "-DRESULT_DISABLE_EXCEPTIONS -DLV_CONF_INCLUDE_SIMPLE" APPEND)

@ -0,0 +1,33 @@
# For more information about build system see
# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# ESP-ADF clobbers EXTRA_COMPONENT_DIRS, so include it first.
include($ENV{ADF_PATH}/CMakeLists.txt)
# Build only the subset of components that we actually depend on.
set(COMPONENTS "")
# External dependencies
list(APPEND EXTRA_COMPONENT_DIRS "$ENV{PROJ_PATH}/lib/result")
list(APPEND EXTRA_COMPONENT_DIRS "$ENV{PROJ_PATH}/lib/lvgl")
# Project components
list(APPEND EXTRA_COMPONENT_DIRS "$ENV{PROJ_PATH}/src")
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
# Additional warnings used when compiling our components.
# Unable to be used due to issues in ESP-IDF includes are: -Wpedantic
# -Wuseless-cast -Wconversion -Wold-style-cast -Wsign-conversion -Wcast-align
set(EXTRA_WARNINGS "-Wshadow" "-Wnon-virtual-dtor" "-Wunused"
"-Woverloaded-virtual" "-Wmisleading-indentation" "-Wduplicated-cond"
"-Wduplicated-branches" "-Wlogical-op" "-Wnull-dereference"
"-Wdouble-promotion" "-Wformat=2" "-Wimplicit-fallthrough")
# Extra build flags that should apply to the entire build. This should mostly
# just be used to setting flags that our external dependencies requires.
# Otherwise, prefer adding per-component build flags to keep things neat.
idf_build_set_property(
COMPILE_OPTIONS "-DRESULT_DISABLE_EXCEPTIONS -DLV_CONF_INCLUDE_SIMPLE" APPEND)

@ -0,0 +1 @@
idf_component_register(SRC_DIRS "." INCLUDE_DIRS "." REQUIRES cmock drivers)

@ -0,0 +1,9 @@
#include "unity.h"
TEST_CASE("Example test case", "[cooltag]") {
TEST_ASSERT_EQUAL(0, 0);
}
TEST_CASE("test that doesn't run", "[cooltag][ignore]") {
TEST_ASSERT_EQUAL(0, 1);
}

@ -0,0 +1,10 @@
cmake_minimum_required(VERSION 3.16)
include(../common.cmake)
# Treat warnings as errors for test purposes.
list(APPEND EXTRA_WARNINGS "-Werror")
# List all components that include tests here.
set(TEST_COMPONENTS "drivers")
project(device_tests)

@ -0,0 +1 @@
idf_component_register(SRCS "main.c" INCLUDE_DIRS ".")

@ -0,0 +1,22 @@
#include <stdio.h>
#include <string.h>
#include "unity.h"
static void print_banner(const char* text);
void app_main(void)
{
print_banner("Running tests without [ignore] tag");
UNITY_BEGIN();
unity_run_tests_by_tag("[ignore]", true);
UNITY_END();
print_banner("Starting interactive test menu");
unity_run_menu();
}
static void print_banner(const char* text)
{
printf("\n#### %s #####\n\n", text);
}

@ -0,0 +1,2 @@
CONFIG_ESP_TASK_WDT=n
Loading…
Cancel
Save