aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/System/Unix/TimeValue.inc2
-rw-r--r--unittests/Support/System.cpp16
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/System/Unix/TimeValue.inc b/lib/System/Unix/TimeValue.inc
index 1ae8c7184d..d8cc8f55ee 100644
--- a/lib/System/Unix/TimeValue.inc
+++ b/lib/System/Unix/TimeValue.inc
@@ -48,7 +48,7 @@ TimeValue TimeValue::now() {
}
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 ) );
}
diff --git a/unittests/Support/System.cpp b/unittests/Support/System.cpp
new file mode 100644
index 0000000000..b3dd17d380
--- /dev/null
+++ b/unittests/Support/System.cpp
@@ -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);
+}
+}