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:
Jon Ross-Perkins
2023-07-25 22:47:56 +00:00
committed by GitHub
parent 95b53d33d6
commit f088a71cec
31 changed files with 421 additions and 138 deletions
+2 -5
View File
@@ -16,11 +16,8 @@ class ParseTreeFileTest : public DriverFileTestBase {
public:
using DriverFileTestBase::DriverFileTestBase;
auto MakeArgs(const llvm::SmallVector<llvm::StringRef>& test_files)
-> llvm::SmallVector<llvm::StringRef> override {
llvm::SmallVector<llvm::StringRef> args({"dump", "parse-tree"});
args.insert(args.end(), test_files.begin(), test_files.end());
return args;
auto GetDefaultArgs() -> llvm::SmallVector<std::string> override {
return {"dump", "parse-tree", "%s"};
}
};