OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkData.h" | 8 #include "SkData.h" |
9 #include "SkOSFile.h" | 9 #include "SkOSFile.h" |
10 #include "SkRandom.h" | 10 #include "SkRandom.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 for (int i = 0; i < 100; ++i) { | 51 for (int i = 0; i < 100; ++i) { |
52 writer.write(s, 26); | 52 writer.write(s, 26); |
53 } | 53 } |
54 } | 54 } |
55 | 55 |
56 { | 56 { |
57 SkFILEStream stream(path.c_str()); | 57 SkFILEStream stream(path.c_str()); |
58 REPORTER_ASSERT(reporter, stream.isValid()); | 58 REPORTER_ASSERT(reporter, stream.isValid()); |
59 test_loop_stream(reporter, &stream, s, 26, 100); | 59 test_loop_stream(reporter, &stream, s, 26, 100); |
60 | 60 |
61 SkAutoTUnref<SkStreamAsset> stream2(stream.duplicate()); | 61 SkAutoTDelete<SkStreamAsset> stream2(stream.duplicate()); |
62 test_loop_stream(reporter, stream2.get(), s, 26, 100); | 62 test_loop_stream(reporter, stream2.get(), s, 26, 100); |
63 } | 63 } |
64 | 64 |
65 { | 65 { |
66 FILE* file = ::fopen(path.c_str(), "rb"); | 66 FILE* file = ::fopen(path.c_str(), "rb"); |
67 SkFILEStream stream(file, SkFILEStream::kCallerPasses_Ownership); | 67 SkFILEStream stream(file, SkFILEStream::kCallerPasses_Ownership); |
68 REPORTER_ASSERT(reporter, stream.isValid()); | 68 REPORTER_ASSERT(reporter, stream.isValid()); |
69 test_loop_stream(reporter, &stream, s, 26, 100); | 69 test_loop_stream(reporter, &stream, s, 26, 100); |
70 | 70 |
71 SkAutoTUnref<SkStreamAsset> stream2(stream.duplicate()); | 71 SkAutoTDelete<SkStreamAsset> stream2(stream.duplicate()); |
72 test_loop_stream(reporter, stream2.get(), s, 26, 100); | 72 test_loop_stream(reporter, stream2.get(), s, 26, 100); |
73 } | 73 } |
74 } | 74 } |
75 | 75 |
76 static void TestWStream(skiatest::Reporter* reporter) { | 76 static void TestWStream(skiatest::Reporter* reporter) { |
77 SkDynamicMemoryWStream ds; | 77 SkDynamicMemoryWStream ds; |
78 const char s[] = "abcdefghijklmnopqrstuvwxyz"; | 78 const char s[] = "abcdefghijklmnopqrstuvwxyz"; |
79 int i; | 79 int i; |
80 for (i = 0; i < 100; i++) { | 80 for (i = 0; i < 100; i++) { |
81 REPORTER_ASSERT(reporter, ds.write(s, 26)); | 81 REPORTER_ASSERT(reporter, ds.write(s, 26)); |
82 } | 82 } |
83 REPORTER_ASSERT(reporter, ds.getOffset() == 100 * 26); | 83 REPORTER_ASSERT(reporter, ds.getOffset() == 100 * 26); |
84 | 84 |
85 char* dst = new char[100 * 26 + 1]; | 85 char* dst = new char[100 * 26 + 1]; |
86 dst[100*26] = '*'; | 86 dst[100*26] = '*'; |
87 ds.copyTo(dst); | 87 ds.copyTo(dst); |
88 REPORTER_ASSERT(reporter, dst[100*26] == '*'); | 88 REPORTER_ASSERT(reporter, dst[100*26] == '*'); |
89 for (i = 0; i < 100; i++) { | 89 for (i = 0; i < 100; i++) { |
90 REPORTER_ASSERT(reporter, memcmp(&dst[i * 26], s, 26) == 0); | 90 REPORTER_ASSERT(reporter, memcmp(&dst[i * 26], s, 26) == 0); |
91 } | 91 } |
92 | 92 |
93 { | 93 { |
94 SkAutoTUnref<SkStreamAsset> stream(ds.detachAsStream()); | 94 SkAutoTDelete<SkStreamAsset> stream(ds.detachAsStream()); |
95 REPORTER_ASSERT(reporter, 100 * 26 == stream->getLength()); | 95 REPORTER_ASSERT(reporter, 100 * 26 == stream->getLength()); |
96 REPORTER_ASSERT(reporter, ds.getOffset() == 0); | 96 REPORTER_ASSERT(reporter, ds.getOffset() == 0); |
97 test_loop_stream(reporter, stream.get(), s, 26, 100); | 97 test_loop_stream(reporter, stream.get(), s, 26, 100); |
98 | 98 |
99 SkAutoTUnref<SkStreamAsset> stream2(stream->duplicate()); | 99 SkAutoTDelete<SkStreamAsset> stream2(stream->duplicate()); |
100 test_loop_stream(reporter, stream2.get(), s, 26, 100); | 100 test_loop_stream(reporter, stream2.get(), s, 26, 100); |
101 | 101 |
102 SkAutoTUnref<SkStreamAsset> stream3(stream->fork()); | 102 SkAutoTDelete<SkStreamAsset> stream3(stream->fork()); |
103 REPORTER_ASSERT(reporter, stream3->isAtEnd()); | 103 REPORTER_ASSERT(reporter, stream3->isAtEnd()); |
104 char tmp; | 104 char tmp; |
105 size_t bytes = stream->read(&tmp, 1); | 105 size_t bytes = stream->read(&tmp, 1); |
106 REPORTER_ASSERT(reporter, 0 == bytes); | 106 REPORTER_ASSERT(reporter, 0 == bytes); |
107 stream3->rewind(); | 107 stream3->rewind(); |
108 test_loop_stream(reporter, stream3.get(), s, 26, 100); | 108 test_loop_stream(reporter, stream3.get(), s, 26, 100); |
109 } | 109 } |
110 | 110 |
111 for (i = 0; i < 100; i++) { | 111 for (i = 0; i < 100; i++) { |
112 REPORTER_ASSERT(reporter, ds.write(s, 26)); | 112 REPORTER_ASSERT(reporter, ds.write(s, 26)); |
113 } | 113 } |
114 REPORTER_ASSERT(reporter, ds.getOffset() == 100 * 26); | 114 REPORTER_ASSERT(reporter, ds.getOffset() == 100 * 26); |
115 | 115 |
116 { | 116 { |
117 SkAutoTUnref<SkData> data(ds.copyToData()); | 117 SkAutoTUnref<SkData> data(ds.copyToData()); |
118 REPORTER_ASSERT(reporter, 100 * 26 == data->size()); | 118 REPORTER_ASSERT(reporter, 100 * 26 == data->size()); |
119 REPORTER_ASSERT(reporter, memcmp(dst, data->data(), data->size()) == 0); | 119 REPORTER_ASSERT(reporter, memcmp(dst, data->data(), data->size()) == 0); |
120 } | 120 } |
121 | 121 |
122 { | 122 { |
123 // Test that this works after a copyToData. | 123 // Test that this works after a copyToData. |
124 SkAutoTUnref<SkStreamAsset> stream(ds.detachAsStream()); | 124 SkAutoTDelete<SkStreamAsset> stream(ds.detachAsStream()); |
125 REPORTER_ASSERT(reporter, ds.getOffset() == 0); | 125 REPORTER_ASSERT(reporter, ds.getOffset() == 0); |
126 test_loop_stream(reporter, stream.get(), s, 26, 100); | 126 test_loop_stream(reporter, stream.get(), s, 26, 100); |
127 | 127 |
128 SkAutoTUnref<SkStreamAsset> stream2(stream->duplicate()); | 128 SkAutoTDelete<SkStreamAsset> stream2(stream->duplicate()); |
129 test_loop_stream(reporter, stream2.get(), s, 26, 100); | 129 test_loop_stream(reporter, stream2.get(), s, 26, 100); |
130 } | 130 } |
131 delete[] dst; | 131 delete[] dst; |
132 | 132 |
133 SkString tmpDir = skiatest::GetTmpDir(); | 133 SkString tmpDir = skiatest::GetTmpDir(); |
134 if (!tmpDir.isEmpty()) { | 134 if (!tmpDir.isEmpty()) { |
135 test_filestreams(reporter, tmpDir.c_str()); | 135 test_filestreams(reporter, tmpDir.c_str()); |
136 } | 136 } |
137 } | 137 } |
138 | 138 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 memStream.setData(nullData); | 183 memStream.setData(nullData); |
184 TestDereferencingData(&memStream); | 184 TestDereferencingData(&memStream); |
185 | 185 |
186 } | 186 } |
187 | 187 |
188 DEF_TEST(Stream, reporter) { | 188 DEF_TEST(Stream, reporter) { |
189 TestWStream(reporter); | 189 TestWStream(reporter); |
190 TestPackedUInt(reporter); | 190 TestPackedUInt(reporter); |
191 TestNullData(); | 191 TestNullData(); |
192 } | 192 } |
OLD | NEW |