[llvm-commits] [llvm] r94178 - in /llvm/trunk: lib/System/Unix/TimeValue.inc unittests/Support/System.cpp
Torok Edwin
edwintorok at gmail.com
Fri Jan 22 07:51:31 PST 2010
Author: edwin
Date: Fri Jan 22 09:51:31 2010
New Revision: 94178
URL: http://llvm.org/viewvc/llvm-project?rev=94178&view=rev
Log:
Fix TimeValue::now() on Unix.
TimeValue()::now().toEpochTime() is supposed to be the same as time(),
but it wasn't, because toEpoch subtracted PosixZeroTime, but now()
didn't add PosixZeroTime!
Add a unittest to check this works.
Added:
llvm/trunk/unittests/Support/System.cpp
Modified:
llvm/trunk/lib/System/Unix/TimeValue.inc
Modified: llvm/trunk/lib/System/Unix/TimeValue.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/System/Unix/TimeValue.inc?rev=94178&r1=94177&r2=94178&view=diff
==============================================================================
--- llvm/trunk/lib/System/Unix/TimeValue.inc (original)
+++ llvm/trunk/lib/System/Unix/TimeValue.inc Fri Jan 22 09:51:31 2010
@@ -48,7 +48,7 @@
}
return TimeValue(
- static_cast<TimeValue::SecondsType>( the_time.tv_sec ),
+ static_cast<TimeValue::SecondsType>( the_time.tv_sec + PosixZeroTime.seconds_ ),
static_cast<TimeValue::NanoSecondsType>( the_time.tv_usec *
NANOSECONDS_PER_MICROSECOND ) );
}
Added: llvm/trunk/unittests/Support/System.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/System.cpp?rev=94178&view=auto
==============================================================================
--- llvm/trunk/unittests/Support/System.cpp (added)
+++ llvm/trunk/unittests/Support/System.cpp Fri Jan 22 09:51:31 2010
@@ -0,0 +1,16 @@
+//===- llvm/unittest/Support/System.cpp - System tests --===//
+#include "gtest/gtest.h"
+#include "llvm/System/TimeValue.h"
+#include <time.h>
+
+using namespace llvm;
+namespace {
+class SystemTest : public ::testing::Test {
+};
+
+TEST_F(SystemTest, TimeValue) {
+ sys::TimeValue now = sys::TimeValue::now();
+ time_t now_t = time(NULL);
+ EXPECT_TRUE(abs(now_t - now.toEpochTime()) < 2);
+}
+}
More information about the llvm-commits
mailing list