| Index: tests/StreamTest.cpp
|
| ===================================================================
|
| --- tests/StreamTest.cpp (revision 9222)
|
| +++ tests/StreamTest.cpp (working copy)
|
| @@ -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 @@
|
| 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 @@
|
| 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 TestStreams(skiatest::Reporter* reporter) {
|
| - TestRStream(reporter);
|
| TestWStream(reporter);
|
| TestPackedUInt(reporter);
|
| TestNullData();
|
|
|