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

Unified Diff: tests/CodexTest.cpp

Issue 1076923002: SkJpegCodec (Closed) Base URL: https://skia.googlesource.com/skia.git@gif-real
Patch Set: Added comment Created 5 years, 8 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/codec/SkSwizzler.cpp ('k') | tests/SwizzlerTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/CodexTest.cpp
diff --git a/tests/CodexTest.cpp b/tests/CodexTest.cpp
index a771716a24dfef27ac42f28bad1a59fefb1625c1..d7142518a33892515865232a9183689659679990 100644
--- a/tests/CodexTest.cpp
+++ b/tests/CodexTest.cpp
@@ -104,6 +104,13 @@ DEF_TEST(Codec, r) {
check(r, "color_wheel.gif", SkISize::Make(128, 128), false);
check(r, "randPixels.gif", SkISize::Make(8, 8), false);
+ // JPG
+ check(r, "CMYK.jpg", SkISize::Make(642, 516), false);
+ check(r, "color_wheel.jpg", SkISize::Make(128, 128), false);
+ check(r, "grayscale.jpg", SkISize::Make(128, 128), false);
+ check(r, "mandrill_512_q075.jpg", SkISize::Make(512, 512), false);
+ check(r, "randPixels.jpg", SkISize::Make(8, 8), false);
+
// PNG
check(r, "arrow.png", SkISize::Make(187, 312), true);
check(r, "baby_tux.png", SkISize::Make(240, 246), true);
@@ -148,3 +155,46 @@ DEF_TEST(Codec_leaks, r) {
test_invalid_stream(r, emptyIco, sizeof(emptyIco));
test_invalid_stream(r, emptyGif, sizeof(emptyGif));
}
+
+static void test_dimensions(skiatest::Reporter* r, const char path[]) {
+ // Create the codec from the resource file
+ SkAutoTDelete<SkStream> stream(resource(path));
+ if (!stream) {
+ SkDebugf("Missing resource '%s'\n", path);
+ return;
+ }
+ SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(stream.detach()));
+ if (!codec) {
+ ERRORF(r, "Unable to create codec '%s'", path);
+ return;
+ }
+
+ // Check that the decode is successful for a variety of scales
+ for (float scale = -0.05f; scale < 2.0f; scale += 0.05f) {
+ // Scale the output dimensions
+ SkISize scaledDims = codec->getScaledDimensions(scale);
+ SkImageInfo scaledInfo = codec->getInfo().makeWH(scaledDims.width(), scaledDims.height());
+
+ // Set up for the decode
+ size_t rowBytes = scaledDims.width() * sizeof(SkPMColor);
+ size_t totalBytes = scaledInfo.getSafeSize(rowBytes);
+ SkAutoTMalloc<SkPMColor> pixels(totalBytes);
+
+ SkImageGenerator::Result result =
+ codec->getPixels(scaledInfo, pixels.get(), rowBytes, NULL, NULL, NULL);
+ REPORTER_ASSERT(r, SkImageGenerator::kSuccess == result);
+ }
+}
+
+// Ensure that onGetScaledDimensions returns valid image dimensions to use for decodes
+DEF_TEST(Codec_Dimensions, r) {
+ // JPG
+ test_dimensions(r, "CMYK.jpg");
+ test_dimensions(r, "color_wheel.jpg");
+ test_dimensions(r, "grayscale.jpg");
+ test_dimensions(r, "mandrill_512_q075.jpg");
+ test_dimensions(r, "randPixels.jpg");
+}
+
+
+
« no previous file with comments | « src/codec/SkSwizzler.cpp ('k') | tests/SwizzlerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698