Files
carbon-lang/testing/file_test/BUILD
T
Jon Ross-Perkins 536bfd9cbf Switch test manifests to embedded C++ (#5036)
Inconsistent execution environments make using a path-as-define
difficult, so switch to an embedded file.

Also fixes the lldb launch so that passing tests run cleanly, and adds
TEST_TARGET to gdb (but without testing there). I'm dropping `sourceMap`
because it's not handled quite correctly (also not great to be trying to
pass source mappings in two different ways), and `env` didn't seem to be
working as intended either; maybe specifying `initCommands` causes other
things to not be evaluated. But the straight `initCommands` looks like
it's working. I used lldb to validate execution of these changes.

```
Running initCommands:
(lldb) command script import external/+llvm_project+llvm-project/llvm/utils/lldbDataFormatters.py
(lldb) settings set target.source-map "." "/usr/local/google/home/jperkins/dev/carbon-lang"
(lldb) settings set target.source-map "/proc/self/cwd" "/usr/local/google/home/jperkins/dev/carbon-lang"
(lldb) env TEST_TARGET=//toolchain/testing:file_test
(lldb) env TEST_TMPDIR=/tmp
Running tests with 128 thread(s)
.
Done!
Note: Google Test filter = ToolchainFileTest.toolchain/check/testdata/const/collapse.carbon
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from ToolchainFileTest
[ RUN      ] ToolchainFileTest.toolchain/check/testdata/const/collapse.carbon
[       OK ] ToolchainFileTest.toolchain/check/testdata/const/collapse.carbon (0 ms)
[----------] 1 test from ToolchainFileTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (1 ms total)
[  PASSED  ] 1 test.
Process 3869310 exited with status = 0 (0x00000000) 
```
2025-02-27 23:31:13 +00:00

86 lines
2.0 KiB
Python

# 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
load("@rules_cc//cc:defs.bzl", "cc_library")
load("rules.bzl", "file_test")
package(default_visibility = ["//visibility:public"])
cc_library(
name = "autoupdate",
testonly = 1,
srcs = ["autoupdate.cpp"],
hdrs = [
"autoupdate.h",
"line.h",
],
deps = [
"//common:check",
"//common:ostream",
"//common:raw_string_ostream",
"@abseil-cpp//absl/strings",
"@abseil-cpp//absl/strings:string_view",
"@llvm-project//llvm:Support",
"@re2",
],
)
cc_library(
name = "file_test_base",
testonly = 1,
srcs = [
"file_test_base.cpp",
"run_test.cpp",
"run_test.h",
"test_file.cpp",
"test_file.h",
],
hdrs = ["file_test_base.h"],
deps = [
":autoupdate",
":manifest",
"//common:check",
"//common:error",
"//common:exe_path",
"//common:init_llvm",
"//common:ostream",
"//common:raw_string_ostream",
"//testing/base:file_helpers",
"@abseil-cpp//absl/flags:flag",
"@abseil-cpp//absl/flags:parse",
"@abseil-cpp//absl/strings",
"@googletest//:gtest",
"@llvm-project//llvm:Support",
],
)
file_test(
name = "file_test_base_test",
size = "small",
srcs = ["file_test_base_test.cpp"],
tests = glob(["testdata/**"]),
deps = [
":file_test_base",
"//common:ostream",
"@googletest//:gtest",
"@llvm-project//llvm:Support",
],
)
# Note this is separate from the implementation; see the .h file.
cc_library(
name = "manifest",
testonly = 1,
hdrs = ["manifest.h"],
deps = ["@llvm-project//llvm:Support"],
)
# Used through `file_test` in rules.bzl.
cc_library(
name = "manifest_impl",
testonly = 1,
srcs = ["manifest.cpp"],
deps = [":manifest"],
)