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

Unified Diff: components/crash/core/common/crash_keys_unittest.cc

Issue 1481933002: Move crash keys for command-line switches to components/crash so they can be set (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@installer_crash_keys
Patch Set: Address review comments Created 5 years, 1 month 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
Index: components/crash/core/common/crash_keys_unittest.cc
diff --git a/chrome/common/crash_keys_unittest.cc b/components/crash/core/common/crash_keys_unittest.cc
similarity index 50%
copy from chrome/common/crash_keys_unittest.cc
copy to components/crash/core/common/crash_keys_unittest.cc
index 5dd04b2235b2405097558cb44eafc6d74b73b3c1..270698091e74975b32a9d2f8a3061a82f00fe792 100644
--- a/chrome/common/crash_keys_unittest.cc
+++ b/components/crash/core/common/crash_keys_unittest.cc
@@ -2,10 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/crash_keys.h"
+#include "components/crash/core/common/crash_keys.h"
#include <map>
-#include <set>
#include <string>
#include "base/command_line.h"
@@ -21,7 +20,11 @@ class CrashKeysTest : public testing::Test {
self_ = this;
base::debug::SetCrashKeyReportingFunctions(
&SetCrashKeyValue, &ClearCrashKey);
- crash_keys::RegisterChromeCrashKeys();
+
+ std::vector<base::debug::CrashKey> keys;
+ crash_keys::GetCrashKeysForCommandLineSwitches(&keys);
+ base::debug::InitCrashKeys(keys.data(), keys.size(),
+ crash_keys::kChunkMaxLength);
}
void TearDown() override {
@@ -63,7 +66,7 @@ TEST_F(CrashKeysTest, Switches) {
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
for (int i = 1; i <= 3; ++i)
command_line.AppendSwitch(base::StringPrintf("--flag-%d", i));
- crash_keys::SetSwitchesFromCommandLine(&command_line);
+ crash_keys::SetSwitchesFromCommandLine(command_line);
EXPECT_EQ("--flag-1", GetKeyValue("switch-1"));
EXPECT_EQ("--flag-2", GetKeyValue("switch-2"));
EXPECT_EQ("--flag-3", GetKeyValue("switch-3"));
@@ -77,7 +80,7 @@ TEST_F(CrashKeysTest, Switches) {
EXPECT_GT(kMax, 15);
for (int i = 1; i <= kMax; ++i)
command_line.AppendSwitch(base::StringPrintf("--many-%d", i));
- crash_keys::SetSwitchesFromCommandLine(&command_line);
+ crash_keys::SetSwitchesFromCommandLine(command_line);
EXPECT_EQ("--many-1", GetKeyValue("switch-1"));
EXPECT_EQ("--many-9", GetKeyValue("switch-9"));
EXPECT_EQ("--many-15", GetKeyValue("switch-15"));
@@ -90,97 +93,46 @@ TEST_F(CrashKeysTest, Switches) {
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
for (int i = 1; i <= 5; ++i)
command_line.AppendSwitch(base::StringPrintf("--fewer-%d", i));
- crash_keys::SetSwitchesFromCommandLine(&command_line);
+ crash_keys::SetSwitchesFromCommandLine(command_line);
EXPECT_EQ("--fewer-1", GetKeyValue("switch-1"));
EXPECT_EQ("--fewer-2", GetKeyValue("switch-2"));
EXPECT_EQ("--fewer-3", GetKeyValue("switch-3"));
EXPECT_EQ("--fewer-4", GetKeyValue("switch-4"));
EXPECT_EQ("--fewer-5", GetKeyValue("switch-5"));
for (int i = 6; i < 20; ++i)
- EXPECT_FALSE(HasCrashKey(base::StringPrintf(crash_keys::kSwitch, i)));
+ EXPECT_FALSE(HasCrashKey(base::StringPrintf(crash_keys::kSwitchFormat,
+ i)));
}
}
-TEST_F(CrashKeysTest, Extensions) {
- // Set three extensions.
- {
- std::set<std::string> extensions;
- extensions.insert("ext.1");
- extensions.insert("ext.2");
- extensions.insert("ext.3");
-
- crash_keys::SetActiveExtensions(extensions);
-
- extensions.erase(GetKeyValue("extension-1"));
- extensions.erase(GetKeyValue("extension-2"));
- extensions.erase(GetKeyValue("extension-3"));
- EXPECT_EQ(0u, extensions.size());
+namespace {
- EXPECT_EQ("3", GetKeyValue("num-extensions"));
- EXPECT_FALSE(HasCrashKey("extension-4"));
- }
+bool IsBoringFlag(const std::string& flag) {
+ return flag.compare("--boring") == 0;
+}
- // Set more than the max switches.
- {
- std::set<std::string> extensions;
- const int kMax = crash_keys::kExtensionIDMaxCount + 2;
- EXPECT_GT(kMax, 10);
- for (int i = 1; i <= kMax; ++i)
- extensions.insert(base::StringPrintf("ext.%d", i));
- crash_keys::SetActiveExtensions(extensions);
-
- for (int i = 1; i <= kMax; ++i) {
- extensions.erase(
- GetKeyValue(base::StringPrintf(crash_keys::kExtensionID, i)));
- }
- EXPECT_EQ(2u, extensions.size());
-
- EXPECT_EQ("12", GetKeyValue("num-extensions"));
- EXPECT_FALSE(HasCrashKey("extension-13"));
- EXPECT_FALSE(HasCrashKey("extension-14"));
- }
+} // namespace
- // Set fewer to ensure that old ones are erased.
- {
- std::set<std::string> extensions;
- for (int i = 1; i <= 5; ++i)
- extensions.insert(base::StringPrintf("ext.%d", i));
- crash_keys::SetActiveExtensions(extensions);
-
- extensions.erase(GetKeyValue("extension-1"));
- extensions.erase(GetKeyValue("extension-2"));
- extensions.erase(GetKeyValue("extension-3"));
- extensions.erase(GetKeyValue("extension-4"));
- extensions.erase(GetKeyValue("extension-5"));
- EXPECT_EQ(0u, extensions.size());
-
- EXPECT_EQ("5", GetKeyValue("num-extensions"));
- for (int i = 6; i < 20; ++i) {
- std::string key = base::StringPrintf(crash_keys::kExtensionID, i);
- EXPECT_FALSE(HasCrashKey(key)) << key;
- }
- }
-}
+TEST_F(CrashKeysTest, FilterFlags) {
+ using crash_keys::kSwitchesMaxCount;
-#if defined(OS_CHROMEOS)
-TEST_F(CrashKeysTest, IgnoreBoringFlags) {
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
- command_line.AppendSwitch("--enable-logging");
- command_line.AppendSwitch("--user-data-dir=/tmp");
- command_line.AppendSwitch("--v=1");
- command_line.AppendSwitch("--default-wallpaper-small=test.png");
-
- command_line.AppendSwitch("--vv=1");
- command_line.AppendSwitch("--vvv");
- command_line.AppendSwitch("--enable-multi-profiles");
- command_line.AppendSwitch("--device-management-url=https://foo/bar");
-
- crash_keys::SetSwitchesFromCommandLine(&command_line);
-
- EXPECT_EQ("--vv=1", GetKeyValue("switch-1"));
- EXPECT_EQ("--vvv", GetKeyValue("switch-2"));
- EXPECT_EQ("--enable-multi-profiles", GetKeyValue("switch-3"));
- EXPECT_EQ("--device-management-url=https://foo/bar", GetKeyValue("switch-4"));
- EXPECT_FALSE(HasCrashKey("switch-5"));
+ command_line.AppendSwitch("--not-boring-1");
+ command_line.AppendSwitch("--boring");
+
+ // Include the max number of non-boring switches, to make sure that only the
+ // switches actually included in the crash keys are counted.
+ for (int i = 2; i <= kSwitchesMaxCount; ++i)
+ command_line.AppendSwitch(base::StringPrintf("--not-boring-%d", i));
+
+ crash_keys::SetSwitchesFromCommandLine(command_line, &IsBoringFlag);
+
+ // If the boring keys are filtered out, every single key should now be
+ // not-boring.
+ for (int i = 1; i <= kSwitchesMaxCount; ++i) {
+ std::string switch_name = base::StringPrintf(crash_keys::kSwitchFormat, i);
+ std::string switch_value = base::StringPrintf("--not-boring-%d", i);
+ EXPECT_EQ(switch_value, GetKeyValue(switch_name)) << "switch_name is " <<
+ switch_name;
+ }
}
-#endif
« components/crash/core/common/crash_keys.h ('K') | « components/crash/core/common/crash_keys.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698