kopia lustrzana https://github.com/lora-aprs/LoRa_APRS_iGate
add first unittest
rodzic
3cab03ab7e
commit
7067813e6f
|
@ -11,20 +11,6 @@
|
||||||
|
|
||||||
#include <logger.h>
|
#include <logger.h>
|
||||||
|
|
||||||
enum BoardType {
|
|
||||||
eHELTEC_WIFI_LORA_32_V1,
|
|
||||||
eHELTEC_WIFI_LORA_32_V2,
|
|
||||||
eTTGO_LORA32_V1,
|
|
||||||
eTTGO_LORA32_V2,
|
|
||||||
eTTGO_T_Beam_V0_7,
|
|
||||||
eTTGO_T_Beam_V1_0,
|
|
||||||
eLILYGO_POE_ETH_BOARD,
|
|
||||||
eWT32_ETH_BOARD,
|
|
||||||
eTRACKERD,
|
|
||||||
eGUALTHERIUS_LORAHAM_v100,
|
|
||||||
eGUALTHERIUS_LORAHAM_v106
|
|
||||||
};
|
|
||||||
|
|
||||||
class OledPins {
|
class OledPins {
|
||||||
public:
|
public:
|
||||||
explicit OledPins(int8_t sda, int8_t scl, int8_t reset = -1, int8_t addr = 0x3C);
|
explicit OledPins(int8_t sda, int8_t scl, int8_t reset = -1, int8_t addr = 0x3C);
|
||||||
|
@ -80,6 +66,20 @@ public:
|
||||||
int8_t Pin;
|
int8_t Pin;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum BoardType {
|
||||||
|
eHELTEC_WIFI_LORA_32_V1,
|
||||||
|
eHELTEC_WIFI_LORA_32_V2,
|
||||||
|
eTTGO_LORA32_V1,
|
||||||
|
eTTGO_LORA32_V2,
|
||||||
|
eTTGO_T_Beam_V0_7,
|
||||||
|
eTTGO_T_Beam_V1_0,
|
||||||
|
eLILYGO_POE_ETH_BOARD,
|
||||||
|
eWT32_ETH_BOARD,
|
||||||
|
eTRACKERD,
|
||||||
|
eGUALTHERIUS_LORAHAM_v100,
|
||||||
|
eGUALTHERIUS_LORAHAM_v106
|
||||||
|
};
|
||||||
|
|
||||||
class BoardConfig {
|
class BoardConfig {
|
||||||
public:
|
public:
|
||||||
explicit BoardConfig(String name, BoardType type, OledPins oled, LoraPins lora, GpsPins gps = GpsPins(), EthernetPins ethernet = EthernetPins(), ButtonPins button = ButtonPins(), bool needcheckpowerchip = false, bool powercheckstatus = false);
|
explicit BoardConfig(String name, BoardType type, OledPins oled, LoraPins lora, GpsPins gps = GpsPins(), EthernetPins ethernet = EthernetPins(), ButtonPins button = ButtonPins(), bool needcheckpowerchip = false, bool powercheckstatus = false);
|
||||||
|
@ -106,7 +106,9 @@ public:
|
||||||
|
|
||||||
BoardConfig const *getBoardConfig(String name);
|
BoardConfig const *getBoardConfig(String name);
|
||||||
|
|
||||||
|
#ifndef UNIT_TEST
|
||||||
private:
|
private:
|
||||||
|
#endif
|
||||||
const std::list<BoardConfig const *> &_boardConfigs;
|
const std::list<BoardConfig const *> &_boardConfigs;
|
||||||
|
|
||||||
bool checkOledConfig(BoardConfig const *boardConfig, logging::Logger &logger);
|
bool checkOledConfig(BoardConfig const *boardConfig, logging::Logger &logger);
|
||||||
|
|
|
@ -21,6 +21,7 @@ check_tool = cppcheck
|
||||||
check_flags =
|
check_flags =
|
||||||
cppcheck: --suppress=*:*.pio\* --inline-suppr -DCPPCHECK --force lib -ilib/TimeLib -ilib/LoRa -ilib/NTPClient
|
cppcheck: --suppress=*:*.pio\* --inline-suppr -DCPPCHECK --force lib -ilib/TimeLib -ilib/LoRa -ilib/NTPClient
|
||||||
check_skip_packages = yes
|
check_skip_packages = yes
|
||||||
|
test_build_src = yes
|
||||||
#monitor_flags = --raw
|
#monitor_flags = --raw
|
||||||
# activate for OTA Update, use the CALLSIGN from is-cfg.json as upload_port:
|
# activate for OTA Update, use the CALLSIGN from is-cfg.json as upload_port:
|
||||||
#upload_protocol = espota
|
#upload_protocol = espota
|
||||||
|
@ -28,10 +29,10 @@ check_skip_packages = yes
|
||||||
|
|
||||||
[env:lora_board]
|
[env:lora_board]
|
||||||
board = esp32doit-devkit-v1
|
board = esp32doit-devkit-v1
|
||||||
build_flags = -Werror -Wall
|
build_flags = -Werror -Wall -DUNITY_INCLUDE_PRINT_FORMATTED
|
||||||
|
|
||||||
[env:lora_board_debug]
|
[env:lora_board_debug]
|
||||||
board = esp32doit-devkit-v1
|
board = esp32doit-devkit-v1
|
||||||
build_flags = -Werror -Wall -DCORE_DEBUG_LEVEL=5
|
build_flags = -Werror -Wall -DCORE_DEBUG_LEVEL=5 -DUNITY_INCLUDE_PRINT_FORMATTED
|
||||||
build_type = debug
|
build_type = debug
|
||||||
monitor_filters = esp32_exception_decoder
|
monitor_filters = esp32_exception_decoder
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#ifndef UNIT_TEST
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include <APRS-IS.h>
|
#include <APRS-IS.h>
|
||||||
|
@ -188,3 +189,5 @@ void loop() {
|
||||||
syslogSet = true;
|
syslogSet = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include <unity.h>
|
||||||
|
|
||||||
|
#include <BoardFinder.h>
|
||||||
|
|
||||||
|
std::list<BoardConfig const *> boardConfigs;
|
||||||
|
logging::Logger logger;
|
||||||
|
BoardFinder *finder = 0;
|
||||||
|
|
||||||
|
void setUp(void) {
|
||||||
|
boardConfigs.push_back(&TTGO_LORA32_V1);
|
||||||
|
boardConfigs.push_back(&TTGO_LORA32_V2);
|
||||||
|
boardConfigs.push_back(&TTGO_T_Beam_V1_0);
|
||||||
|
boardConfigs.push_back(&LILYGO_POE_ETH_BOARD);
|
||||||
|
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V1);
|
||||||
|
boardConfigs.push_back(&HELTEC_WIFI_LORA_32_V2);
|
||||||
|
|
||||||
|
finder = new BoardFinder(boardConfigs);
|
||||||
|
|
||||||
|
logger.setSerial(&Serial);
|
||||||
|
}
|
||||||
|
|
||||||
|
void tearDown(void) {
|
||||||
|
delete finder;
|
||||||
|
finder = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_oled_found(void) {
|
||||||
|
bool found = false;
|
||||||
|
for (auto boardConfig : boardConfigs) {
|
||||||
|
if (finder->checkOledConfig(boardConfig, logger)) {
|
||||||
|
TEST_PRINTF("found: %s", boardConfig->Name.c_str());
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TEST_ASSERT_TRUE(found);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_modem_found(void) {
|
||||||
|
bool found = false;
|
||||||
|
for (auto boardConfig : boardConfigs) {
|
||||||
|
if (finder->checkModemConfig(boardConfig)) {
|
||||||
|
TEST_PRINTF("found: %s", boardConfig->Name.c_str());
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TEST_ASSERT_TRUE(found);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_search_board_config(void) {
|
||||||
|
BoardConfig const *boardConfig = finder->searchBoardConfig(logger);
|
||||||
|
TEST_ASSERT_NOT_NULL(boardConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_get_board_config(void) {
|
||||||
|
BoardConfig const *boardConfig = finder->getBoardConfig("LILYGO_POE_ETH_BOARD");
|
||||||
|
TEST_ASSERT_NOT_NULL(boardConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_get_board_config_negative(void) {
|
||||||
|
BoardConfig const *boardConfig = finder->getBoardConfig("NO BOARD");
|
||||||
|
TEST_ASSERT_NULL(boardConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
UNITY_BEGIN();
|
||||||
|
RUN_TEST(test_oled_found);
|
||||||
|
RUN_TEST(test_modem_found);
|
||||||
|
RUN_TEST(test_search_board_config);
|
||||||
|
RUN_TEST(test_get_board_config);
|
||||||
|
RUN_TEST(test_get_board_config_negative);
|
||||||
|
UNITY_END();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
}
|
Ładowanie…
Reference in New Issue