Skip to content

Commit

Permalink
Allow building main executable with fake blink1 library for testing w…
Browse files Browse the repository at this point in the history
…ithout hardware
  • Loading branch information
evan1026 committed May 27, 2022
1 parent 7a6b5c0 commit 6fd240f
Show file tree
Hide file tree
Showing 9 changed files with 65 additions and 20 deletions.
23 changes: 20 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,21 @@ set(SOURCES
${SOURCE_DIR}/config/ConfigParser.cpp
${SOURCE_DIR}/config/PatternCommand.cpp
)
add_executable(${EXECUTABLE_NAME} ${SOURCE_DIR}/main.cpp ${SOURCES})

set(EXECUTABLE_SOURCES
${SOURCES}
${SOURCE_DIR}/main.cpp
)

if (DEFINED USE_FAKE_BLINK1TOOL)
add_definitions(-DUSE_FAKE_BLINK1TOOL)
set(EXECUTABLE_SOURCES
${EXECUTABLE_SOURCES}
${SOURCE_DIR}/blink-lib/FakeBlink1Lib.cpp
)
endif (DEFINED USE_FAKE_BLINK1TOOL)

add_executable(${EXECUTABLE_NAME} ${EXECUTABLE_SOURCES})

set(WARNINGS "-Wall -Wextra -Wshadow -Wnon-virtual-dtor -Wold-style-cast -Wcast-align -Wunused -Woverloaded-virtual -Wpedantic -Wconversion -Wsign-conversion")
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
Expand Down Expand Up @@ -80,7 +94,10 @@ add_custom_target(libblink1_target DEPENDS ${LIB_BLINK1_LOC})
add_library(libblink1 STATIC IMPORTED GLOBAL)
set_target_properties(libblink1 PROPERTIES IMPORTED_LOCATION ${LIB_BLINK1_LOC})
add_dependencies(libblink1 libblink1_target)
target_link_libraries(${EXECUTABLE_NAME} libblink1)

if (NOT DEFINED USE_FAKE_BLINK1TOOL)
target_link_libraries(${EXECUTABLE_NAME} libblink1)
endif (NOT DEFINED USE_FAKE_BLINK1TOOL)

###########
# Testing #
Expand All @@ -91,11 +108,11 @@ set(TEST_EXECUTABLE_NAME ${EXECUTABLE_NAME}_test)
set(TEST_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/test)

