11 #include "gmock/gmock.h"
12 #include "gtest/gtest.h"
18 TEST(FSTests, PreambleStatusCache) {
19 llvm::StringMap<std::string> Files;
25 PreambleFileStatusCache StatCache(
testPath(
"main"));
26 auto ProduceFS = StatCache.getProducingFS(
FS);
27 EXPECT_TRUE(ProduceFS->openFileForRead(
"x"));
28 EXPECT_TRUE(ProduceFS->status(
"y"));
29 EXPECT_TRUE(ProduceFS->status(
"main"));
31 EXPECT_TRUE(StatCache.lookup(
testPath(
"x")).hasValue());
32 EXPECT_TRUE(StatCache.lookup(
testPath(
"y")).hasValue());
34 EXPECT_FALSE(StatCache.lookup(
testPath(
"main")).hasValue());
36 llvm::vfs::Status S(
"fake", llvm::sys::fs::UniqueID(123, 456),
37 std::chrono::system_clock::now(), 0, 0, 1024,
38 llvm::sys::fs::file_type::regular_file,
39 llvm::sys::fs::all_all);
40 StatCache.update(*
FS, S);
41 auto ConsumeFS = StatCache.getConsumingFS(
FS);
42 auto Cached = ConsumeFS->status(
testPath(
"fake"));
44 EXPECT_EQ(Cached->getName(),
testPath(
"fake"));
45 EXPECT_EQ(Cached->getUniqueID(), S.getUniqueID());
49 auto CachedDotDot = ConsumeFS->status(
testPath(
"temp/../fake"));
50 EXPECT_TRUE(CachedDotDot);
51 EXPECT_EQ(CachedDotDot->getName(),
testPath(
"temp/../fake"));
52 EXPECT_EQ(CachedDotDot->getUniqueID(), S.getUniqueID());