mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 08:14:58 +01:00
* Sequence: added asserts
* sequence.cpp completed first test git-svn-id: svn://localhost/ardour2/branches/3.0@4504 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
fcfe073b00
commit
9734fa3e93
3 changed files with 28 additions and 10 deletions
|
|
@ -219,6 +219,8 @@ Sequence<T>::const_iterator::const_iterator(const Sequence<T>& seq, T t)
|
||||||
debugout << " : " << hex << (int)((MIDIEvent<T>*)_event.get())->type();
|
debugout << " : " << hex << (int)((MIDIEvent<T>*)_event.get())->type();
|
||||||
debugout << " @ " << _event->time() << endl;
|
debugout << " @ " << _event->time() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(_event && _event->size() > 0);
|
||||||
|
|
||||||
//assert(_is_end || (_event->buffer() && _event->buffer()[0] != '\0'));
|
//assert(_is_end || (_event->buffer() && _event->buffer()[0] != '\0'));
|
||||||
}
|
}
|
||||||
|
|
@ -240,7 +242,7 @@ Sequence<T>::const_iterator::operator++()
|
||||||
}
|
}
|
||||||
|
|
||||||
debugout << "Iterator ++" << endl;
|
debugout << "Iterator ++" << endl;
|
||||||
assert(_event->buffer() && _event->size() > 0);
|
assert(_event && _event->buffer() && _event->size() > 0);
|
||||||
|
|
||||||
const MIDIEvent<T>& ev = *((MIDIEvent<T>*)_event.get());
|
const MIDIEvent<T>& ev = *((MIDIEvent<T>*)_event.get());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ SequenceTest::createTest (void)
|
||||||
CPPUNIT_ASSERT(seq->notes().begin() == seq->notes().end());
|
CPPUNIT_ASSERT(seq->notes().begin() == seq->notes().end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
SequenceTest::preserveEventOrderingTest (void)
|
SequenceTest::preserveEventOrderingTest (void)
|
||||||
{
|
{
|
||||||
|
|
@ -50,6 +51,7 @@ SequenceTest::preserveEventOrderingTest (void)
|
||||||
seq->end_write();
|
seq->end_write();
|
||||||
|
|
||||||
TestSink<Time> sink;
|
TestSink<Time> sink;
|
||||||
|
sink.writing.connect(sigc::mem_fun(&sink, &TestSink<Time>::assertLastEventTimeLessOrEqualEventTime));
|
||||||
|
|
||||||
seq->read(sink, timestamp_t(0), timedur_t(1200), timestamp_t(0));
|
seq->read(sink, timestamp_t(0), timedur_t(1200), timestamp_t(0));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,18 +29,18 @@ public:
|
||||||
|
|
||||||
uint8_t parameter_midi_type(const Parameter& param) const {
|
uint8_t parameter_midi_type(const Parameter& param) const {
|
||||||
switch (param.type()) {
|
switch (param.type()) {
|
||||||
case CONTROL: return MIDI_CMD_CONTROL;
|
case CONTROL: return MIDI_CMD_CONTROL;
|
||||||
case SYSEX: return MIDI_CMD_COMMON_SYSEX;
|
case SYSEX: return MIDI_CMD_COMMON_SYSEX;
|
||||||
default: return 0;
|
default: return 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t midi_event_type(uint8_t status) const {
|
uint32_t midi_event_type(uint8_t status) const {
|
||||||
status &= 0xf0;
|
status &= 0xf0;
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case MIDI_CMD_CONTROL: return CONTROL;
|
case MIDI_CMD_CONTROL: return CONTROL;
|
||||||
case MIDI_CMD_COMMON_SYSEX: return SYSEX;
|
case MIDI_CMD_COMMON_SYSEX: return SYSEX;
|
||||||
default: return 0;
|
default: return 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,11 +72,27 @@ public:
|
||||||
template<typename Time>
|
template<typename Time>
|
||||||
class TestSink : public EventSink<Time> {
|
class TestSink : public EventSink<Time> {
|
||||||
public:
|
public:
|
||||||
|
TestSink() : _last_event_time(-1) {}
|
||||||
|
|
||||||
|
/// return value, time, type, size, buffer
|
||||||
sigc::signal<uint32_t, Time, EventType, uint32_t, const uint8_t*> writing;
|
sigc::signal<uint32_t, Time, EventType, uint32_t, const uint8_t*> writing;
|
||||||
|
|
||||||
virtual uint32_t write(Time time, EventType type, uint32_t size, const uint8_t* buf) {
|
virtual uint32_t write(Time time, EventType type, uint32_t size, const uint8_t* buf) {
|
||||||
return writing(time, type, size, buf);
|
std::cerr << "last event time: " << _last_event_time << " time: " << time << std::endl;
|
||||||
|
uint32_t result = writing(time, type, size, buf);
|
||||||
|
_last_event_time = time;
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t assertLastEventTimeLessOrEqualEventTime(
|
||||||
|
Time time, EventType type, uint32_t size, const uint8_t* buf) {
|
||||||
|
assert(_last_event_time <= time);
|
||||||
|
}
|
||||||
|
|
||||||
|
Time last_event_time() const { return _last_event_time; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Time _last_event_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SequenceTest : public CppUnit::TestFixture
|
class SequenceTest : public CppUnit::TestFixture
|
||||||
|
|
@ -118,6 +134,4 @@ class SequenceTest : public CppUnit::TestFixture
|
||||||
MySequence<Time>* seq;
|
MySequence<Time>* seq;
|
||||||
|
|
||||||
Notes test_notes;
|
Notes test_notes;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue