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
+31
View File
@@ -0,0 +1,31 @@
// 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 <filesystem>
#include <string>
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "toolchain/driver/driver_file_test_base.h"
namespace Carbon::Testing {
namespace {
class CodeGenFileTest : public DriverFileTestBase {
public:
using DriverFileTestBase::DriverFileTestBase;
auto GetDefaultArgs() -> llvm::SmallVector<std::string> override {
CARBON_FATAL() << "ARGS is always set in these tests";
}
};
} // namespace
auto RegisterFileTests(const llvm::SmallVector<std::filesystem::path>& paths)
-> void {
CodeGenFileTest::RegisterTests<CodeGenFileTest>("CodeGenFileTest", paths);
}
} // namespace Carbon::Testing