[Scummvm-cvs-logs] SF.net SVN: scummvm:[47857] scummvm/trunk/test/sound/raw.h

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Wed Feb 3 16:45:08 CET 2010


Revision: 47857
          http://scummvm.svn.sourceforge.net/scummvm/?rev=47857&view=rev
Author:   lordhoto
Date:     2010-02-03 15:45:08 +0000 (Wed, 03 Feb 2010)

Log Message:
-----------
Some additional tests of RawStream::readBuffer.

Modified Paths:
--------------
    scummvm/trunk/test/sound/raw.h

Modified: scummvm/trunk/test/sound/raw.h
===================================================================
--- scummvm/trunk/test/sound/raw.h	2010-02-03 15:44:43 UTC (rev 47856)
+++ scummvm/trunk/test/sound/raw.h	2010-02-03 15:45:08 UTC (rev 47857)
@@ -165,6 +165,47 @@
 		delete s;
 	}
 
+	void test_partial_read() {
+		const int sampleRate = 11025;
+		const int time = 4;
+
+		int16 *sine;
+		Audio::SeekableAudioStream *s = createSineStream<int8>(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<int8>(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;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list