mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-27 22:02:33 +01:00
From the driver's perspective, `FindPreludeFiles` is closely tied to `compile`. This makes it difficult to refactor commands without affecting the test dependencies on `FindPreludeFiles`. `InstallPaths` seems like a decent home since it is responsible for the install structure. I'm switching to an `Error` return to allow callers to choose how to handle it (e.g., in file tests, we typically don't want the direct error stream).
138 lines
3.3 KiB
Python
138 lines
3.3 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
|
|
#
|
|
# Trivial, single-file testing libraries. More complex libraries should get
|
|
# their own directory.
|
|
|
|
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
# This does extra initialization on top of googletest's gtest_main in order to
|
|
# provide stack traces on unexpected exits, because we normally rely on LLVM
|
|
# code for that.
|
|
#
|
|
# This replaces "@googletest//:gtest_main";
|
|
# "@googletest//:gtest" should still be used directly.
|
|
cc_library(
|
|
name = "gtest_main",
|
|
testonly = 1,
|
|
srcs = ["gtest_main.cpp"],
|
|
deps = [
|
|
":global_exe_path",
|
|
"//common:init_llvm",
|
|
"@googletest//:gtest",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
# This does extra initialization on top of Google benchmark's main in order to
|
|
# provide stack traces and setup LLVM.
|
|
#
|
|
# This replaces `@google_benchmark//:benchmark_main`;
|
|
# `@google_benchmark//:benchmark` should still be used directly.
|
|
cc_library(
|
|
name = "benchmark_main",
|
|
testonly = 1,
|
|
srcs = ["benchmark_main.cpp"],
|
|
deps = [
|
|
":global_exe_path",
|
|
"//common:init_llvm",
|
|
"@abseil-cpp//absl/flags:parse",
|
|
"@google_benchmark//:benchmark",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "source_gen_lib",
|
|
testonly = 1,
|
|
srcs = ["source_gen.cpp"],
|
|
hdrs = ["source_gen.h"],
|
|
deps = [
|
|
"//common:check",
|
|
"//common:map",
|
|
"//common:set",
|
|
"//toolchain/lex:token_kind",
|
|
"@abseil-cpp//absl/random",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "source_gen_test",
|
|
size = "small",
|
|
srcs = ["source_gen_test.cpp"],
|
|
deps = [
|
|
":global_exe_path",
|
|
":gtest_main",
|
|
":source_gen_lib",
|
|
"//common:set",
|
|
"//toolchain/driver",
|
|
"//toolchain/install:install_paths_test_helpers",
|
|
"@googletest//:gtest",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_binary(
|
|
name = "source_gen",
|
|
testonly = 1,
|
|
srcs = ["source_gen_main.cpp"],
|
|
deps = [
|
|
":source_gen_lib",
|
|
"//common:bazel_working_dir",
|
|
"//common:command_line",
|
|
"//common:init_llvm",
|
|
"//common:ostream",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "test_raw_ostream",
|
|
testonly = 1,
|
|
hdrs = ["test_raw_ostream.h"],
|
|
deps = [
|
|
"//common:ostream",
|
|
"@googletest//:gtest",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "test_raw_ostream_test",
|
|
size = "small",
|
|
srcs = ["test_raw_ostream_test.cpp"],
|
|
deps = [
|
|
":test_raw_ostream",
|
|
"//testing/base:gtest_main",
|
|
"@googletest//:gtest",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "global_exe_path",
|
|
testonly = 1,
|
|
srcs = ["global_exe_path.cpp"],
|
|
hdrs = ["global_exe_path.h"],
|
|
deps = [
|
|
"//common:check",
|
|
"//common:exe_path",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "global_exe_path_test",
|
|
size = "small",
|
|
srcs = ["global_exe_path_test.cpp"],
|
|
deps = [
|
|
":global_exe_path",
|
|
":gtest_main",
|
|
"@googletest//:gtest",
|
|
"@llvm-project//llvm:Support",
|
|
],
|
|
)
|