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

Unified Diff: crash_collector_test.cc

Issue 3436029: crash-reporter: Send OS version at time of crash and related improvements (Closed) Base URL: http://git.chromium.org/git/crash-reporter.git
Patch Set: respond to petkov review Created 10 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « crash_collector.cc ('k') | crash_reporter.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: crash_collector_test.cc
diff --git a/crash_collector_test.cc b/crash_collector_test.cc
index ed8fff7565fae308047c60904e923abce1b88899..2dbf2bb2d433578cbec9affd5bd4c97478258747 100644
--- a/crash_collector_test.cc
+++ b/crash_collector_test.cc
@@ -48,6 +48,16 @@ TEST_F(CrashCollectorTest, Initialize) {
ASSERT_TRUE(&logging_ == collector_.logger_);
}
+TEST_F(CrashCollectorTest, Sanitize) {
+ EXPECT_EQ("chrome", collector_.Sanitize("chrome"));
+ EXPECT_EQ("CHROME", collector_.Sanitize("CHROME"));
+ EXPECT_EQ("1chrome2", collector_.Sanitize("1chrome2"));
+ EXPECT_EQ("chrome__deleted_", collector_.Sanitize("chrome (deleted)"));
+ EXPECT_EQ("foo_bar", collector_.Sanitize("foo.bar"));
+ EXPECT_EQ("", collector_.Sanitize(""));
+ EXPECT_EQ("_", collector_.Sanitize(" "));
+}
+
TEST_F(CrashCollectorTest, GetCrashDirectoryInfo) {
FilePath path;
const int kRootUid = 0;
@@ -118,41 +128,96 @@ bool CrashCollectorTest::CheckHasCapacity() {
return has_capacity;
}
-TEST_F(CrashCollectorTest, CheckHasCapacityOverNonCore) {
- // Test up to kMaxCrashDirectorySize-1 non-core files can be added.
+TEST_F(CrashCollectorTest, CheckHasCapacityUsual) {
+ // Test kMaxCrashDirectorySize - 1 non-meta files can be added.
for (int i = 0; i < CrashCollector::kMaxCrashDirectorySize - 1; ++i) {
+ file_util::WriteFile(test_dir_.Append(StringPrintf("file%d.core", i)),
+ "", 0);
EXPECT_TRUE(CheckHasCapacity());
- file_util::WriteFile(test_dir_.Append(StringPrintf("file%d", i)), "", 0);
}
- // Test an additional kMaxCrashDirectorySize - 1 core files fit.
+ // Test an additional kMaxCrashDirectorySize - 1 meta files fit.
for (int i = 0; i < CrashCollector::kMaxCrashDirectorySize - 1; ++i) {
- EXPECT_TRUE(CheckHasCapacity());
- file_util::WriteFile(test_dir_.Append(StringPrintf("file%d.core", i)),
+ file_util::WriteFile(test_dir_.Append(StringPrintf("file%d.meta", i)),
"", 0);
+ EXPECT_TRUE(CheckHasCapacity());
}
- // Test an additional kMaxCrashDirectorySize non-core files don't fit.
+ // Test an additional kMaxCrashDirectorySize meta files don't fit.
for (int i = 0; i < CrashCollector::kMaxCrashDirectorySize; ++i) {
- file_util::WriteFile(test_dir_.Append(StringPrintf("overage%d", i)), "", 0);
+ file_util::WriteFile(test_dir_.Append(StringPrintf("overage%d.meta", i)),
+ "", 0);
EXPECT_FALSE(CheckHasCapacity());
}
}
-TEST_F(CrashCollectorTest, CheckHasCapacityOverCore) {
- // Set up kMaxCrashDirectorySize - 1 core files.
+TEST_F(CrashCollectorTest, CheckHasCapacityCorrectBasename) {
+ // Test kMaxCrashDirectorySize - 1 files can be added.
for (int i = 0; i < CrashCollector::kMaxCrashDirectorySize - 1; ++i) {
- file_util::WriteFile(test_dir_.Append(StringPrintf("file%d.core", i)),
+ file_util::WriteFile(test_dir_.Append(StringPrintf("file.%d.core", i)),
"", 0);
+ EXPECT_TRUE(CheckHasCapacity());
}
+ file_util::WriteFile(test_dir_.Append("file.last.core"), "", 0);
+ EXPECT_FALSE(CheckHasCapacity());
+}
- EXPECT_TRUE(CheckHasCapacity());
-
- // Test an additional core file does not fit.
- file_util::WriteFile(test_dir_.Append("overage.core"), "", 0);
+TEST_F(CrashCollectorTest, CheckHasCapacityStrangeNames) {
+ // Test many files with different extensions and same base fit.
+ for (int i = 0; i < 5 * CrashCollector::kMaxCrashDirectorySize; ++i) {
+ file_util::WriteFile(test_dir_.Append(StringPrintf("a.%d", i)), "", 0);
+ EXPECT_TRUE(CheckHasCapacity());
+ }
+ // Test dot files are treated as individual files.
+ for (int i = 0; i < CrashCollector::kMaxCrashDirectorySize - 2; ++i) {
+ file_util::WriteFile(test_dir_.Append(StringPrintf(".file%d", i)), "", 0);
+ EXPECT_TRUE(CheckHasCapacity());
+ }
+ file_util::WriteFile(test_dir_.Append("normal.meta"), "", 0);
EXPECT_FALSE(CheckHasCapacity());
}
+TEST_F(CrashCollectorTest, ReadKeyValueFile) {
+ const char *contents = ("a=b\n"
+ "\n"
+ " c=d \n");
+ FilePath path(test_dir_.Append("keyval"));
+ std::map<std::string, std::string> dictionary;
+ std::map<std::string, std::string>::iterator i;
+
+ file_util::WriteFile(path, contents, strlen(contents));
+
+ EXPECT_TRUE(collector_.ReadKeyValueFile(path, '=', &dictionary));
+ i = dictionary.find("a");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "b");
+ i = dictionary.find("c");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "d");
+
+ dictionary.clear();
+
+ contents = ("a=b c d\n"
+ "e\n"
+ " f g = h\n"
+ "i=j\n"
+ "=k\n"
+ "l=\n");
+ file_util::WriteFile(path, contents, strlen(contents));
+
+ EXPECT_FALSE(collector_.ReadKeyValueFile(path, '=', &dictionary));
+ i = dictionary.find("a");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "b c d");
+ i = dictionary.find("e");
+ EXPECT_TRUE(i == dictionary.end());
+ i = dictionary.find("f g");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "h");
+ i = dictionary.find("i");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "j");
+ i = dictionary.find("");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "k");
+ i = dictionary.find("l");
+ EXPECT_TRUE(i != dictionary.end() && i->second == "");
+}
+
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
« no previous file with comments | « crash_collector.cc ('k') | crash_reporter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698