From 52fca0039418d812d49a1d91fadd28ef389d5742 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Wed, 4 Sep 2019 09:27:37 +0200 Subject: [PATCH] Unit test fixes (#6706) * remove downloaded gtest archive after unpacking * moved horus test files to the build directory * cleaned up X12S test file (removed subdirectory) --- CMakeLists.txt | 7 +++--- radio/src/tests/CMakeLists.txt | 34 ++++++++++++++---------------- radio/src/tests/conversions.cpp | 12 +++++------ radio/src/tests/location.h.in | 3 ++- radio/src/tests/model_22_x12s.otx | Bin 2435 -> 913 bytes 5 files changed, 27 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 802138652..6b9fb0c99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,14 +213,13 @@ if(NOT GTEST_INCDIR OR NOT GTEST_SRCDIR) set(GTEST_URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz") set(GTEST_ARCHIVE "${RADIO_SRC_DIRECTORY}/tests/gtest-${GTEST_VERSION}.tar.gz") - if (NOT EXISTS "${GTEST_ARCHIVE}") - file(DOWNLOAD "${GTEST_URL}" ${GTEST_ARCHIVE} SHOW_PROGRESS) - endif() - if (NOT EXISTS "${GTEST_SRCDIR}") + file(DOWNLOAD "${GTEST_URL}" ${GTEST_ARCHIVE} SHOW_PROGRESS) execute_process( COMMAND ${CMAKE_COMMAND} -E tar -xf ${GTEST_ARCHIVE} WORKING_DIRECTORY ${RADIO_SRC_DIRECTORY}/tests) + execute_process( + COMMAND ${CMAKE_COMMAND} -E remove -f ${GTEST_ARCHIVE}) endif() endif() diff --git a/radio/src/tests/CMakeLists.txt b/radio/src/tests/CMakeLists.txt index c7e02afe2..316f7a16c 100644 --- a/radio/src/tests/CMakeLists.txt +++ b/radio/src/tests/CMakeLists.txt @@ -6,6 +6,7 @@ if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND) add_definitions(-DSIMU -DGTESTS) remove_definitions(-DCLI) set(TESTS_PATH ${RADIO_SRC_DIRECTORY}/tests) + set(TESTS_BUILD_PATH ${CMAKE_CURRENT_BINARY_DIR}) configure_file(${RADIO_SRC_DIRECTORY}/tests/location.h.in ${CMAKE_CURRENT_BINARY_DIR}/location.h @ONLY) include_directories(${CMAKE_CURRENT_BINARY_DIR}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_DEBUG} -O0") @@ -13,21 +14,21 @@ if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND) use_cxx11() # ensure gnu++11 in CXX_FLAGS with CMake < 3.1 if(PCB STREQUAL X12S OR PCB STREQUAL X10) - add_custom_command( - DEPENDS ${TESTS_PATH}/model_22_x10.otx - ${TESTS_PATH}/model_22_x12s.otx - OUTPUT ${TESTS_PATH}/model_22_x10/RADIO/radio.bin ${TESTS_PATH}/model_22_x10/RADIO/models.txt ${TESTS_PATH}/model_22_x10/MODELS/model1.bin - ${TESTS_PATH}/model_22_x12s/RADIO/radio.bin ${TESTS_PATH}/model_22_x12s/RADIO/models.txt ${TESTS_PATH}/model_22_x12s/MODELS/model1.bin - COMMAND mkdir -p model_22_x10 && cd model_22_x10 && unzip -o -DD ../model_22_x10.otx - COMMAND mkdir -p model_22_x12s && cd model_22_x12s && unzip -o -DD ../model_22_x12s.otx - WORKING_DIRECTORY ${TESTS_PATH} - ) - add_custom_target(x10-model-test-files - DEPENDS ${TESTS_PATH}/model_22_x10/RADIO/radio.bin ${TESTS_PATH}/model_22_x10/RADIO/models.txt ${TESTS_PATH}/model_22_x10/MODELS/model1.bin - ) - add_custom_target(x12s-model-test-files - DEPENDS ${TESTS_PATH}/model_22_x12s/RADIO/radio.bin ${TESTS_PATH}/model_22_x12s/RADIO/models.txt ${TESTS_PATH}/model_22_x12s/MODELS/model1.bin + + set(EXTRACT_MODEL_FILES model_22_x12s model_22_x10) + + foreach(model_file ${EXTRACT_MODEL_FILES}) + add_custom_command( + DEPENDS ${TESTS_PATH}/${model_file}.otx + OUTPUT ${TESTS_BUILD_PATH}/${model_file}/RADIO/radio.bin + COMMAND mkdir -p ${model_file} && cd ${model_file} && unzip -o -q -DD ${TESTS_PATH}/${model_file}.otx >/dev/null + WORKING_DIRECTORY ${TESTS_BUILD_PATH} ) + add_custom_target(${model_file}_files + DEPENDS ${TESTS_BUILD_PATH}/${model_file}/RADIO/radio.bin + ) + set(HORUS_MODEL_FILES ${HORUS_MODEL_FILES} ${model_file}_files) + endforeach() endif() if(WIN32) @@ -54,10 +55,7 @@ if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND) add_executable(gtests-radio EXCLUDE_FROM_ALL ${TEST_SRC_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/location.h ${RADIO_SRC} ../targets/simu/simpgmspace.cpp ../targets/simu/simueeprom.cpp ../targets/simu/simufatfs.cpp) add_dependencies(gtests-radio ${FIRMWARE_DEPENDENCIES} gtests-radio-lib) if(PCB STREQUAL X12S OR PCB STREQUAL X10) - add_dependencies(gtests-radio - x10-model-test-files - x12s-model-test-files - ) + add_dependencies(gtests-radio ${HORUS_MODEL_FILES}) endif() target_link_libraries(gtests-radio gtests-radio-lib pthread Qt5::Core Qt5::Widgets) message(STATUS "Added optional gtests target") diff --git a/radio/src/tests/conversions.cpp b/radio/src/tests/conversions.cpp index c3bcb895b..cbc778b1f 100644 --- a/radio/src/tests/conversions.cpp +++ b/radio/src/tests/conversions.cpp @@ -33,7 +33,7 @@ void loadEEPROMFile(const char * filename) #if defined(PCBX9DP) TEST(Conversions, ConversionX9DPFrom22) { - loadEEPROMFile(TESTS_PATH "/eeprom_22_x9d+.bin"); + loadEEPROMFile(TESTS_BUILD_PATH "/eeprom_22_x9d+.bin"); eepromOpen(); eeLoadGeneralSettingsData(); @@ -72,7 +72,7 @@ TEST(Conversions, ConversionX9DPFrom22) TEST(Conversions, ConversionX9DPFrom23) { - loadEEPROMFile(TESTS_PATH "/eeprom_23_x9d+.bin"); + loadEEPROMFile(TESTS_BUILD_PATH "/eeprom_23_x9d+.bin"); eepromOpen(); eeLoadGeneralSettingsData(); @@ -116,7 +116,7 @@ TEST(Conversions, ConversionX9DPFrom23) #if defined(PCBXLITE) TEST(Conversions, ConversionXLiteFrom22) { - loadEEPROMFile(TESTS_PATH "/eeprom_22_xlite.bin"); + loadEEPROMFile(TESTS_BUILD_PATH "/eeprom_22_xlite.bin"); eepromOpen(); eeLoadGeneralSettingsData(); @@ -164,7 +164,7 @@ TEST(Conversions, ConversionXLiteFrom22) #if defined(PCBX7) TEST(Conversions, ConversionX7From22) { - loadEEPROMFile(TESTS_PATH "/eeprom_22_x7.bin"); + loadEEPROMFile(TESTS_BUILD_PATH "/eeprom_22_x7.bin"); eepromOpen(); eeLoadGeneralSettingsData(); @@ -217,7 +217,7 @@ TEST(Conversions, ConversionX7From22) #if defined(PCBX10) TEST(Conversions, ConversionX10From22) { - simuFatfsSetPaths(TESTS_PATH "/model_22_x10/", TESTS_PATH "/model_22_x10/"); + simuFatfsSetPaths(TESTS_BUILD_PATH "/model_22_x10/", TESTS_BUILD_PATH "/model_22_x10/"); loadRadioSettings("/RADIO/radio.bin"); loadModel("model1.bin"); @@ -293,7 +293,7 @@ TEST(Conversions, ConversionX10From22) #if defined(PCBX12S) TEST(Conversions, ConversionX12SFrom22) { - simuFatfsSetPaths(TESTS_PATH "/model_22_x12s/", TESTS_PATH "/model_22_x12s/"); + simuFatfsSetPaths(TESTS_BUILD_PATH "/model_22_x12s/", TESTS_BUILD_PATH "/model_22_x12s/"); loadRadioSettings("/RADIO/radio.bin"); loadModel("model1.bin"); diff --git a/radio/src/tests/location.h.in b/radio/src/tests/location.h.in index 359e110b1..e2eeac460 100644 --- a/radio/src/tests/location.h.in +++ b/radio/src/tests/location.h.in @@ -1 +1,2 @@ -#define TESTS_PATH "@TESTS_PATH@" +#define TESTS_PATH "@TESTS_PATH@" +#define TESTS_BUILD_PATH "@TESTS_BUILD_PATH@" diff --git a/radio/src/tests/model_22_x12s.otx b/radio/src/tests/model_22_x12s.otx index 404df346013ac88b8b6bda4e699653796107fe7a..ac403366218bbc03cbd34223244f1aa633cebf0c 100644 GIT binary patch delta 178 zcmZn`p2$Agg4sfFTX$Y;X$3a}Bg{kum~#y^CKH{6U8`nn07KwcHvZz ahw5Qq2=HcQV*mnXAY=kMsuE}_0|Nm0J|xKi literal 2435 zcmWIWW@h1H0D);q%Kl&mln`Z*VaUx-NzI8jGK#M-G%D8j^>=ag3Dyq{;bdU0w#$nJ z;nE6j21b?_%nS@*A^>Qd2+#lyuyMzV-c7#=EzZs>IcqQX!qQUpe3GDd$~GmH&0RCjWCiufGBVU1S$A|d(+Pzj z{Wq_^hl{cN{cyra>0m=kg#k|#(D4jE%nHx!W@7jeesZ?Vq93A@ejUv6sj4wBJAUI_ z6u-UGuQ}g2mxyfSnX+!z{z-3sE{XL!a!zi$RY(x`ukQ!sU(Xm%rtl z+pYAVd+!TIP%!V<#Rv*9>=7V>5n@4(E}s4*gugiZk>|odYd|p~hr={*@E7ZqRFvQg z{_byQ{XNfW_B}ntda18P(YNv&Cx2DBy|m=a`hSXGpml9^8^qEG9uG}!s{ z_4%6a##0ae|1V%mlUS~})NrZhQcKnoPm&T6n7RvXex3awtTcDlas`GZvrJqTyqYPo z;;;m(GH1Rf;vw+JBs70y`cO z>bnzBlRZ1o@yH4NkxgE#Qz)KY{?Ra zVg}tjE24n{z!2k3=zC&duz*joaAJa#GPjjXsQ0cYz4M-03p@_2ZLc_Rgv z!Gs=g=EQ*o2M$aDC3ca_O9G7=`p-RCF82g1<>5&&ay#h3B>ykm*ubOvPo4KX)O0_Y z!v|Z+XJnFN#$MuxGDraZ0s;aIZyiB2IG8Xi09Hr^fKm8^jK)>`!;EHNSkefpXs{ZM zoMZ4=g5CWhDDH0rW=K>^U`Yp`$q45oCmcDb$)HkuN#l7OCWCE*mZikmfm&=L2ay#M zcGn}NEqqqsD%@aJfFk%i&qXv}iF}%&n2Fg`jKv)9| Kua7{j3=9Bl_Nop5