| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 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 | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 const SkISize size = SkISize::Make(1, 1); | 76 const SkISize size = SkISize::Make(1, 1); |
| 77 std::unique_ptr<ImageDecoder> decoder = MockImageDecoder::create(this); | 77 std::unique_ptr<ImageDecoder> decoder = MockImageDecoder::create(this); |
| 78 decoder->setSize(1, 1); | 78 decoder->setSize(1, 1); |
| 79 const ImageDecoder* refDecoder = decoder.get(); | 79 const ImageDecoder* refDecoder = decoder.get(); |
| 80 ImageDecodingStore::instance().insertDecoder(m_generator.get(), | 80 ImageDecodingStore::instance().insertDecoder(m_generator.get(), |
| 81 std::move(decoder)); | 81 std::move(decoder)); |
| 82 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); | 82 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); |
| 83 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes()); | 83 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes()); |
| 84 | 84 |
| 85 ImageDecoder* testDecoder; | 85 ImageDecoder* testDecoder; |
| 86 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), | 86 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder( |
| 87 size, &testDecoder)); | 87 m_generator.get(), size, ImageDecoder::AlphaPremultiplied, &testDecoder)); |
| 88 EXPECT_TRUE(testDecoder); | 88 EXPECT_TRUE(testDecoder); |
| 89 EXPECT_EQ(refDecoder, testDecoder); | 89 EXPECT_EQ(refDecoder, testDecoder); |
| 90 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder); | 90 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder); |
| 91 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); | 91 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); |
| 92 } | 92 } |
| 93 | 93 |
| 94 TEST_F(ImageDecodingStoreTest, evictDecoder) { | 94 TEST_F(ImageDecodingStoreTest, evictDecoder) { |
| 95 std::unique_ptr<ImageDecoder> decoder1 = MockImageDecoder::create(this); | 95 std::unique_ptr<ImageDecoder> decoder1 = MockImageDecoder::create(this); |
| 96 std::unique_ptr<ImageDecoder> decoder2 = MockImageDecoder::create(this); | 96 std::unique_ptr<ImageDecoder> decoder2 = MockImageDecoder::create(this); |
| 97 std::unique_ptr<ImageDecoder> decoder3 = MockImageDecoder::create(this); | 97 std::unique_ptr<ImageDecoder> decoder3 = MockImageDecoder::create(this); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 ImageDecodingStore::instance().insertDecoder(m_generator.get(), | 130 ImageDecodingStore::instance().insertDecoder(m_generator.get(), |
| 131 std::move(decoder1)); | 131 std::move(decoder1)); |
| 132 ImageDecodingStore::instance().insertDecoder(m_generator.get(), | 132 ImageDecodingStore::instance().insertDecoder(m_generator.get(), |
| 133 std::move(decoder2)); | 133 std::move(decoder2)); |
| 134 ImageDecodingStore::instance().insertDecoder(m_generator.get(), | 134 ImageDecodingStore::instance().insertDecoder(m_generator.get(), |
| 135 std::move(decoder3)); | 135 std::move(decoder3)); |
| 136 EXPECT_EQ(3, ImageDecodingStore::instance().cacheEntries()); | 136 EXPECT_EQ(3, ImageDecodingStore::instance().cacheEntries()); |
| 137 | 137 |
| 138 ImageDecoder* testDecoder; | 138 ImageDecoder* testDecoder; |
| 139 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder( | 139 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder( |
| 140 m_generator.get(), SkISize::Make(2, 2), &testDecoder)); | 140 m_generator.get(), SkISize::Make(2, 2), ImageDecoder::AlphaPremultiplied, |
| 141 &testDecoder)); |
| 141 | 142 |
| 142 evictOneCache(); | 143 evictOneCache(); |
| 143 evictOneCache(); | 144 evictOneCache(); |
| 144 evictOneCache(); | 145 evictOneCache(); |
| 145 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); | 146 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); |
| 146 EXPECT_EQ(16u, ImageDecodingStore::instance().memoryUsageInBytes()); | 147 EXPECT_EQ(16u, ImageDecodingStore::instance().memoryUsageInBytes()); |
| 147 | 148 |
| 148 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder); | 149 ImageDecodingStore::instance().unlockDecoder(m_generator.get(), testDecoder); |
| 149 evictOneCache(); | 150 evictOneCache(); |
| 150 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); | 151 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); |
| 151 EXPECT_FALSE(ImageDecodingStore::instance().memoryUsageInBytes()); | 152 EXPECT_FALSE(ImageDecodingStore::instance().memoryUsageInBytes()); |
| 152 } | 153 } |
| 153 | 154 |
| 154 TEST_F(ImageDecodingStoreTest, removeDecoder) { | 155 TEST_F(ImageDecodingStoreTest, removeDecoder) { |
| 155 const SkISize size = SkISize::Make(1, 1); | 156 const SkISize size = SkISize::Make(1, 1); |
| 156 std::unique_ptr<ImageDecoder> decoder = MockImageDecoder::create(this); | 157 std::unique_ptr<ImageDecoder> decoder = MockImageDecoder::create(this); |
| 157 decoder->setSize(1, 1); | 158 decoder->setSize(1, 1); |
| 158 const ImageDecoder* refDecoder = decoder.get(); | 159 const ImageDecoder* refDecoder = decoder.get(); |
| 159 ImageDecodingStore::instance().insertDecoder(m_generator.get(), | 160 ImageDecodingStore::instance().insertDecoder(m_generator.get(), |
| 160 std::move(decoder)); | 161 std::move(decoder)); |
| 161 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); | 162 EXPECT_EQ(1, ImageDecodingStore::instance().cacheEntries()); |
| 162 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes()); | 163 EXPECT_EQ(4u, ImageDecodingStore::instance().memoryUsageInBytes()); |
| 163 | 164 |
| 164 ImageDecoder* testDecoder; | 165 ImageDecoder* testDecoder; |
| 165 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), | 166 EXPECT_TRUE(ImageDecodingStore::instance().lockDecoder( |
| 166 size, &testDecoder)); | 167 m_generator.get(), size, ImageDecoder::AlphaPremultiplied, &testDecoder)); |
| 167 EXPECT_TRUE(testDecoder); | 168 EXPECT_TRUE(testDecoder); |
| 168 EXPECT_EQ(refDecoder, testDecoder); | 169 EXPECT_EQ(refDecoder, testDecoder); |
| 169 ImageDecodingStore::instance().removeDecoder(m_generator.get(), testDecoder); | 170 ImageDecodingStore::instance().removeDecoder(m_generator.get(), testDecoder); |
| 170 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); | 171 EXPECT_FALSE(ImageDecodingStore::instance().cacheEntries()); |
| 171 | 172 |
| 172 EXPECT_FALSE(ImageDecodingStore::instance().lockDecoder(m_generator.get(), | 173 EXPECT_FALSE(ImageDecodingStore::instance().lockDecoder( |
| 173 size, &testDecoder)); | 174 m_generator.get(), size, ImageDecoder::AlphaPremultiplied, &testDecoder)); |
| 174 } | 175 } |
| 175 | 176 |
| 176 } // namespace blink | 177 } // namespace blink |
| OLD | NEW |