diff --git a/test/mocks/CMakeLists.txt b/test/mocks/CMakeLists.txt index af82728..5322dfb 100644 --- a/test/mocks/CMakeLists.txt +++ b/test/mocks/CMakeLists.txt @@ -4,8 +4,11 @@ add_library(test-mocks STATIC test-mocks.cpp test-mocks.h test-mocks_Namespace.h - test-mocks_Defs.h test-mocks_SerialMock.cpp test-mocks_SerialMock.hpp test-mocks_SerialMock.h ) + +target_link_libraries(test-mocks + midi +) diff --git a/test/mocks/test-mocks_Defs.h b/test/mocks/test-mocks_Defs.h deleted file mode 100644 index 9ed453a..0000000 --- a/test/mocks/test-mocks_Defs.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#include "test-mocks.h" -#include - -BEGIN_TEST_MOCKS_NAMESPACE - -typedef uint8_t uint8; - -END_TEST_MOCKS_NAMESPACE diff --git a/test/mocks/test-mocks_SerialMock.h b/test/mocks/test-mocks_SerialMock.h index 028205d..f3ab833 100644 --- a/test/mocks/test-mocks_SerialMock.h +++ b/test/mocks/test-mocks_SerialMock.h @@ -1,39 +1,11 @@ #pragma once #include "test-mocks.h" -#include "test-mocks_Defs.h" +#include +#include BEGIN_TEST_MOCKS_NAMESPACE -template -class RingBuffer -{ -public: - RingBuffer(); - ~RingBuffer(); - -public: - int getLength() const; - bool isEmpty() const; - -public: - void write(DataType inData); - void write(const DataType* inData, int inSize); - void clear(); - -public: - DataType peek() const; - DataType read(); - void read(DataType* outData, int inSize); - -private: - DataType mData[Size]; - DataType* mWriteHead; - DataType* mReadHead; -}; - -// ----------------------------------------------------------------------------- - template class SerialMock { @@ -44,14 +16,14 @@ public: public: // Arduino Serial API void begin(int inBaudrate); int available() const; - void write(uint8 inData); - uint8 read(); + void write(uint8_t inData); + uint8_t read(); public: // Test Helpers API void moveTxToRx(); // Simulate loopback public: - typedef RingBuffer Buffer; + typedef midi::RingBuffer Buffer; Buffer mTxBuffer; Buffer mRxBuffer; int mBaudrate; diff --git a/test/mocks/test-mocks_SerialMock.hpp b/test/mocks/test-mocks_SerialMock.hpp index c0181b2..3c06e29 100644 --- a/test/mocks/test-mocks_SerialMock.hpp +++ b/test/mocks/test-mocks_SerialMock.hpp @@ -2,103 +2,6 @@ BEGIN_TEST_MOCKS_NAMESPACE -template -RingBuffer::RingBuffer() - : mWriteHead(mData) - , mReadHead(mData) -{ - memset(mData, DataType(0), Size * sizeof(DataType)); -} - -template -RingBuffer::~RingBuffer() -{ -} - -// ----------------------------------------------------------------------------- - -template -int RingBuffer::getLength() const -{ - if (mReadHead == mWriteHead) - { - return 0; - } - else if (mWriteHead > mReadHead) - { - return int(mWriteHead - mReadHead); - } - else - { - return int(mWriteHead - mData) + Size - int(mReadHead - mData); - } -} - -template -bool RingBuffer::isEmpty() const -{ - return mReadHead == mWriteHead; -} - -// ----------------------------------------------------------------------------- - -template -void RingBuffer::write(DataType inData) -{ - *mWriteHead++ = inData; - if (mWriteHead >= mData + Size) - { - mWriteHead = mData; - } -} - -template -void RingBuffer::write(const DataType* inData, int inSize) -{ - for (int i = 0; i < inSize; ++i) - { - write(inData[i]); - } -} - -template -void RingBuffer::clear() -{ - memset(mData, DataType(0), Size * sizeof(DataType)); - mReadHead = mData; - mWriteHead = mData; -} - -// ----------------------------------------------------------------------------- - -template -DataType RingBuffer::peek() const -{ - return *mReadHead; -} - -template -DataType RingBuffer::read() -{ - const DataType data = *mReadHead++; - if (mReadHead >= mData + Size) - { - mReadHead = mData; - } - return data; -} - -template -void RingBuffer::read(DataType* outData, int inSize) -{ - for (int i = 0; i < inSize; ++i) - { - outData[i] = read(); - } -} - -// ============================================================================= - template SerialMock::SerialMock() { @@ -126,13 +29,13 @@ int SerialMock::available() const } template -void SerialMock::write(uint8 inData) +void SerialMock::write(uint8_t inData) { mTxBuffer.write(inData); } template -uint8 SerialMock::read() +uint8_t SerialMock::read() { return mRxBuffer.read(); } diff --git a/test/unit-tests/CMakeLists.txt b/test/unit-tests/CMakeLists.txt index 59bfb7b..a63cbd4 100644 --- a/test/unit-tests/CMakeLists.txt +++ b/test/unit-tests/CMakeLists.txt @@ -3,14 +3,13 @@ include(CMakeToolsHelpers OPTIONAL) project(unit-tests) include_directories( - ${unit-tests_SOURCE_DIR} - ${gtest_SOURCE_DIR}/include - ${gmock_SOURCE_DIR}/include - "../../external/midi-usb/src" + "${unit-tests_SOURCE_DIR}" + "${gtest_SOURCE_DIR}/include" + "${gmock_SOURCE_DIR}/include" + "${ROOT_SOURCE_DIR}/external/midi-usb/src" ) add_executable(unit-tests - unit-tests.cpp unit-tests.h unit-tests_Namespace.h @@ -20,7 +19,6 @@ add_executable(unit-tests tests/unit-tests_Settings.h tests/unit-tests_SysExCodec.cpp tests/unit-tests_RingBuffer.cpp - tests/unit-tests_SerialMock.cpp tests/unit-tests_MidiInput.cpp tests/unit-tests_MidiInputCallbacks.cpp tests/unit-tests_MidiOutput.cpp diff --git a/test/unit-tests/tests/unit-tests_SerialMock.cpp b/test/unit-tests/tests/unit-tests_SerialMock.cpp deleted file mode 100644 index ae204fe..0000000 --- a/test/unit-tests/tests/unit-tests_SerialMock.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "unit-tests.h" -#include - -BEGIN_UNNAMED_NAMESPACE - -USING_NAMESPACE_TEST_MOCKS -using namespace testing; - -TEST(RingBufferMock, initialState) -{ - typedef RingBuffer Buffer; - Buffer buffer; - EXPECT_EQ(buffer.getLength(), 0); - EXPECT_EQ(buffer.isEmpty(), true); - buffer.clear(); - EXPECT_EQ(buffer.getLength(), 0); - EXPECT_EQ(buffer.isEmpty(), true); -} - -TEST(RingBufferMock, uint8) -{ - typedef RingBuffer Buffer; - Buffer buffer; - - buffer.write(42); - EXPECT_EQ(buffer.getLength(), 1); - EXPECT_EQ(buffer.isEmpty(), false); - - const uint8 read = buffer.read(); - EXPECT_EQ(read, 42); - EXPECT_EQ(buffer.getLength(), 0); - EXPECT_EQ(buffer.isEmpty(), true); - - const uint8 data[] = "Hello, World!"; - buffer.write(data, 13); - EXPECT_EQ(buffer.getLength(), 5); // 13 % 8 - EXPECT_EQ(buffer.isEmpty(), false); - - uint8 output[8] = { 0 }; - buffer.read(output, 8); - const uint8 expected[8] = { - 'o', 'r', 'l', 'd', '!', ',', ' ', 'W', - }; - EXPECT_THAT(output, ContainerEq(expected)); - - buffer.clear(); - EXPECT_EQ(buffer.getLength(), 0); - EXPECT_EQ(buffer.isEmpty(), true); -} - -TEST(RingBufferMock, uint32) -{ - typedef RingBuffer Buffer; - Buffer buffer; - buffer.write(42); - EXPECT_EQ(buffer.getLength(), 1); - EXPECT_EQ(buffer.isEmpty(), false); - const uint8 read = buffer.read(); - EXPECT_EQ(read, 42); - EXPECT_EQ(buffer.getLength(), 0); - EXPECT_EQ(buffer.isEmpty(), true); -} - -END_UNNAMED_NAMESPACE