Reworked unit tests.
This commit is contained in:
parent
f5b51bd211
commit
b5c2d8c12c
|
|
@ -1,2 +1,2 @@
|
|||
add_subdirectory(mocks)
|
||||
add_subdirectory(runner)
|
||||
add_subdirectory(unit-tests)
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
project(test-runner)
|
||||
|
||||
include_directories(${gtest_SOURCE_DIR}/include)
|
||||
|
||||
add_executable(test-runner
|
||||
test-runner.cpp
|
||||
test-runner.h
|
||||
test-runner_Namespace.h
|
||||
test-runner_Main.cpp
|
||||
test-runner_Main.h
|
||||
)
|
||||
target_link_libraries(test-runner
|
||||
test-mocks
|
||||
gtest
|
||||
)
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
#include "test-runner.h"
|
||||
|
||||
BEGIN_TEST_RUNNER_NAMESPACE
|
||||
|
||||
END_TEST_RUNNER_NAMESPACE
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "test-runner_Namespace.h"
|
||||
|
||||
BEGIN_TEST_RUNNER_NAMESPACE
|
||||
|
||||
END_TEST_RUNNER_NAMESPACE
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "test-runner.h"
|
||||
|
||||
BEGIN_TEST_RUNNER_NAMESPACE
|
||||
|
||||
END_TEST_RUNNER_NAMESPACE
|
||||
|
||||
int main(int argc, char **argv);
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#define TEST_RUNNER_NAMESPACE test_runner
|
||||
#define BEGIN_TEST_RUNNER_NAMESPACE namespace TEST_RUNNER_NAMESPACE {
|
||||
#define END_TEST_RUNNER_NAMESPACE }
|
||||
|
||||
#define USING_NAMESPACE_TEST_RUNNER using namespace TEST_RUNNER_NAMESPACE;
|
||||
|
||||
BEGIN_TEST_RUNNER_NAMESPACE
|
||||
|
||||
END_TEST_RUNNER_NAMESPACE
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
project(unit-tests)
|
||||
|
||||
include_directories(${gtest_SOURCE_DIR}/include)
|
||||
|
||||
add_executable(unit-tests
|
||||
|
||||
unit-tests.cpp
|
||||
unit-tests.h
|
||||
unit-tests_Namespace.h
|
||||
unit-tests_MidiMessage.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(unit-tests
|
||||
gtest
|
||||
midi
|
||||
test-mocks
|
||||
)
|
||||
|
||||
add_custom_command(TARGET unit-tests POST_BUILD
|
||||
COMMAND ${unit-tests_BINARY_DIR}/unit-tests
|
||||
)
|
||||
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
#include "test-runner_Main.h"
|
||||
#include <gtest/gtest.h>
|
||||
#include "unit-tests.h"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
#pragma once
|
||||
|
||||
#include "unit-tests_Namespace.h"
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
BEGIN_UNIT_TESTS_NAMESPACE
|
||||
|
||||
END_UNIT_TESTS_NAMESPACE
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
#include "unit-tests.h"
|
||||
#include <src/MIDI.h>
|
||||
#include <test/mocks/test-mocks_SerialMock.h>
|
||||
|
||||
BEGIN_UNNAMED_NAMESPACE
|
||||
|
||||
TEST(MidiMessage, hasTheRightProperties)
|
||||
{
|
||||
typedef midi::Message<42> Message;
|
||||
const Message message = Message();
|
||||
EXPECT_EQ(message.channel, 0);
|
||||
EXPECT_EQ(message.type, 0);
|
||||
EXPECT_EQ(message.data1, 0);
|
||||
EXPECT_EQ(message.data2, 0);
|
||||
EXPECT_EQ(message.valid, false);
|
||||
EXPECT_EQ(message.getSysExSize(), 0);
|
||||
}
|
||||
|
||||
template<typename Message>
|
||||
inline void setSysExSize(Message& ioMessage, unsigned inSize)
|
||||
{
|
||||
ioMessage.data2 = inSize >> 8; // MSB
|
||||
ioMessage.data1 = inSize & 0xff; // LSB
|
||||
}
|
||||
|
||||
TEST(MidiMessage, getSysExSize)
|
||||
{
|
||||
// Small message
|
||||
{
|
||||
typedef midi::Message<32> Message;
|
||||
Message message = Message();
|
||||
ASSERT_EQ(Message::getSysExMaxSize(), 32);
|
||||
ASSERT_EQ(message.getSysExMaxSize(), 32);
|
||||
|
||||
const unsigned sizeUnder = 20;
|
||||
setSysExSize(message, sizeUnder);
|
||||
ASSERT_EQ(message.getSysExSize(), sizeUnder);
|
||||
|
||||
const unsigned sizeOver = 64;
|
||||
setSysExSize(message, sizeOver);
|
||||
ASSERT_EQ(message.getSysExSize(), 32);
|
||||
}
|
||||
// Medium message
|
||||
{
|
||||
typedef midi::Message<256> Message;
|
||||
Message message = Message();
|
||||
ASSERT_EQ(Message::getSysExMaxSize(), 256);
|
||||
ASSERT_EQ(message.getSysExMaxSize(), 256);
|
||||
|
||||
const unsigned sizeUnder = 200;
|
||||
setSysExSize(message, sizeUnder);
|
||||
ASSERT_EQ(message.getSysExSize(), sizeUnder);
|
||||
|
||||
const unsigned sizeOver = 300;
|
||||
setSysExSize(message, sizeOver);
|
||||
ASSERT_EQ(message.getSysExSize(), 256);
|
||||
}
|
||||
// Large message
|
||||
{
|
||||
typedef midi::Message<1024> Message;
|
||||
Message message = Message();
|
||||
ASSERT_EQ(Message::getSysExMaxSize(), 1024);
|
||||
ASSERT_EQ(message.getSysExMaxSize(), 1024);
|
||||
|
||||
const unsigned sizeUnder = 1000;
|
||||
setSysExSize(message, sizeUnder);
|
||||
ASSERT_EQ(message.getSysExSize(), sizeUnder);
|
||||
|
||||
const unsigned sizeOver = 2000;
|
||||
setSysExSize(message, sizeOver);
|
||||
ASSERT_EQ(message.getSysExSize(), 1024);
|
||||
}
|
||||
}
|
||||
|
||||
END_UNNAMED_NAMESPACE
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#pragma once
|
||||
|
||||
#define UNIT_TESTS_NAMESPACE unit_tests
|
||||
#define BEGIN_UNIT_TESTS_NAMESPACE namespace UNIT_TESTS_NAMESPACE {
|
||||
#define END_UNIT_TESTS_NAMESPACE }
|
||||
#define BEGIN_UNNAMED_NAMESPACE namespace {
|
||||
#define END_UNNAMED_NAMESPACE }
|
||||
|
||||
#define USING_NAMESPACE_UNIT_TESTS using namespace UNIT_TESTS_NAMESPACE;
|
||||
|
||||
BEGIN_UNIT_TESTS_NAMESPACE
|
||||
|
||||
END_UNIT_TESTS_NAMESPACE
|
||||
Loading…
Reference in New Issue