Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(828)

Unified Diff: tests/StreamTest.cpp

Issue 15298009: Change SkStream. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Clean up, address comments. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/utils/win/SkDWriteFontFileStream.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « src/utils/win/SkDWriteFontFileStream.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698