Index: tests/SerializationTest.cpp |
diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b8665fe98a141a178ad945d7a78ae7c3c443fd9b |
--- /dev/null |
+++ b/tests/SerializationTest.cpp |
@@ -0,0 +1,40 @@ |
+/* |
+ * Copyright 2013 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "SkOrderedWriteBuffer.h" |
+#include "SkValidatingReadBuffer.h" |
+#include "Test.h" |
+ |
+static void Tests(skiatest::Reporter* reporter) { |
+ static const uint32_t arraySize = 512; |
+ unsigned char data[arraySize] = {0}; |
+ SkOrderedWriteBuffer writer(1024); |
+ writer.setFlags(SkOrderedWriteBuffer::kValidation_Flag); |
+ writer.writeByteArray(data, arraySize); |
+ uint32_t bytesWritten = writer.bytesWritten(); |
+ // This should write the length (in 4 bytes) and the array |
+ REPORTER_ASSERT(reporter, (4 + arraySize) == bytesWritten); |
+ |
+ unsigned char dataWritten[1024]; |
+ writer.writeToMemory(dataWritten); |
+ |
+ // Make sure this fails when it should |
+ SkValidatingReadBuffer buffer(dataWritten, bytesWritten); |
+ unsigned char dataRead[arraySize]; |
+ size_t bytesRead = buffer.readByteArray(dataRead, 256); |
+ // This should have failed, since 256 < sizeInBytes |
+ REPORTER_ASSERT(reporter, bytesRead == 0); |
+ |
+ // Make sure this succeeds when it should |
+ SkValidatingReadBuffer buffer2(dataWritten, bytesWritten); |
+ bytesRead = buffer2.readByteArray(dataRead, arraySize); |
+ // This should have succeeded, since there are enough bytes to read this |
+ REPORTER_ASSERT(reporter, bytesRead == arraySize); |
+} |
+ |
+#include "TestClassDef.h" |
+DEFINE_TESTCLASS("Serialization", SerializationClass, Tests) |