diff options
author | bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-29 13:43:31 +0000 |
---|---|---|
committer | bungeman@google.com <bungeman@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-29 13:43:31 +0000 |
commit | 6cab1a4b6a68aa81237731308ff37a646d48f51c (patch) | |
tree | 9fbab394aea93cd4a8a828e48ed325366d8f79e0 /tests | |
parent | 6320e8f393539b7a536b32b5a072a474709da5ff (diff) |
Change SkStream.
https://codereview.chromium.org/15298009/
git-svn-id: http://skia.googlecode.com/svn/trunk@9312 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/StreamTest.cpp | 76 |
1 files changed, 9 insertions, 67 deletions
diff --git a/tests/StreamTest.cpp b/tests/StreamTest.cpp index d0a8507241..8f38f46bea 100644 --- a/tests/StreamTest.cpp +++ b/tests/StreamTest.cpp @@ -7,6 +7,7 @@ */ #include "Test.h" #include "SkRandom.h" +#include "SkOSFile.h" #include "SkStream.h" #include "SkData.h" @@ -17,67 +18,6 @@ #define MAX_SIZE (256 * 1024) -static void random_fill(SkMWCRandom& rand, void* buffer, size_t size) { - char* p = (char*)buffer; - char* stop = p + size; - while (p < stop) { - *p++ = (char)(rand.nextU() >> 8); - } -} - -static void test_buffer(skiatest::Reporter* reporter) { - SkMWCRandom rand; - SkAutoMalloc am(MAX_SIZE * 2); - char* storage = (char*)am.get(); - char* storage2 = storage + MAX_SIZE; - - random_fill(rand, storage, MAX_SIZE); - - for (int sizeTimes = 0; sizeTimes < 100; sizeTimes++) { - int size = rand.nextU() % MAX_SIZE; - if (size == 0) { - size = MAX_SIZE; - } - for (int times = 0; times < 100; times++) { - int bufferSize = 1 + (rand.nextU() & 0xFFFF); - SkMemoryStream mstream(storage, size); - SkBufferStream bstream(&mstream, bufferSize); - - int bytesRead = 0; - while (bytesRead < size) { - int s = 17 + (rand.nextU() & 0xFFFF); - int ss = bstream.read(storage2, s); - REPORTER_ASSERT(reporter, ss > 0 && ss <= s); - REPORTER_ASSERT(reporter, bytesRead + ss <= size); - REPORTER_ASSERT(reporter, - memcmp(storage + bytesRead, storage2, ss) == 0); - bytesRead += ss; - } - REPORTER_ASSERT(reporter, bytesRead == size); - } - } -} - -static void TestRStream(skiatest::Reporter* reporter) { - static const char s[] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - char copy[sizeof(s)]; - SkMWCRandom rand; - - for (int i = 0; i < 65; i++) { - char* copyPtr = copy; - SkMemoryStream mem(s, sizeof(s)); - SkBufferStream buff(&mem, i); - - do { - copyPtr += buff.read(copyPtr, rand.nextU() & 15); - } while (copyPtr < copy + sizeof(s)); - REPORTER_ASSERT(reporter, copyPtr == copy + sizeof(s)); - REPORTER_ASSERT(reporter, memcmp(s, copy, sizeof(s)) == 0); - } - test_buffer(reporter); -} - static void test_loop_stream(skiatest::Reporter* reporter, SkStream* stream, const void* src, size_t len, int repeat) { SkAutoSMalloc<256> storage(len); @@ -118,16 +58,20 @@ static void test_filestreams(skiatest::Reporter* reporter, const char* tmpDir) { SkFILEStream stream(path.c_str()); REPORTER_ASSERT(reporter, stream.isValid()); test_loop_stream(reporter, &stream, s, 26, 100); + + SkAutoTUnref<SkStreamAsset> stream2(stream.duplicate()); + test_loop_stream(reporter, stream2.get(), s, 26, 100); } -#ifndef SK_BUILD_FOR_WIN { - int fd = ::open(path.c_str(), O_RDONLY); - SkFDStream stream(fd, true); + FILE* file = ::fopen(path.c_str(), "rb"); + SkFILEStream stream(file, SkFILEStream::kCallerPasses_Ownership); REPORTER_ASSERT(reporter, stream.isValid()); test_loop_stream(reporter, &stream, s, 26, 100); + + SkAutoTUnref<SkStreamAsset> stream2(stream.duplicate()); + test_loop_stream(reporter, stream2.get(), s, 26, 100); } -#endif } static void TestWStream(skiatest::Reporter* reporter) { @@ -142,7 +86,6 @@ static void TestWStream(skiatest::Reporter* reporter) { dst[100*26] = '*'; ds.copyTo(dst); REPORTER_ASSERT(reporter, dst[100*26] == '*'); -// char* p = dst; for (i = 0; i < 100; i++) { REPORTER_ASSERT(reporter, memcmp(&dst[i * 26], s, 26) == 0); } @@ -210,7 +153,6 @@ static void TestNullData() { } static void TestStreams(skiatest::Reporter* reporter) { - TestRStream(reporter); TestWStream(reporter); TestPackedUInt(reporter); TestNullData(); |