| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // 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
- #ifndef CARBON_TESTING_BASE_FILE_HELPERS_H_
- #define CARBON_TESTING_BASE_FILE_HELPERS_H_
- #include <filesystem>
- #include <string>
- #include "common/error.h"
- namespace Carbon::Testing {
- // Returns a directory that should be used to hold temporary files created by
- // test execution.
- auto GetTempDirectory() -> std::filesystem::path;
- // Reads a file to string.
- auto ReadFile(std::filesystem::path path) -> ErrorOr<std::string>;
- // Writes a test file to disk and returns an error or the full path to the file.
- //
- // Note that this expects to be run from within a GoogleTest test, and relies on
- // global state of GoogleTest.
- //
- // This locates a suitable temporary directory for the test, creates a file with
- // the requested name in that directory, and writes the provided content to that
- // file. The full path to the written file is returned.
- //
- // Where possible, this will use a Bazel-provided test temporary directory.
- // However, if unavailable, it falls back to a system temporary directory. This
- // helps tests be runnable outside of Bazel, for example under a debugger. It
- // also works to create test file names that are unlikely to conflict with other
- // tests when run.
- auto WriteTestFile(llvm::StringRef name, llvm::StringRef contents)
- -> ErrorOr<std::filesystem::path>;
- } // namespace Carbon::Testing
- #endif // CARBON_TESTING_BASE_FILE_HELPERS_H_
|