Skip to content
Snippets Groups Projects
Commit fbcd2c76 authored by Torok Edwin's avatar Torok Edwin
Browse files

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.

llvm-svn: 94178
parent 0599df16
No related branches found
No related tags found
No related merge requests found
...@@ -48,7 +48,7 @@ TimeValue TimeValue::now() { ...@@ -48,7 +48,7 @@ TimeValue TimeValue::now() {
} }
return TimeValue( 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 * static_cast<TimeValue::NanoSecondsType>( the_time.tv_usec *
NANOSECONDS_PER_MICROSECOND ) ); NANOSECONDS_PER_MICROSECOND ) );
} }
......
//===- 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);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment