diff options
author | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 11:55:08 +0000 |
---|---|---|
committer | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 11:55:08 +0000 |
commit | e36e86f9cf568e12a47cc779893580a09b08803a (patch) | |
tree | babbda83fb63c64565309a8fd19782f1145c72ce /base/time_unittest.cc | |
parent | 86e19d84402a76c57fce85655c24f547312b6084 (diff) | |
download | chromium_src-e36e86f9cf568e12a47cc779893580a09b08803a.zip chromium_src-e36e86f9cf568e12a47cc779893580a09b08803a.tar.gz chromium_src-e36e86f9cf568e12a47cc779893580a09b08803a.tar.bz2 |
Make ProcessWatcher use kqueues on Mac.
* Port ProcessWatcher::EnsureProcessTerminated() to kqueue() APIs on OS X.
* Make ProcessWatcher::EnsureProcessGetsReaped() Linux-only, since it's only used there.
* Add a unit test.
BUG=12731
TEST=Open Chrome/Mac, open and close a few tabs. Processes shouldn't stay around.
Review URL: http://codereview.chromium.org/496007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34547 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/time_unittest.cc')
-rw-r--r-- | base/time_unittest.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/base/time_unittest.cc b/base/time_unittest.cc index 81daab0..76b357a 100644 --- a/base/time_unittest.cc +++ b/base/time_unittest.cc @@ -142,6 +142,27 @@ TEST(TimeDelta, FromAndIn) { EXPECT_EQ(13, TimeDelta::FromMicroseconds(13).InMicroseconds()); } +#if defined(OS_POSIX) +TEST(TimeDelta, TimeSpecConversion) { + struct timespec result = TimeDelta::FromSeconds(0).ToTimeSpec(); + EXPECT_EQ(result.tv_sec, 0); + EXPECT_EQ(result.tv_nsec, 0); + + result = TimeDelta::FromSeconds(1).ToTimeSpec(); + EXPECT_EQ(result.tv_sec, 1); + EXPECT_EQ(result.tv_nsec, 0); + + result = TimeDelta::FromMicroseconds(1).ToTimeSpec(); + EXPECT_EQ(result.tv_sec, 0); + EXPECT_EQ(result.tv_nsec, 1000); + + result = TimeDelta::FromMicroseconds( + Time::kMicrosecondsPerSecond + 1).ToTimeSpec(); + EXPECT_EQ(result.tv_sec, 1); + EXPECT_EQ(result.tv_nsec, 1000); +} +#endif // OS_POSIX + // Our internal time format is serialized in things like databases, so it's // important that it's consistent across all our platforms. We use the 1601 // Windows epoch as the internal format across all platforms. |