chore: Add test for system common messages
This commit is contained in:
parent
21a4ad23df
commit
f6d95113f5
10
src/MIDI.hpp
10
src/MIDI.hpp
|
|
@ -383,7 +383,9 @@ MidiInterface<Transport, Settings, Platform>& MidiInterface<Transport, Settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings::UseRunningStatus)
|
if (Settings::UseRunningStatus)
|
||||||
|
{
|
||||||
mRunningStatus_TX = InvalidType;
|
mRunningStatus_TX = InvalidType;
|
||||||
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
@ -465,9 +467,9 @@ MidiInterface<Transport, Settings, Platform>& MidiInterface<Transport, Settings,
|
||||||
|
|
||||||
if (mTransport.beginTransmission(inType))
|
if (mTransport.beginTransmission(inType))
|
||||||
{
|
{
|
||||||
mTransport.write((byte)inType);
|
mTransport.write((byte)inType);
|
||||||
switch (inType)
|
switch (inType)
|
||||||
{
|
{
|
||||||
case TimeCodeQuarterFrame:
|
case TimeCodeQuarterFrame:
|
||||||
mTransport.write(inData1);
|
mTransport.write(inData1);
|
||||||
break;
|
break;
|
||||||
|
|
@ -490,7 +492,9 @@ MidiInterface<Transport, Settings, Platform>& MidiInterface<Transport, Settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings::UseRunningStatus)
|
if (Settings::UseRunningStatus)
|
||||||
|
{
|
||||||
mRunningStatus_TX = InvalidType;
|
mRunningStatus_TX = InvalidType;
|
||||||
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ TEST(MidiOutput, sendGenericWithRunningStatus)
|
||||||
SerialMock serial;
|
SerialMock serial;
|
||||||
Transport transport(serial);
|
Transport transport(serial);
|
||||||
RsMidiInterface midi((Transport&)transport);
|
RsMidiInterface midi((Transport&)transport);
|
||||||
|
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
buffer.resize(5);
|
buffer.resize(5);
|
||||||
|
|
||||||
|
|
@ -85,7 +85,7 @@ TEST(MidiOutput, sendGenericWithoutRunningStatus)
|
||||||
SerialMock serial;
|
SerialMock serial;
|
||||||
Transport transport(serial);
|
Transport transport(serial);
|
||||||
NoRsMidiInterface midi((Transport&)transport);
|
NoRsMidiInterface midi((Transport&)transport);
|
||||||
|
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
buffer.resize(6);
|
buffer.resize(6);
|
||||||
|
|
||||||
|
|
@ -336,7 +336,7 @@ TEST(MidiOutput, sendSysEx)
|
||||||
LargeSerialMock serial;
|
LargeSerialMock serial;
|
||||||
LargeTransport transport(serial);
|
LargeTransport transport(serial);
|
||||||
LargeMidiInterface midi((LargeTransport&)transport);
|
LargeMidiInterface midi((LargeTransport&)transport);
|
||||||
|
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
|
|
||||||
// Short frame
|
// Short frame
|
||||||
|
|
@ -547,6 +547,41 @@ TEST(MidiOutput, sendRealTime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(MidiOutput, sendCommon)
|
||||||
|
{
|
||||||
|
SerialMock serial;
|
||||||
|
Transport transport(serial);
|
||||||
|
MidiInterface midi((Transport&)transport);
|
||||||
|
|
||||||
|
Buffer buffer;
|
||||||
|
|
||||||
|
// Test valid Common messages
|
||||||
|
{
|
||||||
|
buffer.clear();
|
||||||
|
buffer.resize(8);
|
||||||
|
|
||||||
|
midi.begin();
|
||||||
|
midi.sendCommon(midi::TimeCodeQuarterFrame, 1);
|
||||||
|
midi.sendCommon(midi::SongPosition, 0x5555);
|
||||||
|
midi.sendCommon(midi::SongSelect, 3);
|
||||||
|
midi.sendCommon(midi::TuneRequest, 4);
|
||||||
|
|
||||||
|
EXPECT_EQ(serial.mTxBuffer.getLength(), 8);
|
||||||
|
serial.mTxBuffer.read(&buffer[0], 8);
|
||||||
|
EXPECT_THAT(buffer, ElementsAreArray({
|
||||||
|
0xf1, 0x01, 0xf2, 0x55, 0x2a, 0xf3, 0x03, 0xf6
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
// Test invalid messages
|
||||||
|
{
|
||||||
|
midi.begin();
|
||||||
|
midi.sendCommon(midi::Undefined_F4, 0);
|
||||||
|
midi.sendCommon(midi::Undefined_F5, 0);
|
||||||
|
midi.sendCommon(midi::InvalidType, 0);
|
||||||
|
EXPECT_EQ(serial.mTxBuffer.getLength(), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TEST(MidiOutput, RPN)
|
TEST(MidiOutput, RPN)
|
||||||
{
|
{
|
||||||
typedef VariableSettings<true, true> Settings;
|
typedef VariableSettings<true, true> Settings;
|
||||||
|
|
@ -555,7 +590,7 @@ TEST(MidiOutput, RPN)
|
||||||
SerialMock serial;
|
SerialMock serial;
|
||||||
Transport transport(serial);
|
Transport transport(serial);
|
||||||
RsMidiInterface midi((Transport&)transport);
|
RsMidiInterface midi((Transport&)transport);
|
||||||
|
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
|
|
||||||
// 14-bit Value Single Frame
|
// 14-bit Value Single Frame
|
||||||
|
|
@ -673,7 +708,7 @@ TEST(MidiOutput, NRPN)
|
||||||
SerialMock serial;
|
SerialMock serial;
|
||||||
Transport transport(serial);
|
Transport transport(serial);
|
||||||
RsMidiInterface midi((Transport&)transport);
|
RsMidiInterface midi((Transport&)transport);
|
||||||
|
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
|
|
||||||
// 14-bit Value Single Frame
|
// 14-bit Value Single Frame
|
||||||
|
|
@ -791,7 +826,7 @@ TEST(MidiOutput, runningStatusCancellation)
|
||||||
SerialMock serial;
|
SerialMock serial;
|
||||||
Transport transport(serial);
|
Transport transport(serial);
|
||||||
RsMidiInterface midi((Transport&)transport);
|
RsMidiInterface midi((Transport&)transport);
|
||||||
|
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
|
|
||||||
static const unsigned sysExLength = 13;
|
static const unsigned sysExLength = 13;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue