| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/eintr_wrapper.h" | 5 #include "base/eintr_wrapper.h" |
| 6 #include "base/logging.h" | 6 #include "base/logging.h" |
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
| 8 #include "base/platform_thread.h" | 8 #include "base/platform_thread.h" |
| 9 #include "base/ref_counted.h" | 9 #include "base/ref_counted.h" |
| 10 #include "base/task.h" | 10 #include "base/task.h" |
| (...skipping 1521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1532 RunTest_DispatcherWithMessageHook(MessageLoop::TYPE_UI); | 1532 RunTest_DispatcherWithMessageHook(MessageLoop::TYPE_UI); |
| 1533 } | 1533 } |
| 1534 | 1534 |
| 1535 TEST(MessageLoopTest, IOHandler) { | 1535 TEST(MessageLoopTest, IOHandler) { |
| 1536 RunTest_IOHandler(); | 1536 RunTest_IOHandler(); |
| 1537 } | 1537 } |
| 1538 | 1538 |
| 1539 TEST(MessageLoopTest, WaitForIO) { | 1539 TEST(MessageLoopTest, WaitForIO) { |
| 1540 RunTest_WaitForIO(); | 1540 RunTest_WaitForIO(); |
| 1541 } | 1541 } |
| 1542 |
| 1543 TEST(MessageLoopTest, HighResolutionTimer) { |
| 1544 MessageLoop loop; |
| 1545 |
| 1546 const int kFastTimerMs = 5; |
| 1547 const int kSlowTimerMs = 100; |
| 1548 |
| 1549 EXPECT_EQ(false, loop.high_resolution_timers_enabled()); |
| 1550 |
| 1551 // Post a fast task to enable the high resolution timers. |
| 1552 loop.PostDelayedTask(FROM_HERE, new DummyTask(1), kFastTimerMs); |
| 1553 loop.Run(); |
| 1554 EXPECT_EQ(true, loop.high_resolution_timers_enabled()); |
| 1555 |
| 1556 // Post a slow task and verify high resolution timers |
| 1557 // are still enabled. |
| 1558 loop.PostDelayedTask(FROM_HERE, new DummyTask(1), kSlowTimerMs); |
| 1559 loop.Run(); |
| 1560 EXPECT_EQ(true, loop.high_resolution_timers_enabled()); |
| 1561 |
| 1562 // Wait for a while so that high-resolution mode elapses. |
| 1563 Sleep(MessageLoop::kHighResolutionTimerModeLeaseTimeMs); |
| 1564 |
| 1565 // Post a slow task to disable the high resolution timers. |
| 1566 loop.PostDelayedTask(FROM_HERE, new DummyTask(1), kSlowTimerMs); |
| 1567 loop.Run(); |
| 1568 EXPECT_EQ(false, loop.high_resolution_timers_enabled()); |
| 1569 } |
| 1570 |
| 1542 #endif // defined(OS_WIN) | 1571 #endif // defined(OS_WIN) |
| 1543 | 1572 |
| 1544 #if defined(OS_POSIX) | 1573 #if defined(OS_POSIX) |
| 1545 | 1574 |
| 1546 namespace { | 1575 namespace { |
| 1547 | 1576 |
| 1548 class QuitDelegate : public base::MessagePumpLibevent::Watcher { | 1577 class QuitDelegate : public base::MessagePumpLibevent::Watcher { |
| 1549 public: | 1578 public: |
| 1550 virtual void OnFileCanWriteWithoutBlocking(int fd) { | 1579 virtual void OnFileCanWriteWithoutBlocking(int fd) { |
| 1551 MessageLoop::current()->Quit(); | 1580 MessageLoop::current()->Quit(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1605 } | 1634 } |
| 1606 if (HANDLE_EINTR(close(pipefds[0])) < 0) | 1635 if (HANDLE_EINTR(close(pipefds[0])) < 0) |
| 1607 PLOG(ERROR) << "close"; | 1636 PLOG(ERROR) << "close"; |
| 1608 if (HANDLE_EINTR(close(pipefds[1])) < 0) | 1637 if (HANDLE_EINTR(close(pipefds[1])) < 0) |
| 1609 PLOG(ERROR) << "close"; | 1638 PLOG(ERROR) << "close"; |
| 1610 } | 1639 } |
| 1611 | 1640 |
| 1612 } // namespace | 1641 } // namespace |
| 1613 | 1642 |
| 1614 #endif // defined(OS_POSIX) | 1643 #endif // defined(OS_POSIX) |
| OLD | NEW |