mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 11:41:05 +01:00
Make the file_test binary work without custom environment variables. (#5442)
Instead of crashing when run outside of `bazel`, make the toolchain's `file_test` binary work properly when no test-specific environment variables are set. This makes it a lot easier to run `file_test` under a debugger. There are two main changes here: - Don't crash if `$TEST_TMPDIR` is unset. Instead, fall back to LLVM's temporary directory (typically `$TMPDIR`). We already did this in some places in tests. We now do it in more places. - Don't fall back to a target label of `<target>` in the reproduction commands if `$TEST_TARGET` is unset, because this causes all the tests to fail because their output doesn't match the expected output due to a differing bazel run command. Instead explicitly specify the target from the `FileTestBase`-derived class. Infrastructure for this has been added generally, but only rolled out to the toolchain `file_test` binary for now. --------- Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
co-authored by
Jon Ross-Perkins
parent
f2a16d8742
commit
66caff2c26
@@ -62,6 +62,12 @@ class ToolchainFileTest : public FileTestBase {
|
||||
return component_ != "language_server";
|
||||
}
|
||||
|
||||
// Force a fixed bazel label to avoid spurious test failures due to differing
|
||||
// run commands when running file_test binary outside of bazel.
|
||||
auto GetBazelLabel() -> std::string override {
|
||||
return "//toolchain/testing:file_test";
|
||||
}
|
||||
|
||||
private:
|
||||
// Controls whether `Run()` includes the prelude.
|
||||
auto is_no_prelude() const -> bool {
|
||||
|
||||
Reference in New Issue
Block a user