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

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

Issue 2671383002: Double variations crash key size (Closed)
Patch Set: Remove an expectation based on chunk size Created 3 years, 10 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 | « components/crash/core/common/crash_keys.cc ('k') | ios/chrome/browser/crash_report/crash_keys.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/crash/core/common/crash_keys_unittest.cc
diff --git a/components/crash/core/common/crash_keys_unittest.cc b/components/crash/core/common/crash_keys_unittest.cc
index fb9d519142cecd46506ade361a0d8d0329f57ba0..6c2bda01035448be0f6d99cdd3fe0a76df662c0e 100644
--- a/components/crash/core/common/crash_keys_unittest.cc
+++ b/components/crash/core/common/crash_keys_unittest.cc
@@ -23,12 +23,19 @@ class CrashKeysTest : public testing::Test {
self_ = this;
base::debug::SetCrashKeyReportingFunctions(
&SetCrashKeyValue, &ClearCrashKey);
+ }
+ bool InitSwitchesCrashKeys() {
std::vector<base::debug::CrashKey> keys;
crash_keys::GetCrashKeysForCommandLineSwitches(&keys);
- base::debug::InitCrashKeys(keys.data(), keys.size(),
- crash_keys::kChunkMaxLength);
- ASSERT_FALSE(keys.empty());
+ return InitCrashKeys(keys);
+ }
+
+ bool InitVariationsCrashKeys() {
+ std::vector<base::debug::CrashKey> keys = {
+ {crash_keys::kNumVariations, crash_keys::kSmallSize},
+ {crash_keys::kVariations, crash_keys::kHugeSize}};
+ return InitCrashKeys(keys);
}
void TearDown() override {
@@ -48,6 +55,12 @@ class CrashKeysTest : public testing::Test {
}
private:
+ bool InitCrashKeys(const std::vector<base::debug::CrashKey>& keys) {
+ base::debug::InitCrashKeys(keys.data(), keys.size(),
+ crash_keys::kChunkMaxLength);
+ return !keys.empty();
+ }
+
static void SetCrashKeyValue(const base::StringPiece& key,
const base::StringPiece& value) {
self_->keys_[key.as_string()] = value.as_string();
@@ -65,6 +78,8 @@ class CrashKeysTest : public testing::Test {
CrashKeysTest* CrashKeysTest::self_ = NULL;
TEST_F(CrashKeysTest, Switches) {
+ ASSERT_TRUE(InitSwitchesCrashKeys());
+
// Set three switches.
{
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
@@ -118,6 +133,8 @@ bool IsBoringFlag(const std::string& flag) {
} // namespace
TEST_F(CrashKeysTest, FilterFlags) {
+ ASSERT_TRUE(InitSwitchesCrashKeys());
+
using crash_keys::kSwitchesMaxCount;
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
@@ -140,3 +157,35 @@ TEST_F(CrashKeysTest, FilterFlags) {
switch_name;
}
}
+
+TEST_F(CrashKeysTest, VariationsCapacity) {
+ ASSERT_TRUE(InitVariationsCrashKeys());
+
+ // Variation encoding: two 32bit numbers encorded as hex with a '-' separator.
+ const char kSampleVariation[] = "12345678-12345678";
+ const size_t kVariationLen = std::strlen(kSampleVariation);
+ const size_t kSeparatedVariationLen = kVariationLen + 1U;
+ ASSERT_EQ(17U, kVariationLen);
+
+ // The expected capacity factors in a separator (',').
+ const size_t kExpectedCapacity = 112U;
+ ASSERT_EQ(kExpectedCapacity,
+ crash_keys::kHugeSize / (kSeparatedVariationLen));
+
+ // Create some variations and set the crash keys.
+ std::vector<std::string> variations;
+ for (size_t i = 0; i < kExpectedCapacity + 2; ++i)
+ variations.push_back(kSampleVariation);
+ crash_keys::SetVariationsList(variations);
+
+ // Validate crash keys.
+ ASSERT_TRUE(HasCrashKey(crash_keys::kNumVariations));
+ EXPECT_EQ("114", GetKeyValue(crash_keys::kNumVariations));
+
+ const size_t kExpectedChunks = (kSeparatedVariationLen * kExpectedCapacity) /
+ crash_keys::kChunkMaxLength;
+ for (size_t i = 0; i < kExpectedChunks; ++i) {
+ ASSERT_TRUE(HasCrashKey(
+ base::StringPrintf("%s-%" PRIuS, crash_keys::kVariations, i + 1)));
+ }
+}
« no previous file with comments | « components/crash/core/common/crash_keys.cc ('k') | ios/chrome/browser/crash_report/crash_keys.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698