| 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)
|
|
|