Chromium Code Reviews| Index: dbus/end_to_end_async_unittest.cc |
| diff --git a/dbus/end_to_end_async_unittest.cc b/dbus/end_to_end_async_unittest.cc |
| index 9a88b42cffec6d1830bd479ab8b9bb9a3a5ee8ca..967b35ce1b47abaddd80eececec4ad3267fd7e39 100644 |
| --- a/dbus/end_to_end_async_unittest.cc |
| +++ b/dbus/end_to_end_async_unittest.cc |
| @@ -160,6 +160,17 @@ class EndToEndAsyncTest : public testing::Test { |
| message_loop_.Run(); |
| } |
| + // Wait for the hey signal to be received, or a timeout. |
| + void WaitForTestSignalOrTimeout(int timeout_ms) { |
| + // OnTestSignal() will quit the message loop, we don't expect that |
| + // to be called, so post a delayed task to quit the message loop |
| + // for when it isn't. |
| + message_loop_.PostDelayedTask(FROM_HERE, |
| + MessageLoop::QuitClosure(), |
| + timeout_ms); |
| + message_loop_.Run(); |
| + } |
| + |
| MessageLoop message_loop_; |
| std::vector<std::string> response_strings_; |
| scoped_ptr<base::Thread> dbus_thread_; |
| @@ -302,11 +313,13 @@ TEST_F(EndToEndAsyncTest, TestSignal) { |
| TEST_F(EndToEndAsyncTest, TestSignalFromRoot) { |
| const char kMessage[] = "hello, world"; |
| - // Send the test signal from the root object path, to see if we can |
| - // handle signals sent from "/", like dbus-send does. |
| + // Object proxies are tied to a particular object path, if a signal |
| + // arrives from a different object path like "/" the proxy should not |
| + // handle it, and should leave it for another. |
| test_service_->SendTestSignalFromRoot(kMessage); |
| - // Receive the signal with the object proxy. The signal is handled in |
| - // EndToEndAsyncTest::OnTestSignal() in the main thread. |
| - WaitForTestSignal(); |
| - ASSERT_EQ(kMessage, test_signal_string_); |
| + // Timeout while waiting to receive the signal, failing if we received it. |
| + const int timeout_ms = 5000; |
| + WaitForTestSignalOrTimeout(timeout_ms); |
|
satorux1
2012/03/01 00:14:32
Does this mean the test takes 5 seconds to perform
keybuk
2012/03/01 00:15:22
yes.
action_timeout_ms is 10s, which is even long
satorux1
2012/03/01 00:23:46
I see. Then let's remove this test.
A better way
|
| + // Verify the signal was not received |
| + ASSERT_TRUE(test_signal_string_.empty()); |
| } |