mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:30:14 +01:00
This removes the directory crawl because bazel doesn't remove files from execroot when the rule generating them would no longer generate them. Fixes #4288
30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
#include "toolchain/install/install_paths_test_helpers.h"
|
|
|
|
#include "testing/base/global_exe_path.h"
|
|
|
|
namespace Carbon::Testing {
|
|
|
|
// Prepares the VFS with prelude files from the real filesystem. Primarily for
|
|
// tests.
|
|
auto AddPreludeFilesToVfs(InstallPaths install_paths,
|
|
llvm::vfs::InMemoryFileSystem* vfs) -> void {
|
|
// Load the prelude into the test VFS.
|
|
auto real_fs = llvm::vfs::getRealFileSystem();
|
|
auto prelude = install_paths.ReadPreludeManifest();
|
|
CARBON_CHECK(prelude.ok()) << prelude.error();
|
|
|
|
for (const auto& path : *prelude) {
|
|
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> file =
|
|
real_fs->getBufferForFile(path);
|
|
CARBON_CHECK(file) << "Error getting file: " << file.getError().message();
|
|
bool added = vfs->addFile(path, /*ModificationTime=*/0, std::move(*file));
|
|
CARBON_CHECK(added) << "Duplicate file: " << path;
|
|
}
|
|
}
|
|
|
|
} // namespace Carbon::Testing
|