| Index: tests/FrontBufferedStreamTest.cpp
|
| diff --git a/tests/FrontBufferedStreamTest.cpp b/tests/FrontBufferedStreamTest.cpp
|
| index 167d1a20e80ec5fabf8a070d213e5a08214e4634..69dade04b9a73633677f7c2079bde872875b3a6a 100644
|
| --- a/tests/FrontBufferedStreamTest.cpp
|
| +++ b/tests/FrontBufferedStreamTest.cpp
|
| @@ -51,10 +51,13 @@ const char gAbcs[] = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef
|
| // Tests reading the stream across boundaries of what has been buffered so far and what
|
| // the total buffer size is.
|
| static void test_incremental_buffering(skiatest::Reporter* reporter, size_t bufferSize) {
|
| - SkMemoryStream memStream(gAbcs, strlen(gAbcs), false);
|
| + // NOTE: For this and other tests in this file, we cheat and continue to refer to the
|
| + // wrapped stream, but that's okay because we know the wrapping stream has not been
|
| + // deleted yet (and we only call const methods in it).
|
| + SkMemoryStream* memStream = SkNEW_ARGS(SkMemoryStream, (gAbcs, strlen(gAbcs), false));
|
|
|
| - SkAutoTUnref<SkStream> bufferedStream(SkFrontBufferedStream::Create(&memStream, bufferSize));
|
| - test_hasLength(reporter, *bufferedStream.get(), memStream);
|
| + SkAutoTDelete<SkStream> bufferedStream(SkFrontBufferedStream::Create(memStream, bufferSize));
|
| + test_hasLength(reporter, *bufferedStream.get(), *memStream);
|
|
|
| // First, test reading less than the max buffer size.
|
| test_read(reporter, bufferedStream, gAbcs, bufferSize / 2);
|
| @@ -79,9 +82,9 @@ static void test_incremental_buffering(skiatest::Reporter* reporter, size_t buff
|
| }
|
|
|
| static void test_perfectly_sized_buffer(skiatest::Reporter* reporter, size_t bufferSize) {
|
| - SkMemoryStream memStream(gAbcs, strlen(gAbcs), false);
|
| - SkAutoTUnref<SkStream> bufferedStream(SkFrontBufferedStream::Create(&memStream, bufferSize));
|
| - test_hasLength(reporter, *bufferedStream.get(), memStream);
|
| + SkMemoryStream* memStream = SkNEW_ARGS(SkMemoryStream, (gAbcs, strlen(gAbcs), false));
|
| + SkAutoTDelete<SkStream> bufferedStream(SkFrontBufferedStream::Create(memStream, bufferSize));
|
| + test_hasLength(reporter, *bufferedStream.get(), *memStream);
|
|
|
| // Read exactly the amount that fits in the buffer.
|
| test_read(reporter, bufferedStream, gAbcs, bufferSize);
|
| @@ -98,9 +101,9 @@ static void test_perfectly_sized_buffer(skiatest::Reporter* reporter, size_t buf
|
| }
|
|
|
| static void test_skipping(skiatest::Reporter* reporter, size_t bufferSize) {
|
| - SkMemoryStream memStream(gAbcs, strlen(gAbcs), false);
|
| - SkAutoTUnref<SkStream> bufferedStream(SkFrontBufferedStream::Create(&memStream, bufferSize));
|
| - test_hasLength(reporter, *bufferedStream.get(), memStream);
|
| + SkMemoryStream* memStream = SkNEW_ARGS(SkMemoryStream, (gAbcs, strlen(gAbcs), false));
|
| + SkAutoTDelete<SkStream> bufferedStream(SkFrontBufferedStream::Create(memStream, bufferSize));
|
| + test_hasLength(reporter, *bufferedStream.get(), *memStream);
|
|
|
| // Skip half the buffer.
|
| bufferedStream->skip(bufferSize / 2);
|
| @@ -149,11 +152,11 @@ private:
|
| // does not invalidate the buffer.
|
| static void test_read_beyond_buffer(skiatest::Reporter* reporter, size_t bufferSize) {
|
| // Use a stream that behaves like Android's stream.
|
| - AndroidLikeMemoryStream memStream((void*)gAbcs, bufferSize, false);
|
| + AndroidLikeMemoryStream* memStream = SkNEW_ARGS(AndroidLikeMemoryStream, ((void*)gAbcs, bufferSize, false));
|
|
|
| // Create a buffer that matches the length of the stream.
|
| - SkAutoTUnref<SkStream> bufferedStream(SkFrontBufferedStream::Create(&memStream, bufferSize));
|
| - test_hasLength(reporter, *bufferedStream.get(), memStream);
|
| + SkAutoTDelete<SkStream> bufferedStream(SkFrontBufferedStream::Create(memStream, bufferSize));
|
| + test_hasLength(reporter, *bufferedStream.get(), *memStream);
|
|
|
| // Attempt to read one more than the bufferSize
|
| test_read(reporter, bufferedStream.get(), gAbcs, bufferSize + 1);
|
| @@ -197,22 +200,22 @@ private:
|
| static void test_length_combos(skiatest::Reporter* reporter, size_t bufferSize) {
|
| for (int hasLen = 0; hasLen <= 1; hasLen++) {
|
| for (int hasPos = 0; hasPos <= 1; hasPos++) {
|
| - LengthOptionalStream stream(SkToBool(hasLen), SkToBool(hasPos));
|
| - SkAutoTUnref<SkStream> buffered(SkFrontBufferedStream::Create(&stream, bufferSize));
|
| - test_hasLength(reporter, *buffered.get(), stream);
|
| + LengthOptionalStream* stream = SkNEW_ARGS(LengthOptionalStream, (SkToBool(hasLen), SkToBool(hasPos)));
|
| + SkAutoTDelete<SkStream> buffered(SkFrontBufferedStream::Create(stream, bufferSize));
|
| + test_hasLength(reporter, *buffered.get(), *stream);
|
| }
|
| }
|
| }
|
|
|
| // Test using a stream with an initial offset.
|
| static void test_initial_offset(skiatest::Reporter* reporter, size_t bufferSize) {
|
| - SkMemoryStream memStream(gAbcs, strlen(gAbcs), false);
|
| + SkMemoryStream* memStream = SkNEW_ARGS(SkMemoryStream, (gAbcs, strlen(gAbcs), false));
|
|
|
| // Skip a few characters into the memStream, so that bufferedStream represents an offset into
|
| // the stream it wraps.
|
| const size_t arbitraryOffset = 17;
|
| - memStream.skip(arbitraryOffset);
|
| - SkAutoTUnref<SkStream> bufferedStream(SkFrontBufferedStream::Create(&memStream, bufferSize));
|
| + memStream->skip(arbitraryOffset);
|
| + SkAutoTDelete<SkStream> bufferedStream(SkFrontBufferedStream::Create(memStream, bufferSize));
|
|
|
| // Since SkMemoryStream has a length and a position, bufferedStream must also.
|
| REPORTER_ASSERT(reporter, bufferedStream->hasLength());
|
| @@ -283,13 +286,13 @@ private:
|
| };
|
|
|
| DEF_TEST(ShortFrontBufferedStream, reporter) {
|
| - FailingStream failingStream;
|
| - SkAutoTUnref<SkStreamRewindable> stream(SkFrontBufferedStream::Create(&failingStream, 64));
|
| + FailingStream* failingStream = SkNEW(FailingStream);
|
| + SkAutoTDelete<SkStreamRewindable> stream(SkFrontBufferedStream::Create(failingStream, 64));
|
| SkBitmap bm;
|
| // The return value of DecodeStream is not important. We are just using DecodeStream because
|
| // it simulates a bug. DecodeStream will read the stream, then rewind, then attempt to read
|
| // again. FrontBufferedStream::read should not continue to read its underlying stream beyond
|
| // its end.
|
| SkImageDecoder::DecodeStream(stream, &bm);
|
| - REPORTER_ASSERT(reporter, !failingStream.readAfterEnd());
|
| + REPORTER_ASSERT(reporter, !failingStream->readAfterEnd());
|
| }
|
|
|