summaryrefslogtreecommitdiff
path: root/libs/evoral/test
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2009-02-09 08:49:57 +0000
committerHans Baier <hansfbaier@googlemail.com>2009-02-09 08:49:57 +0000
commit9734fa3e9355173311a516220ab10c0ca64df24b (patch)
treeca91039b27b9d4163ddcb7b5d2572d25e3e6454f /libs/evoral/test
parentfcfe073b0046732a93fe8b2826eff2e1e90bfc54 (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.cpp2
-rw-r--r--libs/evoral/test/sequence.hpp32
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;
-
-
};