Fix KernelCollector code and unit tests.

This CL fixes the KernelCollectorTest.LoadPreservedDump test due to
KernelCollector::records_ not being initialized. It also updates
KernelCollectorTest.CollectPreservedFileMissing and
KernelCollectorTest.CollectNoCrash.

BUG=chromium-os:27126
TEST=Tested the following:
1. emerge-{x86,amd64,arm}-generic crash-reporter
2. FEATURES="test" emerge-{x86,amd64,arm}-generic crash-reporter

Change-Id: If5a773fa77a2e66e539d204410140d1b4e66d062
Reviewed-on: https://gerrit.chromium.org/gerrit/17125
Reviewed-by: Kees Cook <keescook@chromium.org>
Commit-Ready: Ben Chan <benchan@chromium.org>
Tested-by: Ben Chan <benchan@chromium.org>
diff --git a/crash_reporter/kernel_collector.cc b/crash_reporter/kernel_collector.cc
index 6f2855a..d23c595 100644
--- a/crash_reporter/kernel_collector.cc
+++ b/crash_reporter/kernel_collector.cc
@@ -48,7 +48,8 @@
 
 KernelCollector::KernelCollector()
     : is_enabled_(false),
-      ramoops_dump_path_(kDumpPath) {
+      ramoops_dump_path_(kDumpPath),
+      records_(0) {
   // We expect crash dumps in the format of the architecture we are built for.
   arch_ = GetCompilerArch();
 }
diff --git a/crash_reporter/kernel_collector_test.cc b/crash_reporter/kernel_collector_test.cc
index 87c6f3d..873a5a7 100644
--- a/crash_reporter/kernel_collector_test.cc
+++ b/crash_reporter/kernel_collector_test.cc
@@ -28,14 +28,6 @@
   return s_metrics;
 }
 
-class TKernelCollector : public KernelCollector {
-  bool LoadParameters() {
-    // Since we don't have /sys/module/ramoops/parameters on our system just
-    // return true instead of getting the parameters from the files.
-    return true;
-  }
-};
-
 class KernelCollectorTest : public ::testing::Test {
   void SetUp() {
     s_crashes = 0;
@@ -61,13 +53,13 @@
   void SetUpSuccessfulCollect();
   void ComputeKernelStackSignatureCommon();
 
-  TKernelCollector collector_;
+  KernelCollector collector_;
   FilePath test_kcrash_;
 };
 
 TEST_F(KernelCollectorTest, ComputeKernelStackSignatureBase) {
   // Make sure the normal build architecture is detected
-  EXPECT_TRUE(collector_.GetArch() != TKernelCollector::archUnknown);
+  EXPECT_TRUE(collector_.GetArch() != KernelCollector::archUnknown);
 }
 
 TEST_F(KernelCollectorTest, LoadPreservedDump) {
@@ -76,10 +68,12 @@
   dump.clear();
 
   WriteStringToFile(test_kcrash_, "emptydata");
+  ASSERT_TRUE(collector_.LoadParameters());
   ASSERT_FALSE(collector_.LoadPreservedDump(&dump));
   ASSERT_EQ("", dump);
 
   WriteStringToFile(test_kcrash_, "====1.1\nsomething");
+  ASSERT_TRUE(collector_.LoadParameters());
   ASSERT_TRUE(collector_.LoadPreservedDump(&dump));
   ASSERT_EQ("something", dump);
 }
@@ -219,15 +213,15 @@
 
 TEST_F(KernelCollectorTest, CollectPreservedFileMissing) {
   ASSERT_FALSE(collector_.Collect());
-  ASSERT_TRUE(FindLog("Unable to open"));
-  ASSERT_TRUE(FindLog("No valid records found"));
+  ASSERT_FALSE(FindLog("Stored kcrash to "));
   ASSERT_EQ(0, s_crashes);
 }
 
 TEST_F(KernelCollectorTest, CollectNoCrash) {
   WriteStringToFile(test_kcrash_, "");
   ASSERT_FALSE(collector_.Collect());
-  ASSERT_FALSE(FindLog("Collected kernel crash"));
+  ASSERT_TRUE(FindLog("No valid records found"));
+  ASSERT_FALSE(FindLog("Stored kcrash to "));
   ASSERT_EQ(0, s_crashes);
 }
 
@@ -353,7 +347,7 @@
           "[<c017bfe0>] (proc_reg_write+0x88/0x9c)\n";
   std::string signature;
 
-  collector_.SetArch(TKernelCollector::archArm);
+  collector_.SetArch(KernelCollector::archArm);
   EXPECT_TRUE(
       collector_.ComputeKernelStackSignature(kBugToPanic, &signature, false));
   EXPECT_EQ("kernel-write_breakme-97D3E92F", signature);