llvm-project/lldb/unittests/Host/FileSystemTest.cpp
Pavel Labath 1408bf7231 Remove TimeValue usage from FileSpec.h
Summary:
The only usage there was in GetModificationTime(). I also took the opportunity
to move this function from FileSpec to the FileSystem class - since we are
using FileSpecs to also represent remote files for which we cannot (easily)
retrieve modification time, it makes sense to make the decision to get the
modification time more explicit.

The new function returns a llvm::sys::TimePoint<>. To aid the transition
from TimeValue, I have added a constructor to it which enables implicit
conversion from a time_point.

Reviewers: zturner, clayborg

Subscribers: mehdi_amini, tberghammer, danalbert, beanz, mgorny, lldb-commits

Differential Revision: https://reviews.llvm.org/D25392

llvm-svn: 285702
2016-11-01 16:11:14 +00:00

33 lines
969 B
C++

//===-- FileSystemTest.cpp --------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "gtest/gtest.h"
#include "lldb/Host/FileSystem.h"
extern const char *TestMainArgv0;
using namespace lldb_private;
TEST(FileSystemTest, FileAndDirectoryComponents) {
using namespace std::chrono;
const bool resolve = true;
#ifdef _WIN32
FileSpec fs1("C:\\FILE\\THAT\\DOES\\NOT\\EXIST.TXT", !resolve);
#else
FileSpec fs1("/file/that/does/not/exist.txt", !resolve);
#endif
FileSpec fs2(TestMainArgv0, resolve);
EXPECT_EQ(system_clock::time_point(), FileSystem::GetModificationTime(fs1));
EXPECT_LT(system_clock::time_point() + hours(24 * 365 * 20),
FileSystem::GetModificationTime(fs2));
}