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

Side by Side Diff: third_party/WebKit/Source/platform/image-decoders/ImageDecoderTest.cpp

Issue 2050123002: Remove OwnPtr from Blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: First attempt to land. Created 4 years, 6 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 14 matching lines...) Expand all
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "platform/image-decoders/ImageDecoder.h" 31 #include "platform/image-decoders/ImageDecoder.h"
32 32
33 #include "platform/image-decoders/ImageFrame.h" 33 #include "platform/image-decoders/ImageFrame.h"
34 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
35 #include "wtf/OwnPtr.h" 35 #include "wtf/PtrUtil.h"
36 #include "wtf/PassOwnPtr.h"
37 #include "wtf/Vector.h" 36 #include "wtf/Vector.h"
37 #include <memory>
38 38
39 namespace blink { 39 namespace blink {
40 40
41 class TestImageDecoder : public ImageDecoder { 41 class TestImageDecoder : public ImageDecoder {
42 public: 42 public:
43 TestImageDecoder() 43 TestImageDecoder()
44 : ImageDecoder(AlphaNotPremultiplied, GammaAndColorProfileApplied, noDec odedImageByteLimit) 44 : ImageDecoder(AlphaNotPremultiplied, GammaAndColorProfileApplied, noDec odedImageByteLimit)
45 { 45 {
46 } 46 }
47 47
(...skipping 18 matching lines...) Expand all
66 m_frameBufferCache[i].setOriginalFrameRect(IntRect(0, 0, width, heig ht)); 66 m_frameBufferCache[i].setOriginalFrameRect(IntRect(0, 0, width, heig ht));
67 } 67 }
68 68
69 private: 69 private:
70 void decodeSize() override { } 70 void decodeSize() override { }
71 void decode(size_t index) override { } 71 void decode(size_t index) override { }
72 }; 72 };
73 73
74 TEST(ImageDecoderTest, sizeCalculationMayOverflow) 74 TEST(ImageDecoderTest, sizeCalculationMayOverflow)
75 { 75 {
76 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 76 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
77 EXPECT_FALSE(decoder->setSize(1 << 29, 1)); 77 EXPECT_FALSE(decoder->setSize(1 << 29, 1));
78 EXPECT_FALSE(decoder->setSize(1, 1 << 29)); 78 EXPECT_FALSE(decoder->setSize(1, 1 << 29));
79 EXPECT_FALSE(decoder->setSize(1 << 15, 1 << 15)); 79 EXPECT_FALSE(decoder->setSize(1 << 15, 1 << 15));
80 EXPECT_TRUE(decoder->setSize(1 << 28, 1)); 80 EXPECT_TRUE(decoder->setSize(1 << 28, 1));
81 EXPECT_TRUE(decoder->setSize(1, 1 << 28)); 81 EXPECT_TRUE(decoder->setSize(1, 1 << 28));
82 EXPECT_TRUE(decoder->setSize(1 << 14, 1 << 14)); 82 EXPECT_TRUE(decoder->setSize(1 << 14, 1 << 14));
83 } 83 }
84 84
85 TEST(ImageDecoderTest, requiredPreviousFrameIndex) 85 TEST(ImageDecoderTest, requiredPreviousFrameIndex)
86 { 86 {
87 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 87 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
88 decoder->initFrames(6); 88 decoder->initFrames(6);
89 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 89 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
90 90
91 frameBuffers[1].setDisposalMethod(ImageFrame::DisposeKeep); 91 frameBuffers[1].setDisposalMethod(ImageFrame::DisposeKeep);
92 frameBuffers[2].setDisposalMethod(ImageFrame::DisposeOverwritePrevious); 92 frameBuffers[2].setDisposalMethod(ImageFrame::DisposeOverwritePrevious);
93 frameBuffers[3].setDisposalMethod(ImageFrame::DisposeOverwritePrevious); 93 frameBuffers[3].setDisposalMethod(ImageFrame::DisposeOverwritePrevious);
94 frameBuffers[4].setDisposalMethod(ImageFrame::DisposeKeep); 94 frameBuffers[4].setDisposalMethod(ImageFrame::DisposeKeep);
95 95
96 decoder->resetRequiredPreviousFrames(); 96 decoder->resetRequiredPreviousFrames();
97 97
98 // The first frame doesn't require any previous frame. 98 // The first frame doesn't require any previous frame.
99 EXPECT_EQ(kNotFound, frameBuffers[0].requiredPreviousFrameIndex()); 99 EXPECT_EQ(kNotFound, frameBuffers[0].requiredPreviousFrameIndex());
100 // The previous DisposeNotSpecified frame is required. 100 // The previous DisposeNotSpecified frame is required.
101 EXPECT_EQ(0u, frameBuffers[1].requiredPreviousFrameIndex()); 101 EXPECT_EQ(0u, frameBuffers[1].requiredPreviousFrameIndex());
102 // DisposeKeep is treated as DisposeNotSpecified. 102 // DisposeKeep is treated as DisposeNotSpecified.
103 EXPECT_EQ(1u, frameBuffers[2].requiredPreviousFrameIndex()); 103 EXPECT_EQ(1u, frameBuffers[2].requiredPreviousFrameIndex());
104 // Previous DisposeOverwritePrevious frames are skipped. 104 // Previous DisposeOverwritePrevious frames are skipped.
105 EXPECT_EQ(1u, frameBuffers[3].requiredPreviousFrameIndex()); 105 EXPECT_EQ(1u, frameBuffers[3].requiredPreviousFrameIndex());
106 EXPECT_EQ(1u, frameBuffers[4].requiredPreviousFrameIndex()); 106 EXPECT_EQ(1u, frameBuffers[4].requiredPreviousFrameIndex());
107 EXPECT_EQ(4u, frameBuffers[5].requiredPreviousFrameIndex()); 107 EXPECT_EQ(4u, frameBuffers[5].requiredPreviousFrameIndex());
108 } 108 }
109 109
110 TEST(ImageDecoderTest, requiredPreviousFrameIndexDisposeOverwriteBgcolor) 110 TEST(ImageDecoderTest, requiredPreviousFrameIndexDisposeOverwriteBgcolor)
111 { 111 {
112 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 112 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
113 decoder->initFrames(3); 113 decoder->initFrames(3);
114 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 114 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
115 115
116 // Fully covering DisposeOverwriteBgcolor previous frame resets the starting state. 116 // Fully covering DisposeOverwriteBgcolor previous frame resets the starting state.
117 frameBuffers[1].setDisposalMethod(ImageFrame::DisposeOverwriteBgcolor); 117 frameBuffers[1].setDisposalMethod(ImageFrame::DisposeOverwriteBgcolor);
118 decoder->resetRequiredPreviousFrames(); 118 decoder->resetRequiredPreviousFrames();
119 EXPECT_EQ(kNotFound, frameBuffers[2].requiredPreviousFrameIndex()); 119 EXPECT_EQ(kNotFound, frameBuffers[2].requiredPreviousFrameIndex());
120 120
121 // Partially covering DisposeOverwriteBgcolor previous frame is required by this frame. 121 // Partially covering DisposeOverwriteBgcolor previous frame is required by this frame.
122 frameBuffers[1].setOriginalFrameRect(IntRect(50, 50, 50, 50)); 122 frameBuffers[1].setOriginalFrameRect(IntRect(50, 50, 50, 50));
123 decoder->resetRequiredPreviousFrames(); 123 decoder->resetRequiredPreviousFrames();
124 EXPECT_EQ(1u, frameBuffers[2].requiredPreviousFrameIndex()); 124 EXPECT_EQ(1u, frameBuffers[2].requiredPreviousFrameIndex());
125 } 125 }
126 126
127 TEST(ImageDecoderTest, requiredPreviousFrameIndexForFrame1) 127 TEST(ImageDecoderTest, requiredPreviousFrameIndexForFrame1)
128 { 128 {
129 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 129 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
130 decoder->initFrames(2); 130 decoder->initFrames(2);
131 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 131 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
132 132
133 decoder->resetRequiredPreviousFrames(); 133 decoder->resetRequiredPreviousFrames();
134 EXPECT_EQ(0u, frameBuffers[1].requiredPreviousFrameIndex()); 134 EXPECT_EQ(0u, frameBuffers[1].requiredPreviousFrameIndex());
135 135
136 // The first frame with DisposeOverwritePrevious or DisposeOverwriteBgcolor 136 // The first frame with DisposeOverwritePrevious or DisposeOverwriteBgcolor
137 // resets the starting state. 137 // resets the starting state.
138 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwritePrevious); 138 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwritePrevious);
139 decoder->resetRequiredPreviousFrames(); 139 decoder->resetRequiredPreviousFrames();
140 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex()); 140 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex());
141 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwriteBgcolor); 141 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwriteBgcolor);
142 decoder->resetRequiredPreviousFrames(); 142 decoder->resetRequiredPreviousFrames();
143 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex()); 143 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex());
144 144
145 // ... even if it partially covers. 145 // ... even if it partially covers.
146 frameBuffers[0].setOriginalFrameRect(IntRect(50, 50, 50, 50)); 146 frameBuffers[0].setOriginalFrameRect(IntRect(50, 50, 50, 50));
147 147
148 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwritePrevious); 148 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwritePrevious);
149 decoder->resetRequiredPreviousFrames(); 149 decoder->resetRequiredPreviousFrames();
150 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex()); 150 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex());
151 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwriteBgcolor); 151 frameBuffers[0].setDisposalMethod(ImageFrame::DisposeOverwriteBgcolor);
152 decoder->resetRequiredPreviousFrames(); 152 decoder->resetRequiredPreviousFrames();
153 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex()); 153 EXPECT_EQ(kNotFound, frameBuffers[1].requiredPreviousFrameIndex());
154 } 154 }
155 155
156 TEST(ImageDecoderTest, requiredPreviousFrameIndexBlendAtopBgcolor) 156 TEST(ImageDecoderTest, requiredPreviousFrameIndexBlendAtopBgcolor)
157 { 157 {
158 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 158 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
159 decoder->initFrames(3); 159 decoder->initFrames(3);
160 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 160 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
161 161
162 frameBuffers[1].setOriginalFrameRect(IntRect(25, 25, 50, 50)); 162 frameBuffers[1].setOriginalFrameRect(IntRect(25, 25, 50, 50));
163 frameBuffers[2].setAlphaBlendSource(ImageFrame::BlendAtopBgcolor); 163 frameBuffers[2].setAlphaBlendSource(ImageFrame::BlendAtopBgcolor);
164 164
165 // A full frame with 'blending method == BlendAtopBgcolor' doesn't depend on any prior frames. 165 // A full frame with 'blending method == BlendAtopBgcolor' doesn't depend on any prior frames.
166 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) { 166 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) {
167 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod)); 167 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod));
168 decoder->resetRequiredPreviousFrames(); 168 decoder->resetRequiredPreviousFrames();
169 EXPECT_EQ(kNotFound, frameBuffers[2].requiredPreviousFrameIndex()); 169 EXPECT_EQ(kNotFound, frameBuffers[2].requiredPreviousFrameIndex());
170 } 170 }
171 171
172 // A non-full frame with 'blending method == BlendAtopBgcolor' does depend o n a prior frame. 172 // A non-full frame with 'blending method == BlendAtopBgcolor' does depend o n a prior frame.
173 frameBuffers[2].setOriginalFrameRect(IntRect(50, 50, 50, 50)); 173 frameBuffers[2].setOriginalFrameRect(IntRect(50, 50, 50, 50));
174 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) { 174 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) {
175 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod)); 175 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod));
176 decoder->resetRequiredPreviousFrames(); 176 decoder->resetRequiredPreviousFrames();
177 EXPECT_NE(kNotFound, frameBuffers[2].requiredPreviousFrameIndex()); 177 EXPECT_NE(kNotFound, frameBuffers[2].requiredPreviousFrameIndex());
178 } 178 }
179 } 179 }
180 180
181 TEST(ImageDecoderTest, requiredPreviousFrameIndexKnownOpaque) 181 TEST(ImageDecoderTest, requiredPreviousFrameIndexKnownOpaque)
182 { 182 {
183 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 183 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
184 decoder->initFrames(3); 184 decoder->initFrames(3);
185 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 185 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
186 186
187 frameBuffers[1].setOriginalFrameRect(IntRect(25, 25, 50, 50)); 187 frameBuffers[1].setOriginalFrameRect(IntRect(25, 25, 50, 50));
188 188
189 // A full frame that is known to be opaque doesn't depend on any prior frame s. 189 // A full frame that is known to be opaque doesn't depend on any prior frame s.
190 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) { 190 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) {
191 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod)); 191 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod));
192 decoder->resetRequiredPreviousFrames(true); 192 decoder->resetRequiredPreviousFrames(true);
193 EXPECT_EQ(kNotFound, frameBuffers[2].requiredPreviousFrameIndex()); 193 EXPECT_EQ(kNotFound, frameBuffers[2].requiredPreviousFrameIndex());
194 } 194 }
195 195
196 // A non-full frame that is known to be opaque does depend on a prior frame. 196 // A non-full frame that is known to be opaque does depend on a prior frame.
197 frameBuffers[2].setOriginalFrameRect(IntRect(50, 50, 50, 50)); 197 frameBuffers[2].setOriginalFrameRect(IntRect(50, 50, 50, 50));
198 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) { 198 for (int disposeMethod = ImageFrame::DisposeNotSpecified; disposeMethod <= I mageFrame::DisposeOverwritePrevious; ++disposeMethod) {
199 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod)); 199 frameBuffers[1].setDisposalMethod(static_cast<ImageFrame::DisposalMethod >(disposeMethod));
200 decoder->resetRequiredPreviousFrames(true); 200 decoder->resetRequiredPreviousFrames(true);
201 EXPECT_NE(kNotFound, frameBuffers[2].requiredPreviousFrameIndex()); 201 EXPECT_NE(kNotFound, frameBuffers[2].requiredPreviousFrameIndex());
202 } 202 }
203 } 203 }
204 204
205 TEST(ImageDecoderTest, clearCacheExceptFrameDoNothing) 205 TEST(ImageDecoderTest, clearCacheExceptFrameDoNothing)
206 { 206 {
207 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 207 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
208 decoder->clearCacheExceptFrame(0); 208 decoder->clearCacheExceptFrame(0);
209 209
210 // This should not crash. 210 // This should not crash.
211 decoder->initFrames(20); 211 decoder->initFrames(20);
212 decoder->clearCacheExceptFrame(kNotFound); 212 decoder->clearCacheExceptFrame(kNotFound);
213 } 213 }
214 214
215 TEST(ImageDecoderTest, clearCacheExceptFrameAll) 215 TEST(ImageDecoderTest, clearCacheExceptFrameAll)
216 { 216 {
217 const size_t numFrames = 10; 217 const size_t numFrames = 10;
218 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 218 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
219 decoder->initFrames(numFrames); 219 decoder->initFrames(numFrames);
220 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 220 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
221 for (size_t i = 0; i < numFrames; ++i) 221 for (size_t i = 0; i < numFrames; ++i)
222 frameBuffers[i].setStatus(i % 2 ? ImageFrame::FramePartial : ImageFrame: :FrameComplete); 222 frameBuffers[i].setStatus(i % 2 ? ImageFrame::FramePartial : ImageFrame: :FrameComplete);
223 223
224 decoder->clearCacheExceptFrame(kNotFound); 224 decoder->clearCacheExceptFrame(kNotFound);
225 225
226 for (size_t i = 0; i < numFrames; ++i) { 226 for (size_t i = 0; i < numFrames; ++i) {
227 SCOPED_TRACE(testing::Message() << i); 227 SCOPED_TRACE(testing::Message() << i);
228 EXPECT_EQ(ImageFrame::FrameEmpty, frameBuffers[i].getStatus()); 228 EXPECT_EQ(ImageFrame::FrameEmpty, frameBuffers[i].getStatus());
229 } 229 }
230 } 230 }
231 231
232 TEST(ImageDecoderTest, clearCacheExceptFramePreverveClearExceptFrame) 232 TEST(ImageDecoderTest, clearCacheExceptFramePreverveClearExceptFrame)
233 { 233 {
234 const size_t numFrames = 10; 234 const size_t numFrames = 10;
235 OwnPtr<TestImageDecoder> decoder(adoptPtr(new TestImageDecoder())); 235 std::unique_ptr<TestImageDecoder> decoder(wrapUnique(new TestImageDecoder()) );
236 decoder->initFrames(numFrames); 236 decoder->initFrames(numFrames);
237 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache(); 237 Vector<ImageFrame, 1>& frameBuffers = decoder->frameBufferCache();
238 for (size_t i = 0; i < numFrames; ++i) 238 for (size_t i = 0; i < numFrames; ++i)
239 frameBuffers[i].setStatus(ImageFrame::FrameComplete); 239 frameBuffers[i].setStatus(ImageFrame::FrameComplete);
240 240
241 decoder->resetRequiredPreviousFrames(); 241 decoder->resetRequiredPreviousFrames();
242 decoder->clearCacheExceptFrame(5); 242 decoder->clearCacheExceptFrame(5);
243 for (size_t i = 0; i < numFrames; ++i) { 243 for (size_t i = 0; i < numFrames; ++i) {
244 SCOPED_TRACE(testing::Message() << i); 244 SCOPED_TRACE(testing::Message() << i);
245 if (i == 5) 245 if (i == 5)
246 EXPECT_EQ(ImageFrame::FrameComplete, frameBuffers[i].getStatus()); 246 EXPECT_EQ(ImageFrame::FrameComplete, frameBuffers[i].getStatus());
247 else 247 else
248 EXPECT_EQ(ImageFrame::FrameEmpty, frameBuffers[i].getStatus()); 248 EXPECT_EQ(ImageFrame::FrameEmpty, frameBuffers[i].getStatus());
249 } 249 }
250 } 250 }
251 251
252 } // namespace blink 252 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698