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

Side by Side Diff: tests/CodexTest.cpp

Issue 1254483004: Scanline decoding for wbmp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: More minor fixes Created 5 years, 4 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 unified diff | Download patch
« src/codec/SkCodec_wbmp.cpp ('K') | « src/codec/SkSwizzler.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 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 "Resources.h" 8 #include "Resources.h"
9 #include "SkBitmap.h" 9 #include "SkBitmap.h"
10 #include "SkCodec.h" 10 #include "SkCodec.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 REPORTER_ASSERT(r, SkIsAlign2(subset.fLeft) && SkIsAlign2(subset.fTo p)); 145 REPORTER_ASSERT(r, SkIsAlign2(subset.fLeft) && SkIsAlign2(subset.fTo p));
146 } else { 146 } else {
147 // No subsets will work. 147 // No subsets will work.
148 REPORTER_ASSERT(r, result == SkCodec::kUnimplemented); 148 REPORTER_ASSERT(r, result == SkCodec::kUnimplemented);
149 } 149 }
150 } 150 }
151 } 151 }
152 152
153 DEF_TEST(Codec, r) { 153 DEF_TEST(Codec, r) {
154 // WBMP 154 // WBMP
155 check(r, "mandrill.wbmp", SkISize::Make(512, 512), false, false); 155 check(r, "mandrill.wbmp", SkISize::Make(512, 512), true, false);
156 156
157 // WEBP 157 // WEBP
158 check(r, "baby_tux.webp", SkISize::Make(386, 395), false, true); 158 check(r, "baby_tux.webp", SkISize::Make(386, 395), false, true);
159 check(r, "color_wheel.webp", SkISize::Make(128, 128), false, true); 159 check(r, "color_wheel.webp", SkISize::Make(128, 128), false, true);
160 check(r, "yellow_rose.webp", SkISize::Make(400, 301), false, true); 160 check(r, "yellow_rose.webp", SkISize::Make(400, 301), false, true);
161 161
162 // BMP 162 // BMP
163 check(r, "randPixels.bmp", SkISize::Make(8, 8), false, false); 163 check(r, "randPixels.bmp", SkISize::Make(8, 8), false, false);
164 164
165 // ICO 165 // ICO
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 test_empty(r, "empty_images/zero-embedded.ico"); 282 test_empty(r, "empty_images/zero-embedded.ico");
283 test_empty(r, "empty_images/zero-width.bmp"); 283 test_empty(r, "empty_images/zero-width.bmp");
284 test_empty(r, "empty_images/zero-height.bmp"); 284 test_empty(r, "empty_images/zero-height.bmp");
285 test_empty(r, "empty_images/zero-width.jpg"); 285 test_empty(r, "empty_images/zero-width.jpg");
286 test_empty(r, "empty_images/zero-height.jpg"); 286 test_empty(r, "empty_images/zero-height.jpg");
287 test_empty(r, "empty_images/zero-width.png"); 287 test_empty(r, "empty_images/zero-width.png");
288 test_empty(r, "empty_images/zero-height.png"); 288 test_empty(r, "empty_images/zero-height.png");
289 test_empty(r, "empty_images/zero-width.wbmp"); 289 test_empty(r, "empty_images/zero-width.wbmp");
290 test_empty(r, "empty_images/zero-height.wbmp"); 290 test_empty(r, "empty_images/zero-height.wbmp");
291 } 291 }
292
293 static void test_invalid_parameters(skiatest::Reporter* r, const char path[]) {
294 SkAutoTDelete<SkStream> stream(resource(path));
295 if (!stream) {
296 SkDebugf("Missing resource '%s'\n", path);
297 return;
298 }
299 SkAutoTDelete<SkScanlineDecoder> decoder(SkScanlineDecoder::NewFromStream(
300 stream.detach()));
301
302 // This should return kSuccess because kIndex8 is supported.
303 SkPMColor colorStorage[256];
304 int colorCount;
305 SkCodec::Result result = decoder->start(
306 decoder->getInfo().makeColorType(kIndex_8_SkColorType), NULL, colorStora ge, &colorCount);
307 REPORTER_ASSERT(r, SkCodec::kSuccess == result);
308 // The rest of the test is uninteresting if kIndex8 is not supported
309 if (SkCodec::kSuccess != result) {
310 return;
311 }
312
313 // This should return kInvalidParameters because, in kIndex_8 mode, we must pass in a valid
314 // colorPtr and a valid colorCountPtr.
315 result = decoder->start(
316 decoder->getInfo().makeColorType(kIndex_8_SkColorType), NULL, NULL, NULL );
317 REPORTER_ASSERT(r, SkCodec::kInvalidParameters == result);
318 result = decoder->start(
319 decoder->getInfo().makeColorType(kIndex_8_SkColorType));
320 REPORTER_ASSERT(r, SkCodec::kInvalidParameters == result);
321 }
322
323 DEF_TEST(Codec_Params, r) {
324 test_invalid_parameters(r, "index8.png");
325 test_invalid_parameters(r, "mandrill.wbmp");
326 }
OLDNEW
« src/codec/SkCodec_wbmp.cpp ('K') | « src/codec/SkSwizzler.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698