update_engine: Add locations to the MessageLoop calls.
When running the unittests with --v=1, this patch will show the location
where the tasks were posted to the FakeMessageLoop.
BUG=brillo:91
TEST=Ran unittest with --v=1
Change-Id: I0f9b0a3b67a40c26965a396258f1bd45e38f5ba3
Reviewed-on: https://chromium-review.googlesource.com/280568
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/main.cc b/main.cc
index 159c88f..51a04ec 100644
--- a/main.cc
+++ b/main.cc
@@ -10,6 +10,7 @@
#include <base/at_exit.h>
#include <base/command_line.h>
#include <base/files/file_util.h>
+#include <base/location.h>
#include <base/logging.h>
#include <base/strings/string_util.h>
#include <base/strings/stringprintf.h>
@@ -223,18 +224,19 @@
// Update boot flags after 45 seconds.
loop.PostDelayedTask(
+ FROM_HERE,
base::Bind(&chromeos_update_engine::UpdateAttempter::UpdateBootFlags,
base::Unretained(update_attempter)),
base::TimeDelta::FromSeconds(45));
// Broadcast the update engine status on startup to ensure consistent system
// state on crashes.
- loop.PostTask(base::Bind(
+ loop.PostTask(FROM_HERE, base::Bind(
&chromeos_update_engine::UpdateAttempter::BroadcastStatus,
base::Unretained(update_attempter)));
// Run the UpdateEngineStarted() method on |update_attempter|.
- loop.PostTask(base::Bind(
+ loop.PostTask(FROM_HERE, base::Bind(
&chromeos_update_engine::UpdateAttempter::UpdateEngineStarted,
base::Unretained(update_attempter)));
diff --git a/testrunner.cc b/testrunner.cc
index 6ca791e..4786c74 100644
--- a/testrunner.cc
+++ b/testrunner.cc
@@ -6,6 +6,7 @@
#include <base/at_exit.h>
#include <base/command_line.h>
+#include <chromeos/test_helpers.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-bindings.h>
#include <dbus/dbus-glib-lowlevel.h>
@@ -31,7 +32,7 @@
LOG(INFO) << "parsing command line arguments";
base::CommandLine::Init(argc, argv);
LOG(INFO) << "initializing gtest";
- ::testing::InitGoogleTest(&argc, argv);
+ SetUpTests(&argc, argv, true);
LOG(INFO) << "running unit tests";
int test_result = RUN_ALL_TESTS();
LOG(INFO) << "unittest return value: " << test_result;
diff --git a/update_manager/evaluation_context.cc b/update_manager/evaluation_context.cc
index 856c5cd..66275de 100644
--- a/update_manager/evaluation_context.cc
+++ b/update_manager/evaluation_context.cc
@@ -10,6 +10,7 @@
#include <base/bind.h>
#include <base/json/json_writer.h>
+#include <base/location.h>
#include <base/strings/string_util.h>
#include <base/values.h>
@@ -204,6 +205,7 @@
DLOG(INFO) << "Waiting for timeout in "
<< chromeos_update_engine::utils::FormatTimeDelta(timeout);
timeout_event_ = MessageLoop::current()->PostDelayedTask(
+ FROM_HERE,
base::Bind(&EvaluationContext::OnTimeout,
weak_ptr_factory_.GetWeakPtr()),
timeout);
diff --git a/update_manager/evaluation_context_unittest.cc b/update_manager/evaluation_context_unittest.cc
index 0ba9594..2b59026 100644
--- a/update_manager/evaluation_context_unittest.cc
+++ b/update_manager/evaluation_context_unittest.cc
@@ -323,14 +323,15 @@
// Test that timed events fired after removal of the EvaluationContext don't
// crash.
TEST_F(UmEvaluationContextTest, TimeoutEventAfterDeleteTest) {
- FakeVariable<string> fake_short_poll_var = {"fake_short_poll", TimeDelta()};
+ FakeVariable<string> fake_short_poll_var = {"fake_short_poll",
+ TimeDelta::FromSeconds(1)};
fake_short_poll_var.reset(new string("Polled value"));
eval_ctx_->GetValue(&fake_short_poll_var);
bool value = false;
EXPECT_TRUE(eval_ctx_->RunOnValueChangeOrTimeout(Bind(&SetTrue, &value)));
// Remove the last reference to the EvaluationContext and run the loop for
- // 1 second to give time to the main loop to trigger the timeout Event (of 0
- // seconds). Our callback should not be called because the EvaluationContext
+ // 10 seconds to give time to the main loop to trigger the timeout Event (of 1
+ // second). Our callback should not be called because the EvaluationContext
// was removed before the timeout event is attended.
eval_ctx_ = nullptr;
MessageLoopRunUntil(MessageLoop::current(),
diff --git a/update_manager/real_device_policy_provider.cc b/update_manager/real_device_policy_provider.cc
index 557987f..6f484f7 100644
--- a/update_manager/real_device_policy_provider.cc
+++ b/update_manager/real_device_policy_provider.cc
@@ -6,6 +6,7 @@
#include <stdint.h>
+#include <base/location.h>
#include <base/logging.h>
#include <base/time/time.h>
#include <chromeos/dbus/service_constants.h>
@@ -85,6 +86,7 @@
void RealDevicePolicyProvider::RefreshDevicePolicyAndReschedule() {
RefreshDevicePolicy();
scheduled_refresh_ = MessageLoop::current()->PostDelayedTask(
+ FROM_HERE,
base::Bind(&RealDevicePolicyProvider::RefreshDevicePolicyAndReschedule,
base::Unretained(this)),
TimeDelta::FromMinutes(kDevicePolicyRefreshRateInMinutes));
diff --git a/update_manager/update_manager-inl.h b/update_manager/update_manager-inl.h
index 9463c76..b8fef28 100644
--- a/update_manager/update_manager-inl.h
+++ b/update_manager/update_manager-inl.h
@@ -9,6 +9,7 @@
#include <string>
#include <base/bind.h>
+#include <base/location.h>
#include <chromeos/message_loops/message_loop.h>
#include "update_engine/update_manager/evaluation_context.h"
@@ -144,7 +145,7 @@
base::Closure eval_callback = base::Bind(
&UpdateManager::OnPolicyReadyToEvaluate<R, ExpectedArgs...>,
base::Unretained(this), ec, callback, policy_method, args...);
- chromeos::MessageLoop::current()->PostTask(eval_callback);
+ chromeos::MessageLoop::current()->PostTask(FROM_HERE, eval_callback);
}
} // namespace chromeos_update_manager
diff --git a/update_manager/variable.h b/update_manager/variable.h
index 9f80461..7ce2af8 100644
--- a/update_manager/variable.h
+++ b/update_manager/variable.h
@@ -10,6 +10,7 @@
#include <string>
#include <base/bind.h>
+#include <base/location.h>
#include <base/logging.h>
#include <base/time/time.h>
#include <chromeos/message_loops/message_loop.h>
@@ -108,6 +109,7 @@
// first the list of observers.
if (!observer_list_.empty()) {
chromeos::MessageLoop::current()->PostTask(
+ FROM_HERE,
base::Bind(&BaseVariable::OnValueChangedNotification,
base::Unretained(this)));
}