From e9f831c1dabddb0ed700f0733313083dd8004564 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Wed, 3 Feb 2010 15:45:08 +0000 Subject: Some additional tests of RawStream::readBuffer. svn-id: r47857 --- test/sound/raw.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'test') diff --git a/test/sound/raw.h b/test/sound/raw.h index 6a6a23de3e..caeb79b7df 100644 --- a/test/sound/raw.h +++ b/test/sound/raw.h @@ -165,6 +165,47 @@ public: delete s; } + void test_partial_read() { + const int sampleRate = 11025; + const int time = 4; + + int16 *sine; + Audio::SeekableAudioStream *s = createSineStream(sampleRate, time, &sine, false); + int16 *buffer = new int16[sampleRate * time]; + + TS_ASSERT_EQUALS(s->readBuffer(buffer, sampleRate), sampleRate); + TS_ASSERT_EQUALS(memcmp(sine, buffer, sampleRate), 0); + TS_ASSERT_EQUALS(s->endOfData(), false); + + TS_ASSERT_EQUALS(s->readBuffer(buffer, sampleRate * 2), sampleRate * 2); + TS_ASSERT_EQUALS(memcmp(sine + sampleRate, buffer, sampleRate * 2), 0); + TS_ASSERT_EQUALS(s->endOfData(), false); + + TS_ASSERT_EQUALS(s->readBuffer(buffer, sampleRate), sampleRate); + TS_ASSERT_EQUALS(memcmp(sine + sampleRate * 3, buffer, sampleRate), 0); + TS_ASSERT_EQUALS(s->endOfData(), true); + + delete[] sine; + delete[] buffer; + delete s; + } + + void test_read_after_end() { + const int sampleRate = 11025; + const int time = 1; + Audio::SeekableAudioStream *s = createSineStream(sampleRate, time, 0, false); + int16 *buffer = new int16[sampleRate * time]; + + TS_ASSERT_EQUALS(s->readBuffer(buffer, sampleRate * time), sampleRate * time); + TS_ASSERT_EQUALS(s->endOfData(), true); + + TS_ASSERT_EQUALS(s->readBuffer(buffer, sampleRate * time), 0); + TS_ASSERT_EQUALS(s->endOfData(), true); + + delete[] buffer; + delete s; + } + void test_rewind() { const int sampleRate = 11025; const int time = 2; -- cgit v1.2.3