set(TEST_SOURCES
${SOURCE_DIR}/blink-lib/FakeBlink1Lib.cpp
${TEST_SOURCE_DIR}/blink-lib/Blink1Device_BadInit_test.cpp
${TEST_SOURCE_DIR}/blink-lib/Blink1Device_Blocking_test.cpp
${TEST_SOURCE_DIR}/blink-lib/Blink1Device_GoodInit_test.cpp
${TEST_SOURCE_DIR}/blink-lib/Blink1Device_GoodInitBadFunction_test.cpp
${TEST_SOURCE_DIR}/blink-lib/FakeBlink1Lib.cpp
${TEST_SOURCE_DIR}/blink-lib/PatternLineN_test.cpp
${TEST_SOURCE_DIR}/blink-lib/PatternLine_test.cpp
${TEST_SOURCE_DIR}/blink-lib/PlayState_test.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace fake_blink1_lib {
extern int cacheIndex;
extern std::string serial;
extern bool isMk2;
extern int patternLineLEDN;
extern uint8_t patternLineLEDN;
extern blink1_control::blink1_lib::PlayState playState;
extern int blink1Version;
extern bool successfulOperation;
Expand Down Expand Up @@ -55,9 +55,9 @@ namespace fake_blink1_lib {

void SET_RGB(blink1_control::blink1_lib::RGB rgb, long n);

long GET_FADE_MILLIS(long n);
uint16_t GET_FADE_MILLIS(long n);

void SET_FADE_MILLIS(long fadeMillis, long n);
void SET_FADE_MILLIS(uint16_t fadeMillis, long n);

blink1_control::blink1_lib::PatternLineN GET_PATTERN_LINE(long pos);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,31 @@
#include <algorithm>
#include <map>

#include "gtest/gtest.h"
#if __has_include("gtest/gtest.h")
#include "gtest/gtest.h"
#else
#include <iostream>
#include <sstream>
std::ostream& ADD_FAILURE() {
return std::cerr;
}
std::stringstream dumpStream;
std::ostream& EXPECT_TRUE(bool val) {
if (val) {
dumpStream.str("");
return dumpStream;
} else {
return std::cerr;
}
}
#endif

#include "blink1-lib.h"

#include "blink-lib/RGB.hpp"
#include "blink-lib/PlayState.hpp"
#include "blink-lib/PatternLineN.hpp"
#include "FakeBlink1Lib.hpp"
#include "blink-lib/FakeBlink1Lib.hpp"

using namespace blink1_control::blink1_lib;

Expand All @@ -19,7 +37,7 @@ std::map<long, PatternLineN> fake_blink1_lib::patternLines;
int fake_blink1_lib::cacheIndex = 0;
std::string fake_blink1_lib::serial;
bool fake_blink1_lib::isMk2;
int fake_blink1_lib::patternLineLEDN = 0;
uint8_t fake_blink1_lib::patternLineLEDN = 0;
PlayState fake_blink1_lib::playState;
int fake_blink1_lib::blink1Version = 0;
bool fake_blink1_lib::successfulOperation = false;
Expand Down Expand Up @@ -107,15 +125,15 @@ void fake_blink1_lib::SET_RGB(RGB rgb, long n) {
ledColors[n] = rgb;
}

long fake_blink1_lib::GET_FADE_MILLIS(long n) {
uint16_t fake_blink1_lib::GET_FADE_MILLIS(long n) {
if (ledFadeMillis.find(n) == ledFadeMillis.end()) {
ADD_FAILURE() << "LED fade millis " << n << " has not yet been initialized.";
return -1;
return 0;
}
return ledFadeMillis.at(n);
}

void fake_blink1_lib::SET_FADE_MILLIS(long fadeMillis, long n) {
void fake_blink1_lib::SET_FADE_MILLIS(uint16_t fadeMillis, long n) {
ledFadeMillis[n] = fadeMillis;
}

Expand Down Expand Up @@ -153,15 +171,15 @@ blink1_device* blink1_open() {
}
}

blink1_device* blink1_openByPath(const char* path) {
blink1_device* blink1_openByPath([[maybe_unused]] const char* path) {
return blink1_open();
}

blink1_device* blink1_openBySerial(const char* serial) {
blink1_device* blink1_openBySerial([[maybe_unused]] const char* serial) {
return blink1_open();
}

blink1_device* blink1_openById(uint32_t id) {
blink1_device* blink1_openById([[maybe_unused]] uint32_t id) {
return blink1_open();
}

Expand Down
10 changes: 10 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
#include "blink-lib.hpp"
#include "config.hpp"

#ifdef USE_FAKE_BLINK1TOOL
#include "blink-lib/FakeBlink1Lib.hpp"
#endif

using blink1_control::config::ConfigParser;
using blink1_control::config::PatternConfig;
using blink1_control::blink1_lib::Blink1Device;
Expand Down Expand Up @@ -46,6 +50,12 @@ int main(int argc, const char* argv[]) {

auto config = ConfigParser::parseConfig(configFileStream);


#ifdef USE_FAKE_BLINK1TOOL
fake_blink1_lib::SET_BLINK1_SUCCESSFUL_OPERATION(true);
fake_blink1_lib::SET_BLINK1_SUCCESSFUL_INIT(true);
#endif

Blink1Device blinkDevice;

if (!blinkDevice.good()) {
Expand Down
2 changes: 1 addition & 1 deletion test/blink-lib/Blink1Device_BadInit_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "gtest/gtest.h"
#include "blink-lib/Blink1Device.hpp"
#include "FakeBlink1Lib.hpp"
#include "blink-lib/FakeBlink1Lib.hpp"

using namespace blink1_control::blink1_lib;

Expand Down
2 changes: 1 addition & 1 deletion test/blink-lib/Blink1Device_Blocking_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "gtest/gtest.h"
#include "blink-lib/Blink1Device.hpp"
#include "FakeBlink1Lib.hpp"
#include "blink-lib/FakeBlink1Lib.hpp"

using namespace blink1_control::blink1_lib;

Expand Down
2 changes: 1 addition & 1 deletion test/blink-lib/Blink1Device_GoodInitBadFunction_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "gtest/gtest.h"
#include "blink-lib/Blink1Device.hpp"
#include "FakeBlink1Lib.hpp"
#include "blink-lib/FakeBlink1Lib.hpp"

using namespace blink1_control::blink1_lib;

Expand Down
2 changes: 1 addition & 1 deletion test/blink-lib/Blink1Device_GoodInit_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include "gtest/gtest.h"
#include "blink-lib/Blink1Device.hpp"
#include "FakeBlink1Lib.hpp"
#include "blink-lib/FakeBlink1Lib.hpp"

using namespace blink1_control::blink1_lib;

Expand Down
2 changes: 1 addition & 1 deletion test/config/PatternCommand_test.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

#include "gtest/gtest.h"
#include "config/PatternCommand.hpp"
#include "../blink-lib/FakeBlink1Lib.hpp"
#include "blink-lib/FakeBlink1Lib.hpp"

using namespace blink1_control::config;
using namespace blink1_control::blink1_lib;
Expand Down

0 comments on commit 6fd240f

Please sign in to comment.