crash: Remove glib from crash_reporter
As part of the minimization effort, refactor crash_reporter code to
not depend directly on glib.
BUG=brillo:87, brillo:88, chromium:435314
TEST=`FEATURES=test emerge-panther libchromeos debugd crash-reporter`
TEST=Enabled crash reports; Browsed to chrome://crash; crash files \
generated; `FORCE_OFFICIAL=1 SECONDS_SEND_SPREAD=1 crash_sender` \
/var/log/messages shows crash id, report shows all expected files
TEST=`cbuildbot --remote -p chromiumos/platform2 amd64-generic-full`
CQ-DEPEND=I00331e0bf29195b41cd84d4495ab47738a5a41de
CQ-DEPEND=I9df752d8995773adb56fab34dd97626f3ddf1765
Change-Id: I48b366198a7f89ca55259603cf8470e4d59321bf
Reviewed-on: https://chromium-review.googlesource.com/246441
Reviewed-by: Dan Erat <derat@chromium.org>
Tested-by: Steve Fung <stevefung@chromium.org>
Commit-Queue: Steve Fung <stevefung@chromium.org>
diff --git a/crash_reporter/crash_collector_test.cc b/crash_reporter/crash_collector_test.cc
index 0ca3792..ce9af2b 100644
--- a/crash_reporter/crash_collector_test.cc
+++ b/crash_reporter/crash_collector_test.cc
@@ -5,8 +5,7 @@
#include "crash-reporter/crash_collector_test.h"
#include <unistd.h>
-
-#include <glib.h>
+#include <utility>
#include <base/files/file_util.h>
#include <base/strings/string_util.h>
@@ -19,6 +18,7 @@
using base::FilePath;
using base::StringPrintf;
using chromeos::FindLog;
+using ::testing::Invoke;
using ::testing::Return;
namespace {
@@ -32,11 +32,20 @@
return false;
}
+bool GetActiveUserSessionsImpl(std::map<std::string, std::string> *sessions) {
+ char kUser[] = "chicken@butt.com";
+ char kHash[] = "hashcakes";
+ sessions->insert(std::pair<std::string, std::string>(kUser, kHash));
+ return true;
+}
+
} // namespace
class CrashCollectorTest : public ::testing::Test {
public:
void SetUp() {
+ EXPECT_CALL(collector_, SetUpDBus()).WillRepeatedly(Return());
+
collector_.Initialize(CountCrash, IsMetrics);
test_dir_ = FilePath("test");
base::CreateDirectory(test_dir_);
@@ -117,15 +126,8 @@
EXPECT_EQ(kRootUid, directory_owner);
EXPECT_EQ(kRootGid, directory_group);
- // No need to destroy the hash as GetCrashDirectoryInfo() will do it for us.
- GHashTable *active_sessions = g_hash_table_new(g_str_hash, g_str_equal);
- char kUser[] = "chicken@butt.com";
- char kHash[] = "hashcakes";
- g_hash_table_insert(active_sessions,
- static_cast<gpointer>(kUser),
- static_cast<gpointer>(kHash));
- EXPECT_CALL(collector_, GetActiveUserSessions())
- .WillOnce(Return(active_sessions));
+ EXPECT_CALL(collector_, GetActiveUserSessions(testing::_))
+ .WillOnce(Invoke(&GetActiveUserSessionsImpl));
EXPECT_EQ(collector_.IsUserSpecificDirectoryEnabled(), true);