diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2009-02-09 08:49:57 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2009-02-09 08:49:57 +0000 |
commit | 9734fa3e9355173311a516220ab10c0ca64df24b (patch) | |
tree | ca91039b27b9d4163ddcb7b5d2572d25e3e6454f /libs/evoral/test | |
parent | fcfe073b0046732a93fe8b2826eff2e1e90bfc54 (diff) |
* Sequence: added asserts
* sequence.cpp completed first test
git-svn-id: svn://localhost/ardour2/branches/3.0@4504 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/evoral/test')
-rw-r--r-- | libs/evoral/test/sequence.cpp | 2 | ||||
-rw-r--r-- | libs/evoral/test/sequence.hpp | 32 |
2 files changed, 25 insertions, 9 deletions
diff --git a/libs/evoral/test/sequence.cpp b/libs/evoral/test/sequence.cpp index 1398274841..82ea71d939 100644 --- a/libs/evoral/test/sequence.cpp +++ b/libs/evoral/test/sequence.cpp @@ -13,6 +13,7 @@ SequenceTest::createTest (void) CPPUNIT_ASSERT(seq->notes().begin() == seq->notes().end()); } + void SequenceTest::preserveEventOrderingTest (void) { @@ -50,6 +51,7 @@ SequenceTest::preserveEventOrderingTest (void) seq->end_write(); 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)); diff --git a/libs/evoral/test/sequence.hpp b/libs/evoral/test/sequence.hpp index 500ab8b7cf..9c8686dec4 100644 --- a/libs/evoral/test/sequence.hpp +++ b/libs/evoral/test/sequence.hpp @@ -29,18 +29,18 @@ public: uint8_t parameter_midi_type(const Parameter& param) const { switch (param.type()) { - case CONTROL: return MIDI_CMD_CONTROL; - case SYSEX: return MIDI_CMD_COMMON_SYSEX; - default: return 0; + case CONTROL: return MIDI_CMD_CONTROL; + case SYSEX: return MIDI_CMD_COMMON_SYSEX; + default: return 0; }; } uint32_t midi_event_type(uint8_t status) const { status &= 0xf0; switch (status) { - case MIDI_CMD_CONTROL: return CONTROL; - case MIDI_CMD_COMMON_SYSEX: return SYSEX; - default: return 0; + case MIDI_CMD_CONTROL: return CONTROL; + case MIDI_CMD_COMMON_SYSEX: return SYSEX; + default: return 0; }; } @@ -72,11 +72,27 @@ public: template<typename Time> class TestSink : public EventSink<Time> { public: + TestSink() : _last_event_time(-1) {} + + /// return value, time, type, size, buffer 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) { - 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 @@ -118,6 +134,4 @@ class SequenceTest : public CppUnit::TestFixture MySequence<Time>* seq; Notes test_notes; - - }; |