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

Side by Side Diff: chromecast/crash/linux/dummy_minidump_generator_unittest.cc

Issue 1484713003: [Chromecast] Use ScopedTemp[File|Dir] in tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix bug in test fixture, add CHECK to ScopedTempFile::Read Created 5 years 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <string> 5 #include <string>
6 6
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/files/scoped_temp_dir.h"
8 #include "base/rand_util.h" 9 #include "base/rand_util.h"
10 #include "chromecast/base/scoped_temp_file.h"
9 #include "chromecast/crash/linux/dummy_minidump_generator.h" 11 #include "chromecast/crash/linux/dummy_minidump_generator.h"
10 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
11 13
12 namespace chromecast { 14 namespace chromecast {
13 15
14 TEST(DummyMinidumpGeneratorTest, GenerateFailsWithInvalidPath) { 16 TEST(DummyMinidumpGeneratorTest, GenerateFailsWithInvalidPath) {
15 // Create directory in which to put minidump. 17 // Create directory in which to put minidump.
16 base::FilePath minidump_dir; 18 base::ScopedTempDir minidump_dir;
17 ASSERT_TRUE(base::CreateNewTempDirectory("", &minidump_dir)); 19 ASSERT_TRUE(minidump_dir.CreateUniqueTempDir());
18 20
19 // Attempt to generate a minidump from an invalid path. 21 // Attempt to generate a minidump from an invalid path.
20 DummyMinidumpGenerator generator("/path/does/not/exist/minidump.dmp"); 22 DummyMinidumpGenerator generator("/path/does/not/exist/minidump.dmp");
21 ASSERT_FALSE(generator.Generate(minidump_dir.Append("minidump.dmp").value())); 23 ASSERT_FALSE(
24 generator.Generate(minidump_dir.path().Append("minidump.dmp").value()));
22 } 25 }
23 26
24 TEST(DummyMinidumpGeneratorTest, GenerateSucceedsWithSmallSource) { 27 TEST(DummyMinidumpGeneratorTest, GenerateSucceedsWithSmallSource) {
25 // Create directory in which to put minidump. 28 // Create directory in which to put minidump.
26 base::FilePath minidump_dir; 29 base::ScopedTempDir minidump_dir;
27 ASSERT_TRUE(base::CreateNewTempDirectory("", &minidump_dir)); 30 ASSERT_TRUE(minidump_dir.CreateUniqueTempDir());
28 31
29 // Create a fake minidump file. 32 // Create a fake minidump file.
30 base::FilePath fake_minidump; 33 ScopedTempFile fake_minidump;
31 ASSERT_TRUE(base::CreateTemporaryFile(&fake_minidump));
32 const std::string data("Test contents of the minidump file.\n"); 34 const std::string data("Test contents of the minidump file.\n");
33 ASSERT_EQ(static_cast<int>(data.size()), 35 ASSERT_EQ(static_cast<int>(data.size()),
34 base::WriteFile(fake_minidump, data.c_str(), data.size())); 36 base::WriteFile(fake_minidump.path(), data.c_str(), data.size()));
35 37
36 DummyMinidumpGenerator generator(fake_minidump.value()); 38 DummyMinidumpGenerator generator(fake_minidump.path().value());
37 base::FilePath new_minidump = minidump_dir.Append("minidump.dmp"); 39 base::FilePath new_minidump = minidump_dir.path().Append("minidump.dmp");
38 EXPECT_TRUE(generator.Generate(new_minidump.value())); 40 EXPECT_TRUE(generator.Generate(new_minidump.value()));
39 41
40 // Original file should not exist, and new file should contain original 42 // Original file should not exist, and new file should contain original
41 // contents. 43 // contents.
42 std::string copied_data; 44 std::string copied_data;
43 EXPECT_FALSE(base::PathExists(fake_minidump)); 45 EXPECT_FALSE(base::PathExists(fake_minidump.path()));
44 ASSERT_TRUE(base::PathExists(new_minidump)); 46 ASSERT_TRUE(base::PathExists(new_minidump));
45 EXPECT_TRUE(base::ReadFileToString(new_minidump, &copied_data)); 47 EXPECT_TRUE(base::ReadFileToString(new_minidump, &copied_data));
46 EXPECT_EQ(data, copied_data); 48 EXPECT_EQ(data, copied_data);
47 } 49 }
48 50
49 TEST(DummyMinidumpGeneratorTest, GenerateSucceedsWithLargeSource) { 51 TEST(DummyMinidumpGeneratorTest, GenerateSucceedsWithLargeSource) {
50 // Create directory in which to put minidump. 52 // Create directory in which to put minidump.
51 base::FilePath minidump_dir; 53 base::ScopedTempDir minidump_dir;
52 ASSERT_TRUE(base::CreateNewTempDirectory("", &minidump_dir)); 54 ASSERT_TRUE(minidump_dir.CreateUniqueTempDir());
53 55
54 // Create a large fake minidump file. 56 // Create a large fake minidump file.
55 base::FilePath fake_minidump; 57 ScopedTempFile fake_minidump;
56 ASSERT_TRUE(base::CreateTemporaryFile(&fake_minidump));
57 size_t str_len = 32768 * 10 + 1; 58 size_t str_len = 32768 * 10 + 1;
58 const std::string data = base::RandBytesAsString(str_len); 59 const std::string data = base::RandBytesAsString(str_len);
59 60
60 // Write the string to the file. 61 // Write the string to the file.
61 ASSERT_EQ(static_cast<int>(data.size()), 62 ASSERT_EQ(static_cast<int>(data.size()),
62 base::WriteFile(fake_minidump, data.c_str(), data.size())); 63 base::WriteFile(fake_minidump.path(), data.c_str(), data.size()));
63 64
64 base::FilePath new_minidump = minidump_dir.Append("minidump.dmp"); 65 base::FilePath new_minidump = minidump_dir.path().Append("minidump.dmp");
65 DummyMinidumpGenerator generator(fake_minidump.value()); 66 DummyMinidumpGenerator generator(fake_minidump.path().value());
66 ASSERT_TRUE(generator.Generate(new_minidump.value())); 67 ASSERT_TRUE(generator.Generate(new_minidump.value()));
67 68
68 // Original file should not exist, and new file should contain original 69 // Original file should not exist, and new file should contain original
69 // contents. 70 // contents.
70 std::string copied_data; 71 std::string copied_data;
71 EXPECT_FALSE(base::PathExists(fake_minidump)); 72 EXPECT_FALSE(base::PathExists(fake_minidump.path()));
72 ASSERT_TRUE(base::PathExists(new_minidump)); 73 ASSERT_TRUE(base::PathExists(new_minidump));
73 EXPECT_TRUE(base::ReadFileToString(new_minidump, &copied_data)); 74 EXPECT_TRUE(base::ReadFileToString(new_minidump, &copied_data));
74 EXPECT_EQ(data, copied_data); 75 EXPECT_EQ(data, copied_data);
75 } 76 }
76 77
77 } // namespace chromecast 78 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698