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

Side by Side Diff: content/test/image_decoder_test.cc

Issue 2823003002: SkBitmap and SkPixelRef no longer need lock/unlock (Closed)
Patch Set: win fix after rebase Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/test/image_decoder_test.h" 5 #include "content/test/image_decoder_test.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 base::FilePath GetMD5SumPath(const base::FilePath& path) { 54 base::FilePath GetMD5SumPath(const base::FilePath& path) {
55 static const base::FilePath::StringType kDecodedDataExtension( 55 static const base::FilePath::StringType kDecodedDataExtension(
56 FILE_PATH_LITERAL(".md5sum")); 56 FILE_PATH_LITERAL(".md5sum"));
57 return base::FilePath(path.value() + kDecodedDataExtension); 57 return base::FilePath(path.value() + kDecodedDataExtension);
58 } 58 }
59 59
60 #if defined(CALCULATE_MD5_SUMS) 60 #if defined(CALCULATE_MD5_SUMS)
61 void SaveMD5Sum(const base::FilePath& path, const blink::WebImage& web_image) { 61 void SaveMD5Sum(const base::FilePath& path, const blink::WebImage& web_image) {
62 // Calculate MD5 sum. 62 // Calculate MD5 sum.
63 base::MD5Digest digest; 63 base::MD5Digest digest;
64 web_image.getSkBitmap().lockPixels();
65 base::MD5Sum(web_image.getSkBitmap().getPixels(), 64 base::MD5Sum(web_image.getSkBitmap().getPixels(),
66 web_image.getSkBitmap().width() * 65 web_image.getSkBitmap().width() *
67 web_image.getSkBitmap().height() * sizeof(uint32_t), 66 web_image.getSkBitmap().height() * sizeof(uint32_t),
68 &digest); 67 &digest);
69 68
70 // Write sum to disk. 69 // Write sum to disk.
71 int bytes_written = base::WriteFile( 70 int bytes_written = base::WriteFile(
72 path, reinterpret_cast<const char*>(&digest), sizeof digest); 71 path, reinterpret_cast<const char*>(&digest), sizeof digest);
73 ASSERT_EQ(sizeof digest, bytes_written); 72 ASSERT_EQ(sizeof digest, bytes_written);
74 web_image.getSkBitmap().unlockPixels();
75 } 73 }
76 #endif 74 #endif
77 75
78 #if !defined(CALCULATE_MD5_SUMS) 76 #if !defined(CALCULATE_MD5_SUMS)
79 void VerifyImage(const blink::WebImageDecoder& decoder, 77 void VerifyImage(const blink::WebImageDecoder& decoder,
80 const base::FilePath& path, 78 const base::FilePath& path,
81 const base::FilePath& md5_sum_path, 79 const base::FilePath& md5_sum_path,
82 size_t frame_index) { 80 size_t frame_index) {
83 // Make sure decoding can complete successfully. 81 // Make sure decoding can complete successfully.
84 EXPECT_TRUE(decoder.IsSizeAvailable()) << path.value(); 82 EXPECT_TRUE(decoder.IsSizeAvailable()) << path.value();
85 EXPECT_GE(decoder.FrameCount(), frame_index) << path.value(); 83 EXPECT_GE(decoder.FrameCount(), frame_index) << path.value();
86 EXPECT_TRUE(decoder.IsFrameCompleteAtIndex(frame_index)) << path.value(); 84 EXPECT_TRUE(decoder.IsFrameCompleteAtIndex(frame_index)) << path.value();
87 EXPECT_FALSE(decoder.IsFailed()); 85 EXPECT_FALSE(decoder.IsFailed());
88 86
89 // Calculate MD5 sum. 87 // Calculate MD5 sum.
90 base::MD5Digest actual_digest; 88 base::MD5Digest actual_digest;
91 blink::WebImage web_image = decoder.GetFrameAtIndex(frame_index); 89 blink::WebImage web_image = decoder.GetFrameAtIndex(frame_index);
92 web_image.GetSkBitmap().lockPixels();
93 base::MD5Sum(web_image.GetSkBitmap().getPixels(), 90 base::MD5Sum(web_image.GetSkBitmap().getPixels(),
94 web_image.GetSkBitmap().width() * 91 web_image.GetSkBitmap().width() *
95 web_image.GetSkBitmap().height() * sizeof(uint32_t), 92 web_image.GetSkBitmap().height() * sizeof(uint32_t),
96 &actual_digest); 93 &actual_digest);
97 94
98 // Read the MD5 sum off disk. 95 // Read the MD5 sum off disk.
99 std::string file_bytes; 96 std::string file_bytes;
100 base::ReadFileToString(md5_sum_path, &file_bytes); 97 base::ReadFileToString(md5_sum_path, &file_bytes);
101 base::MD5Digest expected_digest; 98 base::MD5Digest expected_digest;
102 ASSERT_EQ(sizeof expected_digest, file_bytes.size()) << path.value(); 99 ASSERT_EQ(sizeof expected_digest, file_bytes.size()) << path.value();
103 memcpy(&expected_digest, file_bytes.data(), sizeof expected_digest); 100 memcpy(&expected_digest, file_bytes.data(), sizeof expected_digest);
104 101
105 // Verify that the sums are the same. 102 // Verify that the sums are the same.
106 EXPECT_EQ(0, memcmp(&expected_digest, &actual_digest, sizeof actual_digest)) 103 EXPECT_EQ(0, memcmp(&expected_digest, &actual_digest, sizeof actual_digest))
107 << path.value(); 104 << path.value();
108 web_image.GetSkBitmap().unlockPixels();
109 } 105 }
110 #endif 106 #endif
111 107
112 void ImageDecoderTest::SetUp() { 108 void ImageDecoderTest::SetUp() {
113 base::FilePath data_dir; 109 base::FilePath data_dir;
114 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &data_dir)); 110 ASSERT_TRUE(PathService::Get(base::DIR_SOURCE_ROOT, &data_dir));
115 data_dir_ = data_dir.AppendASCII("webkit").AppendASCII("data").AppendASCII( 111 data_dir_ = data_dir.AppendASCII("webkit").AppendASCII("data").AppendASCII(
116 format_ + "_decoder"); 112 format_ + "_decoder");
117 if (!base::PathExists(data_dir_)) { 113 if (!base::PathExists(data_dir_)) {
118 const testing::TestInfo* const test_info = 114 const testing::TestInfo* const test_info =
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 EXPECT_TRUE(decoder->IsFailed()); 202 EXPECT_TRUE(decoder->IsFailed());
207 } else { 203 } else {
208 EXPECT_FALSE(decoder->IsFailed()) << image_path.value(); 204 EXPECT_FALSE(decoder->IsFailed()) << image_path.value();
209 #if defined(CALCULATE_MD5_SUMS) 205 #if defined(CALCULATE_MD5_SUMS)
210 SaveMD5Sum(md5_sum_path, decoder->getFrameAtIndex(desired_frame_index)); 206 SaveMD5Sum(md5_sum_path, decoder->getFrameAtIndex(desired_frame_index));
211 #else 207 #else
212 VerifyImage(*decoder, image_path, md5_sum_path, desired_frame_index); 208 VerifyImage(*decoder, image_path, md5_sum_path, desired_frame_index);
213 #endif 209 #endif
214 } 210 }
215 } 211 }
OLDNEW
« no previous file with comments | « content/shell/test_runner/test_runner_for_specific_view.cc ('k') | extensions/browser/api/web_contents_capture_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698