mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94178 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
12bdbf1ca8
commit
b0a5baefaa
@ -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 ) );
|
||||
}
|
||||
|
16
unittests/Support/System.cpp
Normal file
16
unittests/Support/System.cpp
Normal file
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user