EEPROM conversions tests added to X12S (RADIO)
This commit is contained in:
@@ -70,8 +70,8 @@ int convertSwitch_218_to_219(int swtch)
|
||||
{
|
||||
// on X7: 2 additional switches
|
||||
// on X9D / X9D+: 1 additional switch
|
||||
// on xlite : 2 more storage switches
|
||||
|
||||
// on XLite: 2 additional storage switches
|
||||
// on X10: 2 additional pots => 12 multipos switches
|
||||
#if defined(PCBX7) || defined(PCBHORUS) || defined(PCBX9D) || defined(PCBX9DP) || defined(PCBXLITE)
|
||||
if (swtch < 0)
|
||||
return -convertSwitch_218_to_219(-swtch);
|
||||
@@ -95,6 +95,9 @@ int convertSwitch_218_to_219(int swtch)
|
||||
#if defined(PCBHORUS)
|
||||
if (swtch >= SWSRC_SI0)
|
||||
swtch += 2 * 3;
|
||||
#endif
|
||||
|
||||
#if defined(PCBX10)
|
||||
if (swtch >= SWSRC_FIRST_MULTIPOS_SWITCH + 3 * XPOTS_MULTIPOS_COUNT)
|
||||
swtch += 2 * XPOTS_MULTIPOS_COUNT;
|
||||
#endif
|
||||
|
||||
@@ -3,23 +3,31 @@
|
||||
if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND)
|
||||
add_library(gtests-radio-lib STATIC EXCLUDE_FROM_ALL ${GTEST_SRCDIR}/src/gtest-all.cc )
|
||||
target_include_directories(gtests-radio-lib PUBLIC ${GTEST_INCDIR} ${GTEST_INCDIR}/gtest ${GTEST_SRCDIR})
|
||||
add_definitions(-DSIMU)
|
||||
add_definitions(-DGTESTS)
|
||||
add_definitions(-DSIMU -DGTESTS)
|
||||
remove_definitions(-DCLI)
|
||||
set(TESTS_PATH ${RADIO_SRC_DIRECTORY}/tests)
|
||||
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")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -O0 ${WARNING_FLAGS}")
|
||||
use_cxx11() # ensure gnu++11 in CXX_FLAGS with CMake < 3.1
|
||||
|
||||
if(PCB STREQUAL X12S OR PCB STREQUAL X10)
|
||||
add_custom_command(
|
||||
MAIN_DEPENDENCY ${TESTS_PATH}/model_22_x10.otx
|
||||
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
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
@@ -42,15 +50,14 @@ if(GTEST_INCDIR AND GTEST_SRCDIR AND Qt5Widgets_FOUND)
|
||||
# struct packing breaks on MinGW w/out -mno-ms-bitfields: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991 & http://stackoverflow.com/questions/24015852/struct-packing-and-alignment-with-mingw
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mno-ms-bitfields")
|
||||
endif()
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0")
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 ${WARNING_FLAGS}")
|
||||
|
||||
use_cxx11() # ensure gnu++11 in CXX_FLAGS with CMake < 3.1
|
||||
|
||||
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)
|
||||
add_dependencies(gtests-radio
|
||||
x10-model-test-files
|
||||
x12s-model-test-files
|
||||
)
|
||||
endif()
|
||||
target_link_libraries(gtests-radio gtests-radio-lib pthread Qt5::Core Qt5::Widgets)
|
||||
message(STATUS "Added optional gtests target")
|
||||
|
||||
@@ -56,7 +56,7 @@ TEST(Conversions, ConversionX9DPFrom22)
|
||||
EXPECT_ZSTREQ("Test", g_model.header.name);
|
||||
EXPECT_EQ(TMRMODE_COUNT - 1 + SWSRC_SA0, g_model.timers[0].mode);
|
||||
EXPECT_EQ(80, g_model.mixData[0].weight);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]);
|
||||
@@ -197,7 +197,7 @@ TEST(Conversions, ConversionX7From22)
|
||||
EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
EXPECT_EQ(9, g_model.telemetrySensors[0].frskyInstance.physID);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
|
||||
EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]);
|
||||
EXPECT_ZSTREQ("FMtest", g_model.flightModeData[1].name);
|
||||
@@ -262,7 +262,7 @@ TEST(Conversions, ConversionX10From22)
|
||||
EXPECT_EQ(MIXSRC_LS, g_model.mixData[3].srcRaw); // LS
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.mixData[5].srcRaw);
|
||||
EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_model.mixData[5].swtch);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
EXPECT_EQ(LS_FUNC_VPOS, g_model.logicalSw[0].func);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.logicalSw[0].v1);
|
||||
@@ -290,3 +290,70 @@ TEST(Conversions, ConversionX10From22)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBX12S)
|
||||
TEST(Conversions, ConversionX12SFrom22)
|
||||
{
|
||||
simuFatfsSetPaths(TESTS_PATH "/model_22_x12s/", TESTS_PATH "/model_22_x12s/");
|
||||
|
||||
loadRadioSettings("/RADIO/radio.bin");
|
||||
loadModel("model1.bin");
|
||||
|
||||
EXPECT_EQ(219, g_eeGeneral.version);
|
||||
EXPECT_EQ(-30, g_eeGeneral.vBatMin);
|
||||
EXPECT_EQ(8, g_eeGeneral.speakerVolume);
|
||||
EXPECT_STRNEQ("en", g_eeGeneral.ttsLanguage);
|
||||
EXPECT_STRNEQ("model1.bin", g_eeGeneral.currModelFilename);
|
||||
|
||||
EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_eeGeneral.customFn[0].swtch);
|
||||
EXPECT_EQ(FUNC_LOGS, g_eeGeneral.customFn[0].func);
|
||||
EXPECT_EQ(20, g_eeGeneral.customFn[0].all.val);
|
||||
|
||||
EXPECT_EQ(SWSRC_ON, g_eeGeneral.customFn[1].swtch);
|
||||
EXPECT_EQ(FUNC_VOLUME, g_eeGeneral.customFn[1].func);
|
||||
EXPECT_EQ(MIXSRC_RS, g_eeGeneral.customFn[1].all.val);
|
||||
|
||||
EXPECT_ZSTREQ("Tes", g_eeGeneral.switchNames[0]);
|
||||
EXPECT_EQ(SWITCH_3POS, SWITCH_CONFIG(0));
|
||||
|
||||
EXPECT_ZSTREQ("BT", g_eeGeneral.bluetoothName);
|
||||
EXPECT_STREQ("Default", g_eeGeneral.themeName);
|
||||
|
||||
EXPECT_EQ(WHITE, g_eeGeneral.themeData.options[0].unsignedValue);
|
||||
EXPECT_EQ(RED, g_eeGeneral.themeData.options[1].unsignedValue);
|
||||
|
||||
EXPECT_ZSTREQ("Test", g_model.header.name);
|
||||
EXPECT_EQ(0, g_model.noGlobalFunctions);
|
||||
EXPECT_EQ(0, g_model.beepANACenter);
|
||||
EXPECT_EQ(80, g_model.mixData[0].weight);
|
||||
EXPECT_EQ(MIXSRC_MAX, g_model.mixData[2].srcRaw); // MAX
|
||||
EXPECT_EQ(MIXSRC_LS, g_model.mixData[3].srcRaw); // LS
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.mixData[5].srcRaw);
|
||||
EXPECT_EQ(SWSRC_TELEMETRY_STREAMING, g_model.mixData[5].swtch);
|
||||
EXPECT_EQ(-100, g_model.limitData[0].max); // 90.0
|
||||
EXPECT_EQ(80, g_model.expoData[0].weight);
|
||||
EXPECT_EQ(LS_FUNC_VPOS, g_model.logicalSw[0].func);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TRAINER, g_model.logicalSw[0].v1);
|
||||
EXPECT_EQ(0, g_model.logicalSw[0].v2);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TELEM+19*3, g_model.logicalSw[1].v1); // TELE:20
|
||||
EXPECT_EQ(20, g_model.logicalSw[1].v2);
|
||||
EXPECT_EQ(SWSRC_FIRST_LOGICAL_SWITCH, g_model.logicalSw[1].andsw);
|
||||
EXPECT_EQ(SWASH_TYPE_120X, g_model.swashR.type);
|
||||
EXPECT_ZSTREQ("Test", g_model.flightModeData[0].name);
|
||||
EXPECT_EQ(10, g_model.flightModeData[0].gvars[0]);
|
||||
EXPECT_ZSTREQ("Tes", g_model.gvars[0].name);
|
||||
EXPECT_EQ(MODULE_TYPE_R9M_PXX1, g_model.moduleData[EXTERNAL_MODULE].type);
|
||||
EXPECT_EQ(MODULE_SUBTYPE_R9M_EU, g_model.moduleData[EXTERNAL_MODULE].subType);
|
||||
EXPECT_ZSTREQ("Rud", g_model.inputNames[0]);
|
||||
EXPECT_ZSTREQ("Tes", g_model.telemetrySensors[0].label);
|
||||
EXPECT_EQ(10, g_model.telemetrySensors[0].id);
|
||||
EXPECT_EQ(9, g_model.telemetrySensors[0].frskyInstance.physID);
|
||||
EXPECT_EQ((NUM_POTS + NUM_SLIDERS + 3), g_model.thrTraceSrc); // CH3
|
||||
|
||||
EXPECT_STREQ("Layout2P1", g_model.screenData[0].layoutName);
|
||||
EXPECT_STREQ("ModelBmp", g_model.screenData[0].layoutData.zones[0].widgetName);
|
||||
EXPECT_STREQ("Value", g_model.topbarData.zones[0].widgetName);
|
||||
EXPECT_EQ(MIXSRC_FIRST_TELEM, g_model.topbarData.zones[0].widgetData.options[0].unsignedValue);
|
||||
EXPECT_EQ(MIXSRC_RS, g_model.screenData[0].layoutData.zones[2].widgetData.options[0].unsignedValue);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user