mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 06:54:44 +01:00
Add file_test support for specifying arguments and only checking a subset of output. (#3018)
This is sufficient to convert remaining toolchain tests to file_test. %s and %t are currently used. While #2978 might use %T with lit, I think that's resolving a lit-specific issue that's not necessary when TEST_TMPDIR is readily available for any necessary operations (i.e., setting the working directory). With ARGS, I think it's feasible to switch to file_test without %T. Also adds documentation to file_test_base.h, which was starting to feel like a significant gap. This is not yet handled by autoupdate, but I'm eyeing that next.
This commit is contained in:
@@ -42,9 +42,13 @@ class ParseAndExecuteTestFile : public FileTestBase {
|
||||
}
|
||||
}
|
||||
|
||||
auto RunWithFiles(const llvm::SmallVector<TestFile>& test_files,
|
||||
auto RunWithFiles(const llvm::SmallVector<llvm::StringRef>& test_args,
|
||||
const llvm::SmallVector<TestFile>& test_files,
|
||||
llvm::raw_pwrite_stream& stdout,
|
||||
llvm::raw_pwrite_stream& stderr) -> bool override {
|
||||
CARBON_CHECK(test_args.empty())
|
||||
<< "ARGS are not currently used in explorer's file_test.";
|
||||
|
||||
if (test_files.size() != 1) {
|
||||
ADD_FAILURE() << "Only 1 file is supported: " << test_files.size()
|
||||
<< " provided";
|
||||
@@ -88,6 +92,10 @@ class ParseAndExecuteTestFile : public FileTestBase {
|
||||
return result.ok();
|
||||
}
|
||||
|
||||
auto GetDefaultArgs() -> llvm::SmallVector<std::string> override {
|
||||
return {};
|
||||
}
|
||||
|
||||
private:
|
||||
bool trace_;
|
||||
bool is_trace_test = false;
|
||||
|
||||
Reference in New Issue
Block a user