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

Side by Side Diff: tests/JpegTest.cpp

Issue 24449003: Make Jpeg decoding more fault resistant. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: lint changes, bugfix, description changed Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 /*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #include <SkBitmap.h>
scroggo 2013/10/01 22:04:14 nit: Typically we use "" instead of <> for skia fi
9 #include <SkData.h>
10 #include <SkForceLinking.h>
11 #include <SkImageDecoder.h>
12 #include <SkImage.h>
13 #include <SkStream.h>
14 #include "./Test.h"
scroggo 2013/10/01 22:04:14 Why is the ./ necessary? Our other tests do not us
15
16 __SK_FORCE_IMAGE_DECODER_LINKING;
17
18 #define JPEG_TEST_WRITE_TO_FILE_FOR_DEBUGGING 0 // do not do this for
19 // normal unit testing.
20
21 namespace {
22 char goodJpegImage[] = {
23 0xFF, 0xD8, 0xFF, 0xE0, 0x00, 0x10, 0x4A, 0x46,
24 0x49, 0x46, 0x00, 0x01, 0x01, 0x01, 0x00, 0x8F,
25 0x00, 0x8F, 0x00, 0x00, 0xFF, 0xDB, 0x00, 0x43,
26 0x00, 0x05, 0x03, 0x04, 0x04, 0x04, 0x03, 0x05,
27 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x06, 0x07,
28 0x0C, 0x08, 0x07, 0x07, 0x07, 0x07, 0x0F, 0x0B,
29 0x0B, 0x09, 0x0C, 0x11, 0x0F, 0x12, 0x12, 0x11,
30 0x0F, 0x11, 0x11, 0x13, 0x16, 0x1C, 0x17, 0x13,
31 0x14, 0x1A, 0x15, 0x11, 0x11, 0x18, 0x21, 0x18,
32 0x1A, 0x1D, 0x1D, 0x1F, 0x1F, 0x1F, 0x13, 0x17,
33 0x22, 0x24, 0x22, 0x1E, 0x24, 0x1C, 0x1E, 0x1F,
34 0x1E, 0xFF, 0xDB, 0x00, 0x43, 0x01, 0x05, 0x05,
35 0x05, 0x07, 0x06, 0x07, 0x0E, 0x08, 0x08, 0x0E,
36 0x1E, 0x14, 0x11, 0x14, 0x1E, 0x1E, 0x1E, 0x1E,
37 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
38 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
39 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
40 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
41 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E,
42 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0x1E, 0xFF, 0xC0,
43 0x00, 0x11, 0x08, 0x00, 0x80, 0x00, 0x80, 0x03,
44 0x01, 0x22, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11,
45 0x01, 0xFF, 0xC4, 0x00, 0x18, 0x00, 0x01, 0x01,
46 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
47 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
48 0x08, 0x06, 0x05, 0xFF, 0xC4, 0x00, 0x4C, 0x10,
49 0x00, 0x00, 0x01, 0x07, 0x08, 0x05, 0x08, 0x05,
50 0x0A, 0x03, 0x09, 0x01, 0x00, 0x00, 0x00, 0x00,
51 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x11,
52 0x05, 0x08, 0x12, 0x13, 0x14, 0x15, 0x38, 0xB4,
53 0x16, 0x17, 0x21, 0x31, 0x84, 0x18, 0x22, 0x23,
54 0x24, 0x58, 0xA5, 0xA6, 0xD2, 0x32, 0x51, 0x56,
55 0x61, 0xD3, 0x28, 0x33, 0x41, 0x48, 0x67, 0x85,
56 0x86, 0xC3, 0xE4, 0xF0, 0x25, 0x49, 0x55, 0x09,
57 0x34, 0x35, 0x36, 0x53, 0x68, 0x72, 0x81, 0xA7,
58 0xE2, 0xFF, 0xC4, 0x00, 0x14, 0x01, 0x01, 0x00,
59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
61 0xC4, 0x00, 0x14, 0x11, 0x01, 0x00, 0x00, 0x00,
62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
63 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xDA, 0x00,
64 0x0C, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11,
65 0x00, 0x3F, 0x00, 0xD9, 0x62, 0x10, 0x80, 0x40,
66 0x65, 0xED, 0x62, 0x75, 0xC8, 0x7D, 0xFF, 0x00,
67 0x92, 0x30, 0x33, 0x01, 0x97, 0xB5, 0x89, 0xD7,
68 0x21, 0xF7, 0xFE, 0x48, 0xC0, 0x0C, 0xC2, 0x10,
69 0x80, 0x40, 0x66, 0x64, 0xB8, 0x62, 0x64, 0x78,
70 0xDC, 0xEA, 0x70, 0xCC, 0x06, 0x66, 0x4B, 0x86,
71 0x26, 0x47, 0x8D, 0xCE, 0xA7, 0x00, 0xCC, 0x21,
72 0x08, 0x04, 0x31, 0x9F, 0xF2, 0xC5, 0xFD, 0xFF,
73 0x00, 0x5A, 0x1B, 0x30, 0x63, 0x3F, 0xE5, 0x8B,
74 0xFB, 0xFE, 0xB4, 0x03, 0x66, 0x01, 0x99, 0x92,
75 0xE1, 0x89, 0x91, 0xE3, 0x73, 0xA9, 0xC3, 0x30,
76 0x19, 0x99, 0x2E, 0x18, 0x99, 0x1E, 0x37, 0x3A,
77 0x9C, 0x03, 0x30, 0x84, 0x33, 0x33, 0x92, 0x55,
78 0x7E, 0xCF, 0x29, 0xD8, 0x49, 0x0D, 0xAE, 0xBD,
79 0xAE, 0xAB, 0xC6, 0xBB, 0xAA, 0x68, 0x92, 0x92,
80 0x6A, 0xBA, 0xB4, 0xE9, 0x11, 0x7A, 0x7C, 0xD8,
81 0xC6, 0x84, 0x77, 0x12, 0x11, 0x87, 0xBC, 0x07,
82 0x67, 0xAC, 0x47, 0xED, 0xD9, 0xD3, 0xC6, 0xAA,
83 0x5E, 0x51, 0x6B, 0x11, 0xFB, 0x76, 0x74, 0xF1,
84 0xAA, 0x97, 0x94, 0x33, 0x08, 0x00, 0xCE, 0xB1,
85 0x1F, 0xB7, 0x67, 0x4F, 0x1A, 0xA9, 0x79, 0x41,
86 0x9B, 0xC4, 0x6C, 0xDE, 0xC2, 0xCB, 0xF6, 0x75,
87 0x92, 0x84, 0xA0, 0xE5, 0xEC, 0x12, 0xB2, 0x9D,
88 0xEF, 0x76, 0xC9, 0xBA, 0x50, 0xAA, 0x92, 0xF1,
89 0xA6, 0xAA, 0x69, 0x12, 0xF4, 0xA4, 0x36, 0x8A,
90 0x2A, 0xB3, 0x60, 0x77, 0x3A, 0x34, 0xA3, 0x02,
91 0x6D, 0x1A, 0xC8, 0x0C, 0xBD, 0xAC, 0x4E, 0xB9,
92 0x0F, 0xBF, 0xF2, 0x46, 0x00, 0xB5, 0x88, 0xFD,
93 0xBB, 0x3A, 0x78, 0xD5, 0x4B, 0xCA, 0x2D, 0x62,
94 0x3F, 0x6E, 0xCE, 0x9E, 0x35, 0x52, 0xF2, 0x86,
95 0x61, 0x00, 0x19, 0xD6, 0x23, 0xF6, 0xEC, 0xE9,
96 0xE3, 0x55, 0x2F, 0x28, 0x33, 0x9A, 0xE3, 0x66,
97 0xF6, 0x24, 0x97, 0x12, 0xCE, 0xC9, 0xEC, 0xCB,
98 0x97, 0xD2, 0x49, 0x25, 0x15, 0xAA, 0xCF, 0x29,
99 0x69, 0x42, 0xAA, 0xA5, 0x7C, 0x56, 0x92, 0x94,
100 0xEE, 0x88, 0xF3, 0x4A, 0x71, 0xB4, 0x4E, 0x29,
101 0xC6, 0xED, 0xDF, 0x46, 0x3B, 0x8A, 0x35, 0x90,
102 0x19, 0x99, 0x2E, 0x18, 0x99, 0x1E, 0x37, 0x3A,
103 0x9C, 0x01, 0x9B, 0xE4, 0x79, 0x73, 0x93, 0x59,
104 0x69, 0xD9, 0x36, 0x65, 0x99, 0x62, 0x34, 0x1E,
105 0x56, 0x95, 0xAD, 0x96, 0x75, 0x7B, 0xD6, 0x4F,
106 0x94, 0x6F, 0x1A, 0xA3, 0x0C, 0x3C, 0xEE, 0x71,
107 0xE6, 0x51, 0x45, 0x56, 0x6D, 0x22, 0xED, 0x29,
108 0x29, 0x53, 0xFA, 0x4A, 0x41, 0xE2, 0xFC, 0xBB,
109 0x3F, 0x77, 0x28, 0x66, 0x7B, 0x58, 0x9D, 0x72,
110 0x1F, 0x7F, 0xE4, 0x8C, 0x0C, 0xC0, 0x31, 0x9F,
111 0xCB, 0xB3, 0xF7, 0x72, 0x8F, 0x19, 0xB6, 0x76,
112 0x8F, 0x61, 0x8B, 0x99, 0xDA, 0xDA, 0x16, 0x99,
113 0xB7, 0xB0, 0x49, 0x2A, 0x74, 0x2D, 0x0C, 0x9D,
114 0xD4, 0xAA, 0x92, 0x85, 0x39, 0x40, 0xD2, 0x9B,
115 0xD7, 0x0C, 0x3C, 0xA7, 0x16, 0x27, 0x1C, 0x6A,
116 0x5D, 0x91, 0xDF, 0x43, 0x70, 0xDC, 0xA2, 0x01,
117 0x8C, 0xF5, 0xC1, 0xFE, 0xF1, 0x3F, 0xF3, 0x4F,
118 0xFE, 0x07, 0xB5, 0x35, 0xC6, 0x31, 0xEC, 0x4A,
119 0xCE, 0x25, 0x9D, 0x94, 0x19, 0x97, 0xD1, 0xA3,
120 0x72, 0x4A, 0x5B, 0x55, 0x9E, 0x4D, 0xD1, 0x75,
121 0x55, 0xBA, 0x88, 0x2D, 0x25, 0x21, 0xDD, 0x29,
122 0xE7, 0x10, 0xE3, 0xA9, 0x1C, 0x43, 0x8E, 0xDB,
123 0xBA, 0x94, 0x37, 0x10, 0x6B, 0x21, 0x00, 0x19,
124 0xD5, 0xDB, 0xF6, 0xED, 0x17, 0xE0, 0xA5, 0x2F,
125 0x30, 0x33, 0x9A, 0xE3, 0x18, 0xF6, 0x25, 0x67,
126 0x12, 0xCE, 0xCA, 0x0C, 0xCB, 0xE8, 0xD1, 0xB9,
127 0x25, 0x2D, 0xAA, 0xCF, 0x26, 0xE8, 0xBA, 0xAA,
128 0xDD, 0x44, 0x16, 0x92, 0x90, 0xEE, 0x94, 0xF3,
129 0x88, 0x71, 0xD4, 0x8E, 0x21, 0xC7, 0x6D, 0xDD,
130 0x4A, 0x1B, 0x88, 0x35, 0x90, 0x19, 0x99, 0x2E,
131 0x18, 0x99, 0x1E, 0x37, 0x3A, 0x9C, 0x03, 0x30,
132 0x80, 0x04, 0xDB, 0x99, 0x69, 0x09, 0x8B, 0x7E,
133 0xCF, 0x8D, 0x99, 0x66, 0x54, 0x6C, 0x12, 0x4A,
134 0x9D, 0xC7, 0x67, 0x57, 0xAD, 0x3D, 0x25, 0x0A,
135 0x6A, 0xA9, 0x4F, 0x3B, 0x9C, 0x79, 0x4A, 0x71,
136 0x62, 0x71, 0xC7, 0x17, 0x69, 0x4B, 0xBF, 0xD4,
137 0x1F, 0xC0, 0x43, 0x8C, 0x79, 0xAE, 0xB5, 0x84,
138 0x79, 0x57, 0x7E, 0x9A, 0xC8, 0x57, 0xAD, 0xDD,
139 0x5B, 0x64, 0xEB, 0x69, 0xD0, 0xD5, 0xD6, 0x50,
140 0xA7, 0xF3, 0x47, 0x9B, 0x18, 0xD0, 0x33, 0x7C,
141 0x61, 0x0D, 0x9F, 0x48, 0xEC, 0xC0, 0x03, 0x12,
142 0xFB, 0x5E, 0xC3, 0x68, 0xCC, 0x2A, 0x34, 0xCC,
143 0xCB, 0x83, 0xB7, 0xC9, 0x2B, 0x94, 0xEC, 0xEB,
144 0x1A, 0x5E, 0xAA, 0x8E, 0x9D, 0x03, 0xCE, 0x30,
145 0xEE, 0x69, 0xE8, 0xC8, 0x71, 0x20, 0x71, 0xA7,
146 0x13, 0x69, 0x09, 0xBB, 0xD4, 0x03, 0xD9, 0xE4,
147 0xB8, 0xE2, 0x7D, 0x86, 0xEF, 0x65, 0xDF, 0x8C,
148 0x2E, 0x4B, 0x8E, 0x27, 0xD8, 0x6E, 0xF6, 0x5D,
149 0xF8, 0xC2, 0xD6, 0x23, 0xF6, 0xEC, 0xE9, 0xE3,
150 0x55, 0x2F, 0x28, 0xB5, 0x88, 0xFD, 0xBB, 0x3A,
151 0x78, 0xD5, 0x4B, 0xCA, 0x02, 0xE4, 0xB8, 0xE2,
152 0x7D, 0x86, 0xEF, 0x65, 0xDF, 0x8C, 0x0C, 0xE6,
153 0xB8, 0xE1, 0x1D, 0x3B, 0x68, 0xE2, 0x59, 0xD6,
154 0x99, 0xA6, 0x65, 0x2D, 0xF2, 0xB2, 0xE5, 0xAA,
155 0xD0, 0xB1, 0x78, 0x2D, 0x23, 0xA7, 0x41, 0x69,
156 0x29, 0x86, 0xF3, 0x4C, 0x48, 0x43, 0x49, 0x03,
157 0x4D, 0x34, 0x9B, 0x08, 0x4D, 0xDE, 0xB0, 0x99,
158 0xAC, 0x47, 0xED, 0xD9, 0xD3, 0xC6, 0xAA, 0x5E,
159 0x50, 0x67, 0x35, 0xC6, 0xCD, 0xEC, 0x49, 0x2E,
160 0x25, 0x9D, 0x93, 0xD9, 0x97, 0x2F, 0xA4, 0x92,
161 0x4A, 0x2B, 0x55, 0x9E, 0x52, 0xD2, 0x85, 0x55,
162 0x4A, 0xF8, 0xAD, 0x25, 0x29, 0xDD, 0x11, 0xE6,
163 0x94, 0xE3, 0x68, 0x9C, 0x53, 0x8D, 0xDB, 0xBE,
164 0x8C, 0x77, 0x14, 0x04, 0xF1, 0x1C, 0x23, 0xA7,
165 0x92, 0x5F, 0xB3, 0xAC, 0x66, 0x64, 0xF6, 0x52,
166 0xA6, 0x49, 0x97, 0xAF, 0x7B, 0xC9, 0x5E, 0xF0,
167 0x5A, 0x3A, 0xBE, 0xA1, 0x54, 0xD3, 0xD1, 0x73,
168 0x8A, 0x90, 0xA7, 0x1B, 0x44, 0xE2, 0x94, 0xBC,
169 0xD2, 0x92, 0x3F, 0x4C, 0x48, 0x13, 0x39, 0x2E,
170 0x38, 0x9F, 0x61, 0xBB, 0xD9, 0x77, 0xE3, 0x01,
171 0x97, 0xF4, 0xF7, 0x1B, 0xB6, 0x51, 0xE7, 0xBB,
172 0x76, 0xD5, 0xB5, 0x74, 0xB7, 0x15, 0xCD, 0x7A,
173 0x59, 0x15, 0x34, 0x89, 0x02, 0xCD, 0xBA, 0xB9,
174 0x02, 0x34, 0x47, 0xF3, 0xD1, 0x18, 0x5A, 0xBA,
175 0x14, 0x8C, 0x2E, 0xD2, 0x16, 0x95, 0x28, 0x12,
176 0x10, 0x29, 0x46, 0xCC, 0x00, 0x33, 0xC9, 0x71,
177 0xC4, 0xFB, 0x0D, 0xDE, 0xCB, 0xBF, 0x18, 0x5C,
178 0x97, 0x1C, 0x4F, 0xB0, 0xDD, 0xEC, 0xBB, 0xF1,
179 0x83, 0x30, 0x80, 0x0C, 0xF2, 0x5C, 0x71, 0x3E,
180 0xC3, 0x77, 0xB2, 0xEF, 0xC6, 0x17, 0x25, 0xC7,
181 0x13, 0xEC, 0x37, 0x7B, 0x2E, 0xFC, 0x60, 0xCC,
182 0x20, 0x03, 0x3C, 0x97, 0x1C, 0x4F, 0xB0, 0xDD,
183 0xEC, 0xBB, 0xF1, 0x81, 0x9C, 0xD7, 0x1C, 0x23,
184 0xA7, 0x6D, 0x1C, 0x4B, 0x3A, 0xD3, 0x34, 0xCC,
185 0xA5, 0xBE, 0x56, 0x5C, 0xB5, 0x5A, 0x16, 0x2F,
186 0x05, 0xA4, 0x74, 0xE8, 0x2D, 0x25, 0x30, 0xDE,
187 0x69, 0x89, 0x08, 0x69, 0x20, 0x69, 0xA6, 0x93,
188 0x61, 0x09, 0xBB, 0xD6, 0x35, 0x90, 0x19, 0x99,
189 0x2E, 0x18, 0x99, 0x1E, 0x37, 0x3A, 0x9C, 0x07,
190 0x8D, 0x36, 0xE6, 0xA6, 0x42, 0x6D, 0x1F, 0xB3,
191 0xE3, 0x69, 0x99, 0x95, 0xEB, 0x7C, 0x92, 0xB9,
192 0x71, 0xD9, 0xD6, 0x2A, 0x8F, 0x47, 0x4E, 0x82,
193 0xAA, 0x53, 0x0E, 0xE6, 0x9E, 0x42, 0x1C, 0x48,
194 0x1C, 0x69, 0xC4, 0xDA, 0x42, 0x6E, 0xF5, 0x07,
195 0xF1, 0x08, 0x00, 0xCB, 0x40, 0xF7, 0x1B, 0xBD,
196 0x67, 0xB4, 0xEC, 0x53, 0x14, 0xE9, 0x74, 0xAB,
197 0x47, 0x2C, 0x96, 0xB5, 0xBD, 0x22, 0x40, 0xA5,
198 0xFD, 0xE1, 0x01, 0x12, 0x99, 0xCC, 0x4A, 0x67,
199 0xFC, 0xC9, 0xB0, 0xA5, 0xF4, 0x62, 0x58, 0x44,
200 0x84, 0x06, 0x73, 0x5C, 0x6C, 0xDE, 0xC4, 0x92,
201 0xE2, 0x59, 0xD9, 0x3D, 0x99, 0x72, 0xFA, 0x49,
202 0x24, 0xA2, 0xB5, 0x59, 0xE5, 0x2D, 0x28, 0x55,
203 0x54, 0xAF, 0x8A, 0xD2, 0x52, 0x9D, 0xD1, 0x1E,
204 0x69, 0x4E, 0x36, 0x89, 0xC5, 0x38, 0xDD, 0xBB,
205 0xE8, 0xC7, 0x71, 0x42, 0x63, 0xA5, 0xC4, 0xEB,
206 0xEF, 0xFB, 0x83, 0x24, 0x78, 0xA6, 0x4B, 0x86,
207 0x26, 0x47, 0x8D, 0xCE, 0xA7, 0x01, 0x6B, 0x11,
208 0xFB, 0x76, 0x74, 0xF1, 0xAA, 0x97, 0x94, 0x5A,
209 0xC4, 0x7E, 0xDD, 0x9D, 0x3C, 0x6A, 0xA5, 0xE5,
210 0x0C, 0xC2, 0x00, 0x33, 0xAC, 0x47, 0xED, 0xD9,
211 0xD3, 0xC6, 0xAA, 0x5E, 0x50, 0x67, 0x35, 0xC6,
212 0xCD, 0xEC, 0x49, 0x2E, 0x25, 0x9D, 0x93, 0xD9,
213 0x97, 0x2F, 0xA4, 0x92, 0x4A, 0x2B, 0x55, 0x9E,
214 0x52, 0xD2, 0x85, 0x55, 0x4A, 0xF8, 0xAD, 0x25,
215 0x29, 0xDD, 0x11, 0xE6, 0x94, 0xE3, 0x68, 0x9C,
216 0x53, 0x8D, 0xDB, 0xBE, 0x8C, 0x77, 0x14, 0x6B,
217 0x20, 0x33, 0x32, 0x5C, 0x31, 0x32, 0x3C, 0x6E,
218 0x75, 0x38, 0x0C, 0xCD, 0x3E, 0x76, 0x89, 0xBB,
219 0x97, 0xF4, 0x3B, 0x4D, 0x5D, 0xD6, 0x86, 0xD4,
220 0x5B, 0xAC, 0x9F, 0xC6, 0x90, 0x2F, 0xDA, 0xA9,
221 0x59, 0xE9, 0xFC, 0xD1, 0x09, 0x42, 0x8C, 0x0C,
222 0xDF, 0xBE, 0x9E, 0xCD, 0xC5, 0x1A, 0x67, 0x58,
223 0x8F, 0xDB, 0xB3, 0xA7, 0x8D, 0x54, 0xBC, 0xA3,
224 0x8C, 0xFE, 0xD0, 0x76, 0x16, 0xFF, 0x00, 0x76,
225 0x0A, 0xAD, 0xAD, 0xE9, 0x66, 0xD1, 0x5A, 0x7D,
226 0x52, 0xCF, 0x4E, 0xD5, 0x6A, 0x4E, 0xAC, 0x8B,
227 0xD3, 0xA4, 0x4A, 0x14, 0x61, 0x1D, 0xC7, 0x47,
228 0x76, 0xCD, 0xE2, 0x7D, 0xAA, 0xAF, 0xD9, 0xDA,
229 0xBB, 0x09, 0x5D, 0xB5, 0xD7, 0xB5, 0xEB, 0x77,
230 0x54, 0xF5, 0x4D, 0x12, 0x52, 0x43, 0x59, 0x58,
231 0x9D, 0x1A, 0x2F, 0x4F, 0x9D, 0x08, 0x53, 0x8E,
232 0xE2, 0xC6, 0x10, 0xF7, 0x80, 0xEC, 0xF5, 0x88,
233 0xFD, 0xBB, 0x3A, 0x78, 0xD5, 0x4B, 0xCA, 0x2D,
234 0x62, 0x3F, 0x6E, 0xCE, 0x9E, 0x35, 0x52, 0xF2,
235 0x8C, 0x67, 0xCA, 0x8D, 0xFB, 0x7B, 0x73, 0xDD,
236 0x2A, 0x5F, 0x04, 0x5C, 0xA8, 0xDF, 0xB7, 0xB7,
237 0x3D, 0xD2, 0xA5, 0xF0, 0x40, 0x6C, 0xCD, 0x62,
238 0x3F, 0x6E, 0xCE, 0x9E, 0x35, 0x52, 0xF2, 0x8B,
239 0x58, 0x8F, 0xDB, 0xB3, 0xA7, 0x8D, 0x54, 0xBC,
240 0xA3, 0x33, 0x3B, 0x27, 0xA5, 0x3B, 0x17, 0x95,
241 0x78, 0x68, 0x54, 0xBB, 0x7A, 0xDD, 0xD5, 0x56,
242 0xBE, 0xA9, 0x25, 0xA1, 0xAB, 0xAC, 0xA7, 0x43,
243 0xE7, 0x4C, 0x36, 0x31, 0xA0, 0x7E, 0xE8, 0xC2,
244 0x1B, 0x7E, 0x81, 0xD9, 0xFC, 0xBB, 0x3F, 0x77,
245 0x28, 0x06, 0x6D, 0x62, 0x3F, 0x6E, 0xCE, 0x9E,
246 0x35, 0x52, 0xF2, 0x83, 0x39, 0xAE, 0x36, 0x6F,
247 0x62, 0x49, 0x71, 0x2C, 0xEC, 0x9E, 0xCC, 0xB9,
248 0x7D, 0x24, 0x92, 0x51, 0x5A, 0xAC, 0xF2, 0x96,
249 0x94, 0x2A, 0xAA, 0x57, 0xC5, 0x69, 0x29, 0x4E,
250 0xE8, 0x8F, 0x34, 0xA7, 0x1B, 0x44, 0xE2, 0x9C,
251 0x6E, 0xDD, 0xF4, 0x63, 0xB8, 0xA3, 0xC5, 0xF9,
252 0x76, 0x7E, 0xEE, 0x51, 0xC6, 0x39, 0x2E, 0x56,
253 0x3A, 0xB0, 0x92, 0x35, 0x69, 0xFE, 0x53, 0xE9,
254 0xAC, 0x1F, 0xE1, 0x7F, 0xEB, 0xA4, 0xAC, 0xF9,
255 0xFE, 0x93, 0xE7, 0x2B, 0x3D, 0x2F, 0xFA, 0xD9,
256 0x00, 0x1B, 0xFC, 0x42, 0x10, 0x0C, 0x9A, 0xD4,
257 0xBE, 0x39, 0x09, 0xCF, 0xBF, 0x67, 0xD5, 0x28,
258 0x4A, 0x08, 0x6D, 0xF2, 0xB2, 0xE5, 0xC3, 0x76,
259 0xC9, 0xB4, 0x8F, 0x47, 0x6B, 0xA0, 0xAA, 0x42,
260 0x25, 0xE9, 0x48, 0x8C, 0xF3, 0x4C, 0xA0, 0x6A,
261 0x42, 0x1D, 0xCE, 0x84, 0x61, 0x02, 0x6D, 0xDC,
262 0x64, 0xE4, 0xA7, 0x5B, 0xAB, 0x57, 0x61, 0x24,
263 0x31, 0x5A, 0x05, 0x7A, 0xDD, 0xD5, 0xDD, 0x6E,
264 0xF7, 0xA9, 0xAC, 0xAC, 0x4E, 0x91, 0x2F, 0xA1,
265 0x52, 0x74, 0x21, 0x4E, 0x1B, 0xCB, 0x18, 0x47,
266 0xDC, 0x34, 0xCC, 0xF6, 0xB0, 0xC4, 0xD7, 0x70,
267 0x59, 0xD4, 0x02, 0x99, 0x2E, 0x18, 0x99, 0x1E,
268 0x37, 0x3A, 0x9C, 0x00, 0xCF, 0x2E, 0x7F, 0xB2,
269 0xEE, 0xFF, 0x00, 0xFD, 0x38, 0xB9, 0x73, 0xFD,
270 0x97, 0x77, 0xFF, 0x00, 0xE9, 0xC6, 0xCC, 0x10,
271 0x0C, 0x67, 0xCB, 0x9F, 0xEC, 0xBB, 0xBF, 0xFF,
272 0x00, 0x4E, 0x38, 0xC7, 0x25, 0x3A, 0xDD, 0x5A,
273 0xBB, 0x09, 0x21, 0x8A, 0xD0, 0x2B, 0xD6, 0xEE,
274 0xAE, 0xEB, 0x77, 0xBD, 0x4D, 0x65, 0x62, 0x74,
275 0x89, 0x7D, 0x0A, 0x93, 0xA1, 0x0A, 0x70, 0xDE,
276 0x58, 0xC2, 0x3E, 0xE1, 0xBF, 0xC0, 0xCC, 0xC9,
277 0x70, 0xC4, 0xC8, 0xF1, 0xB9, 0xD4, 0xE0, 0x33,
278 0x33, 0xED, 0x9D, 0x6E, 0xB2, 0x9D, 0x84, 0xAE,
279 0xC5, 0x68, 0x15, 0xD5, 0x78, 0xD4, 0xF5, 0xBB,
280 0xDE, 0xBA, 0xAE, 0xAD, 0x3A, 0x34, 0xBE, 0x85,
281 0x49, 0xB1, 0x8D, 0x08, 0x6F, 0x24, 0x23, 0x1F,
282 0x70, 0x9F, 0x6C, 0xEB, 0x75, 0x94, 0xEC, 0x25,
283 0x76, 0x2B, 0x40, 0xAE, 0xAB, 0xC6, 0xA7, 0xAD,
284 0xDE, 0xF5, 0xD5, 0x75, 0x69, 0xD1, 0xA5, 0xF4,
285 0x2A, 0x4D, 0x8C, 0x68, 0x43, 0x79, 0x21, 0x18,
286 0xFB, 0x86, 0x99, 0x9E, 0xD6, 0x18, 0x9A, 0xEE,
287 0x0B, 0x3A, 0x80, 0x53, 0xDA, 0xC3, 0x13, 0x5D,
288 0xC1, 0x67, 0x50, 0x00, 0xCC, 0xCE, 0x4A, 0x75,
289 0xBA, 0xB5, 0x76, 0x12, 0x43, 0x15, 0xA0, 0x57,
290 0xAD, 0xDD, 0x5D, 0xD6, 0xEF, 0x7A, 0x9A, 0xCA,
291 0xC4, 0xE9, 0x12, 0xFA, 0x15, 0x27, 0x42, 0x14,
292 0xE1, 0xBC, 0xB1, 0x84, 0x7D, 0xC3, 0xB3, 0xE5,
293 0xCF, 0xF6, 0x5D, 0xDF, 0xFF, 0x00, 0xA7, 0x0C,
294 0xD3, 0x25, 0xC3, 0x13, 0x23, 0xC6, 0xE7, 0x53,
295 0x86, 0x60, 0x18, 0x01, 0x92, 0x9D, 0x6D, 0xC0,
296 0xF3, 0xDB, 0x76, 0xD7, 0x40, 0xAD, 0x3A, 0x55,
297 0x60, 0xEA, 0x97, 0xBD, 0x0B, 0x2D, 0x95, 0x01,
298 0x51, 0x7A, 0x75, 0x25, 0xA7, 0x4A, 0x31, 0xDC,
299 0x6C, 0x37, 0x6D, 0xDE, 0x3B, 0x3E, 0x5C, 0xFF,
300 0x00, 0x65, 0xDD, 0xFF, 0x00, 0xFA, 0x70, 0xCC,
301 0xE9, 0x71, 0x3A, 0xFB, 0xFE, 0xE0, 0xC9, 0x1E,
302 0x19, 0x80, 0x63, 0x3E, 0x5C, 0xFF, 0x00, 0x65,
303 0xDD, 0xFF, 0x00, 0xFA, 0x71, 0xC6, 0x39, 0x29,
304 0xD6, 0xEA, 0xD5, 0xD8, 0x49, 0x0C, 0x56, 0x81,
305 0x5E, 0xB7, 0x75, 0x77, 0x5B, 0xBD, 0xEA, 0x6B,
306 0x2B, 0x13, 0xA4, 0x4B, 0xE8, 0x54, 0x9D, 0x08,
307 0x53, 0x86, 0xF2, 0xC6, 0x11, 0xF7, 0x0D, 0xFE,
308 0x06, 0x66, 0x4B, 0x86, 0x26, 0x47, 0x8D, 0xCE,
309 0xA7, 0x00, 0xCC, 0x21, 0x08, 0x00, 0xCC, 0xF6,
310 0xB0, 0xC4, 0xD7, 0x70, 0x59, 0xD4, 0x02, 0x99,
311 0x2E, 0x18, 0x99, 0x1E, 0x37, 0x3A, 0x9C, 0x53,
312 0xDA, 0xC3, 0x13, 0x5D, 0xC1, 0x67, 0x50, 0x0A,
313 0x64, 0xB8, 0x62, 0x64, 0x78, 0xDC, 0xEA, 0x70,
314 0x0C, 0xC2, 0x10, 0x80, 0x40, 0x66, 0x64, 0xB8,
315 0x62, 0x64, 0x78, 0xDC, 0xEA, 0x70, 0xCC, 0x06,
316 0x66, 0x4B, 0x86, 0x26, 0x47, 0x8D, 0xCE, 0xA7,
317 0x01, 0x4F, 0x6B, 0x0C, 0x4D, 0x77, 0x05, 0x9D,
318 0x40, 0x29, 0xED, 0x61, 0x89, 0xAE, 0xE0, 0xB3,
319 0xA8, 0x05, 0x3D, 0xAC, 0x31, 0x35, 0xDC, 0x16,
320 0x75, 0x00, 0xA7, 0xB5, 0x86, 0x26, 0xBB, 0x82,
321 0xCE, 0xA0, 0x01, 0x4C, 0x97, 0x0C, 0x4C, 0x8F,
322 0x1B, 0x9D, 0x4E, 0x19, 0x86, 0x4D, 0x9A, 0xE3,
323 0xFB, 0x74, 0xEC, 0x5B, 0x89, 0x67, 0x59, 0x96,
324 0x99, 0xAB, 0xB0, 0x4A, 0xCA, 0x76, 0xAB, 0x42,
325 0xBD, 0xDE, 0xB4, 0x92, 0x85, 0x35, 0xA4, 0xA7,
326 0x9B, 0xCE, 0x31, 0x19, 0x4D, 0x2C, 0x4D, 0x38,
327 0xD2, 0xEC, 0x29, 0x77, 0xFA, 0xC2, 0x67, 0x2A,
328 0x37, 0x13, 0xED, 0xCF, 0x74, 0xAE, 0xFC, 0x10,
329 0x03, 0x33, 0x80, 0xFA, 0xCE, 0xFE, 0x13, 0xFC,
330 0xB0, 0xCD, 0x32, 0x5C, 0x31, 0x32, 0x3C, 0x6E,
331 0x75, 0x38, 0x00, 0x79, 0x2D, 0x4C, 0x84, 0xDA,
332 0x33, 0x13, 0x91, 0x69, 0x99, 0x95, 0xEB, 0x7C,
333 0x92, 0xB9, 0xA2, 0xF6, 0x75, 0x8A, 0xA3, 0xD1,
334 0xD3, 0xA0, 0x79, 0xA6, 0x1D, 0xCD, 0x3C, 0x84,
335 0x38, 0x90, 0x38, 0xD3, 0x89, 0xB4, 0x84, 0xDD,
336 0xEA, 0x0F, 0xF3, 0x25, 0xC3, 0x13, 0x23, 0xC6,
337 0xE7, 0x53, 0x80, 0x66, 0x03, 0x33, 0x25, 0xC3,
338 0x13, 0x23, 0xC6, 0xE7, 0x53, 0x86, 0x60, 0x33,
339 0x32, 0x5C, 0x31, 0x32, 0x3C, 0x6E, 0x75, 0x38,
340 0x06, 0x61, 0x08, 0x40, 0x06, 0x67, 0xB5, 0x86,
341 0x26, 0xBB, 0x82, 0xCE, 0xA0, 0x14, 0xC9, 0x70,
342 0xC4, 0xC8, 0xF1, 0xB9, 0xD4, 0xE2, 0x9E, 0xD6,
343 0x18, 0x9A, 0xEE, 0x0B, 0x3A, 0x80, 0x53, 0x25,
344 0xC3, 0x13, 0x23, 0xC6, 0xE7, 0x53, 0x80, 0x66,
345 0x10, 0x84, 0x02, 0x03, 0x33, 0x25, 0xC3, 0x13,
346 0x23, 0xC6, 0xE7, 0x53, 0x86, 0x60, 0x33, 0x32,
347 0x5C, 0x31, 0x32, 0x3C, 0x6E, 0x75, 0x38, 0x0A,
348 0x7B, 0x58, 0x62, 0x6B, 0xB8, 0x2C, 0xEA, 0x01,
349 0x4F, 0x6B, 0x0C, 0x4D, 0x77, 0x05, 0x9D, 0x40,
350 0x29, 0xED, 0x61, 0x89, 0xAE, 0xE0, 0xB3, 0xA8,
351 0x05, 0x3D, 0xAC, 0x31, 0x35, 0xDC, 0x16, 0x75,
352 0x00, 0x06, 0x61, 0x08, 0x40, 0x31, 0x9C, 0xEB,
353 0x65, 0x86, 0xEE, 0x5F, 0xD7, 0x2C, 0x93, 0xA6,
354 0x36, 0x66, 0x4D, 0x95, 0xB8, 0xFF, 0x00, 0x82,
355 0xDD, 0x88, 0x0F, 0xB5, 0x5A, 0xAA, 0x4E, 0xF9,
356 0xF8, 0x11, 0x21, 0x94, 0x52, 0x12, 0x9E, 0xF3,
357 0xA3, 0xBB, 0x61, 0x07, 0xB5, 0x35, 0xC6, 0x31,
358 0xEC, 0x4A, 0xCE, 0x25, 0x9D, 0x94, 0x19, 0x97,
359 0xD1, 0xA3, 0x72, 0x4A, 0x5B, 0x55, 0x9E, 0x4D,
360 0xD1, 0x75, 0x55, 0xBA, 0x88, 0x2D, 0x25, 0x21,
361 0xDD, 0x29, 0xE7, 0x10, 0xE3, 0xA9, 0x1C, 0x43,
362 0x8E, 0xDB, 0xBA, 0x94, 0x37, 0x10, 0x78, 0xB3,
363 0x80, 0xFA, 0xCE, 0xFE, 0x13, 0xFC, 0xB0, 0xCD,
364 0x32, 0x5C, 0x31, 0x32, 0x3C, 0x6E, 0x75, 0x38,
365 0x0B, 0x57, 0x6F, 0xDB, 0xB4, 0x5F, 0x82, 0x94,
366 0xBC, 0xC0, 0xCE, 0x6B, 0x8C, 0x63, 0xD8, 0x95,
367 0x9C, 0x4B, 0x3B, 0x28, 0x33, 0x2F, 0xA3, 0x46,
368 0xE4, 0x94, 0xB6, 0xAB, 0x3C, 0x9B, 0xA2, 0xEA,
369 0xAB, 0x75, 0x10, 0x5A, 0x4A, 0x43, 0xBA, 0x53,
370 0xCE, 0x21, 0xC7, 0x52, 0x38, 0x87, 0x1D, 0xB7,
371 0x75, 0x28, 0x6E, 0x20, 0xD6, 0x40, 0x66, 0x64,
372 0xB8, 0x62, 0x64, 0x78, 0xDC, 0xEA, 0x70, 0x16,
373 0xB1, 0x1F, 0xB7, 0x67, 0x4F, 0x1A, 0xA9, 0x79,
374 0x45, 0xAC, 0x47, 0xED, 0xD9, 0xD3, 0xC6, 0xAA,
375 0x5E, 0x50, 0xCC, 0x20, 0x19, 0x36, 0x74, 0x6D,
376 0x9B, 0xD8, 0x95, 0x9C, 0x4B, 0x45, 0x27, 0xB4,
377 0xCE, 0x5F, 0x46, 0xE4, 0x94, 0xB6, 0x5B, 0x44,
378 0xA5, 0xA5, 0x0A, 0xAB, 0x75, 0x10, 0x5A, 0x44,
379 0x53, 0x7A, 0x23, 0x0D, 0x21, 0xC7, 0x52, 0x38,
380 0x86, 0x9B, 0xB3, 0x75, 0x28, 0xEE, 0x20, 0xA6,
381 0xB8, 0xD9, 0xBD, 0x89, 0x25, 0xC4, 0xB3, 0xB2,
382 0x7B, 0x32, 0xE5, 0xF4, 0x92, 0x49, 0x45, 0x6A,
383 0xB3, 0xCA, 0x5A, 0x50, 0xAA, 0xA9, 0x5F, 0x15,
384 0xA4, 0xA5, 0x3B, 0xA2, 0x3C, 0xD2, 0x9C, 0x6D,
385 0x13, 0x8A, 0x71, 0xBB, 0x77, 0xD1, 0x8E, 0xE2,
386 0x84, 0xC9, 0xED, 0x61, 0x89, 0xAE, 0xE0, 0xB3,
387 0xA8, 0x05, 0x32, 0x5C, 0x31, 0x32, 0x3C, 0x6E,
388 0x75, 0x38, 0x0B, 0x58, 0x8F, 0xDB, 0xB3, 0xA7,
389 0x8D, 0x54, 0xBC, 0xA2, 0xD6, 0x23, 0xF6, 0xEC,
390 0xE9, 0xE3, 0x55, 0x2F, 0x28, 0x66, 0x10, 0x01,
391 0x9D, 0x62, 0x3F, 0x6E, 0xCE, 0x9E, 0x35, 0x52,
392 0xF2, 0x8F, 0x6A, 0x6B, 0x8C, 0xB4, 0xBA, 0xC5,
393 0xB8, 0x96, 0x75, 0x99, 0x69, 0x94, 0x6C, 0x12,
394 0xB2, 0x9D, 0xAA, 0xD0, 0xAF, 0x5A, 0x62, 0x4A,
395 0x14, 0xD6, 0x92, 0x9E, 0x6F, 0x38, 0xC2, 0x94,
396 0xD2, 0xC4, 0xD3, 0x8D, 0x2E, 0xC2, 0x97, 0x7F,
397 0xAC, 0x26, 0x08, 0x00, 0xCC, 0xF6, 0xB0, 0xC4,
398 0xD7, 0x70, 0x59, 0xD4, 0x02, 0x9E, 0xD6, 0x18,
399 0x9A, 0xEE, 0x0B, 0x3A, 0x80, 0x53, 0xDA, 0xC3,
400 0x13, 0x5D, 0xC1, 0x67, 0x50, 0x0A, 0x7B, 0x58,
401 0x62, 0x6B, 0xB8, 0x2C, 0xEA, 0x00, 0x0C, 0xC2,
402 0x10, 0x80, 0x63, 0x39, 0xC0, 0x7D, 0x67, 0x7F,
403 0x09, 0xFE, 0x58, 0x66, 0x99, 0x2E, 0x18, 0x99,
404 0x1E, 0x37, 0x3A, 0x9C, 0x0C, 0xCE, 0x03, 0xEB,
405 0x3B, 0xF8, 0x4F, 0xF2, 0xC3, 0x34, 0xC9, 0x70,
406 0xC4, 0xC8, 0xF1, 0xB9, 0xD4, 0xE0, 0x19, 0x80,
407 0xCC, 0xC9, 0x70, 0xC4, 0xC8, 0xF1, 0xB9, 0xD4,
408 0xE1, 0x98, 0x0C, 0xCC, 0x97, 0x0C, 0x4C, 0x8F,
409 0x1B, 0x9D, 0x4E, 0x03, 0xFF, 0xD9};
410 const int goodJpegImageWidth = 128;
411 const int goodJpegImageHeight = 128;
412 }; // namespace
413
414 // https://code.google.com/p/android/issues/detail?id=42382
415 // https://code.google.com/p/android/issues/detail?id=9064
416 // https://code.google.com/p/skia/issues/detail?id=1649
417
418 /**
419 This test will test the ability of the SkImageDecoder to deal with
420 Jpeg files which have been mangled somehow. We want to display as
421 much of the jpeg as possible.
422 */
423 static void TestJpeg(skiatest::Reporter* reporter) {
424 size_t len = sizeof(goodJpegImage) / 2;
425 // I am explicitly not putting the entire image into the
426 // DecodeMemory. This simulates a network error.
427
428 SkBitmap bm8888;
429 bool imageDecodeSuccess = SkImageDecoder::DecodeMemory(
430 static_cast<void *>(goodJpegImage), len, &bm8888);
431 REPORTER_ASSERT(reporter, imageDecodeSuccess);
432 REPORTER_ASSERT(reporter, bm8888.width() == goodJpegImageWidth);
433 REPORTER_ASSERT(reporter, bm8888.height() == goodJpegImageHeight);
434 REPORTER_ASSERT(reporter, !(bm8888.empty()));
435
436 // Pick two pixels and verify that their colors match the colors
437 // we expect (given the original image).
438 REPORTER_ASSERT(reporter, bm8888.getColor(7, 9) == 0xffffffff);
439 REPORTER_ASSERT(reporter, bm8888.getColor(28, 3) == 0xff000000);
440
441 #if JPEG_TEST_WRITE_TO_FILE_FOR_DEBUGGING
442 // Check to see that the resulting bitmap is nice
443 bool writeSuccess = (!(bm8888.empty())) && SkImageEncoder::EncodeFile(
444 "HalfOfAJpeg.png", bm8888, SkImageEncoder::kPNG_Type, 100);
445 SkASSERT(writeSuccess);
446 #endif
447 }
448
449 #include "./TestClassDef.h"
scroggo 2013/10/01 22:04:14 Why is the ./ necessary? Our other tests do not us
450 DEFINE_TESTCLASS("JpegTest", JpegTestClass, TestJpeg)
451
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698