[Scummvm-git-logs] scummvm master -> c99de06915a85095ae35cf6acc6c24cb6dbfc1b6

dreammaster paulfgilbert at gmail.com
Thu Mar 5 03:03:29 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
c99de06915 ULTIMA8: Add unit tests for IBufferDataSource


Commit: c99de06915a85095ae35cf6acc6c24cb6dbfc1b6
    https://github.com/scummvm/scummvm/commit/c99de06915a85095ae35cf6acc6c24cb6dbfc1b6
Author: Matthew Duggan (mgithub at guarana.org)
Date: 2020-03-04T19:03:25-08:00

Commit Message:
ULTIMA8: Add unit tests for IBufferDataSource

Changed paths:
  A test/engines/ultima/ultima8/filesys/idata_source.h


diff --git a/test/engines/ultima/ultima8/filesys/idata_source.h b/test/engines/ultima/ultima8/filesys/idata_source.h
new file mode 100644
index 0000000000..051ba8a15f
--- /dev/null
+++ b/test/engines/ultima/ultima8/filesys/idata_source.h
@@ -0,0 +1,62 @@
+#include <cxxtest/TestSuite.h>
+#include "engines/ultima/ultima8/filesys/idata_source.h"
+/**
+ * Test suite for the functions in engines/ultima/ultima8/filesys/idata_source.h
+ */
+
+class U8IDataSourceTestSuite : public CxxTest::TestSuite {
+	public:
+	U8IDataSourceTestSuite() {
+	}
+
+	void test_empty_ibuffer_source() {
+		Ultima::Ultima8::IBufferDataSource source(NULL, 0, false, false);
+
+		TS_ASSERT_EQUALS(source.getSize(), 0);
+		TS_ASSERT_EQUALS(source.getPos(), 0);
+		TS_ASSERT(source.eof());
+	}
+
+	void test_ibuffer_source() {
+		uint8 buf[256];
+		for (int i = 0; i < 255; i++) {
+			buf[i] = i+1;
+		}
+
+		Ultima::Ultima8::IBufferDataSource source(buf, 256, false, false);
+		TS_ASSERT_EQUALS(source.getSize(), 256);
+		TS_ASSERT_EQUALS(source.getPos(), 0);
+		TS_ASSERT(!source.eof());
+
+		TS_ASSERT_EQUALS(source.read1(), 1);
+		TS_ASSERT_EQUALS(source.read2(), 0x0302);
+		TS_ASSERT_EQUALS(source.read3(), 0x060504);
+		TS_ASSERT_EQUALS(source.read4(), 0x0A090807);
+		source.skip(-2);
+		TS_ASSERT_EQUALS(source.read2(), 0x0A09);
+		source.seek(16);
+		TS_ASSERT_EQUALS(source.read2(), 0x1211);
+		TS_ASSERT_EQUALS(source.readX(1), 0x13);
+		TS_ASSERT_EQUALS(source.readX(3), 0x161514);
+		TS_ASSERT_EQUALS(source.readXS(1), 0x17);
+		TS_ASSERT_EQUALS(source.readXS(3), 0x1A1918);
+		source.seek(256);
+		TS_ASSERT(source.eof());
+	}
+
+	void test_ibuffer_str_source() {
+		const char *buf = "this is a \r\n dos string and a \n unix string.";
+		Ultima::Std::string str;
+		Ultima::Ultima8::IBufferDataSource source(buf, strlen(buf), true, false);
+		TS_ASSERT(!source.eof());
+		source.readline(str);
+		TS_ASSERT(!source.eof());
+		TS_ASSERT_EQUALS(str, "this is a ");
+		source.readline(str);
+		TS_ASSERT_EQUALS(str, " dos string and a ");
+		source.readline(str);
+		TS_ASSERT_EQUALS(str, " unix string.");
+		TS_ASSERT(source.eof());
+	}
+
+};




More information about the Scummvm-git-logs mailing list