[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