Migrate more tests to use Starlark cc_toolchain configuration
Issue #5380
RELNOTES: None.
PiperOrigin-RevId: 239580767
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl b/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl
index c266971..4052bf9 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl
@@ -96,6 +96,7 @@
def_feature = "def",
strip_debug_symbols = "strip_debug_symbols",
disable_pbh = "disable_pbh",
+ optional_cc_flags_feature = "optional_cc_flags_feature",
)
_disable_pbh_feature = feature(name = _FEATURE_NAMES.disable_pbh)
@@ -364,6 +365,11 @@
],
)
+_extra_implies_module_maps_feature = feature(
+ name = "extra",
+ implies = ["module_maps"],
+)
+
_env_var_feature_configuration = [
_env_feature,
_static_env_feature,
@@ -485,6 +491,20 @@
requires = [feature_set(features = ["nonhost"])],
)
+_simple_thin_lto_feature = feature(
+ name = _FEATURE_NAMES.thin_lto,
+ flag_sets = [
+ flag_set(
+ actions = [ACTION_NAMES.cpp_compile],
+ flag_groups = [
+ flag_group(
+ flags = ["<thin_lto>"],
+ ),
+ ],
+ ),
+ ],
+)
+
_thin_lto_linkstatic_tests_use_shared_nonlto_backends_feature = feature(
name = _FEATURE_NAMES.thin_lto_linkstatic_tests_use_shared_nonlto_backends,
)
@@ -1019,6 +1039,59 @@
),
]
+_same_symbol_provided_configuration = [
+ feature(name = "a1", provides = ["a"]),
+ feature(name = "a2", provides = ["a"]),
+]
+
+_optional_cc_flags_feature = feature(
+ name = _FEATURE_NAMES.optional_cc_flags_feature,
+ flag_sets = [
+ flag_set(
+ actions = [ACTION_NAMES.cc_flags_make_variable],
+ flag_groups = [
+ flag_group(flags = ["optional_feature_flag"]),
+ ],
+ ),
+ ],
+)
+
+_layering_check_module_maps_header_modules_simple_features = [
+ feature(
+ name = _FEATURE_NAMES.module_maps,
+ flag_sets = [
+ flag_set(
+ actions = [ACTION_NAMES.cpp_compile],
+ flag_groups = [
+ flag_group(flags = ["<maps>"]),
+ ],
+ ),
+ ],
+ ),
+ feature(
+ name = _FEATURE_NAMES.layering_check,
+ flag_sets = [
+ flag_set(
+ actions = [ACTION_NAMES.cpp_compile],
+ flag_groups = [
+ flag_group(flags = ["<layering>"]),
+ ],
+ ),
+ ],
+ ),
+ feature(
+ name = _FEATURE_NAMES.header_modules,
+ flag_sets = [
+ flag_set(
+ actions = [ACTION_NAMES.cpp_compile],
+ flag_groups = [
+ flag_group(flags = ["<modules>"]),
+ ],
+ ),
+ ],
+ ),
+]
+
_feature_name_to_feature = {
_FEATURE_NAMES.no_legacy_features: _no_legacy_features_feature,
_FEATURE_NAMES.do_not_split_linking_cmdline: _do_not_split_linking_cmdline_feature,
@@ -1073,6 +1146,7 @@
_FEATURE_NAMES.def_feature: _def_feature,
_FEATURE_NAMES.strip_debug_symbols: _strip_debug_symbols_feature,
_FEATURE_NAMES.disable_pbh: _disable_pbh_feature,
+ _FEATURE_NAMES.optional_cc_flags_feature: _optional_cc_flags_feature,
"header_modules_feature_configuration": _header_modules_feature_configuration,
"env_var_feature_configuration": _env_var_feature_configuration,
"host_and_nonhost_configuration": _host_and_nonhost_configuration,
@@ -1082,6 +1156,42 @@
"simple_module_maps": _simple_module_maps_feature,
"simple_header_modules": _simple_header_modules_feature,
"portable_overrides_configuration": _portable_overrides_configuration,
+ "same_symbol_provided_configuration": _same_symbol_provided_configuration,
+ "simple_thin_lto": _simple_thin_lto_feature,
+ "extra_implies_module_maps": _extra_implies_module_maps_feature,
+ "layering_check_module_maps_header_modules_simple_features": _layering_check_module_maps_header_modules_simple_features,
+}
+
+_cc_flags_action_config_foo_bar_baz_config = action_config(
+ action_name = "cc-flags-make-variable",
+ flag_sets = [
+ flag_set(
+ flag_groups = [
+ flag_group(
+ flags = ["foo", "bar", "baz"],
+ ),
+ ],
+ ),
+ ],
+)
+
+_sysroot_in_action_config = action_config(
+ action_name = "cc-flags-make-variable",
+ flag_sets = [
+ flag_set(
+ flag_groups = [
+ flag_group(
+ expand_if_available = "sysroot",
+ flags = ["fc-start", "--sysroot=%{sysroot}-from-feature", "fc-end"],
+ ),
+ ],
+ ),
+ ],
+)
+
+_action_name_to_action = {
+ "cc_flags_action_config_foo_bar_baz": _cc_flags_action_config_foo_bar_baz_config,
+ "sysroot_in_action_config": _sysroot_in_action_config,
}
_tool_for_action_config = {
@@ -1186,9 +1296,13 @@
action_configs = []
for name in ctx.attr.action_configs:
- action_configs.append(
- _get_action_config(name, _tool_for_action_config.get(name, default = "DUMMY_TOOL")),
- )
+ custom_config = _action_name_to_action.get(name, default = None)
+ if custom_config != None:
+ action_configs.append(custom_config)
+ else:
+ action_configs.append(
+ _get_action_config(name, _tool_for_action_config.get(name, default = "DUMMY_TOOL")),
+ )
if should_add_multiple_tools_action_config:
action_configs.append(_multiple_tools_action_config)
diff --git a/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleCommandSubstitutionTest.java b/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleCommandSubstitutionTest.java
index bef6e1c..2f871ac 100644
--- a/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleCommandSubstitutionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRuleCommandSubstitutionTest.java
@@ -21,6 +21,7 @@
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.analysis.util.AnalysisMock;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
+import com.google.devtools.build.lib.packages.util.Crosstool.CcToolchainConfig;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.junit.Test;
@@ -481,19 +482,9 @@
public void testCcFlagsFromFeatureConfiguration() throws Exception {
AnalysisMock.get()
.ccSupport()
- .setupCrosstool(
+ .setupCcToolchainConfig(
mockToolsConfig,
- "action_config {",
- " action_name: 'cc-flags-make-variable'",
- " config_name: 'cc-flags-make-variable'",
- " flag_set {",
- " flag_group {",
- " flag: 'foo'",
- " flag: 'bar'",
- " flag: 'baz'",
- " }",
- " }",
- "}");
+ CcToolchainConfig.builder().withActionConfigs("cc_flags_action_config_foo_bar_baz"));
useConfiguration();
scratch.file(
"foo/BUILD",
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java b/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java
index 708bce4..6dc1b53 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java
@@ -52,6 +52,7 @@
private final String abiLibcVersion;
private final String targetLibc;
private final String builtinSysroot;
+ private final String ccTargetOs;
private final ImmutableList<String> features;
private final ImmutableList<String> actionConfigs;
private final ImmutableList<ImmutableList<String>> artifactNamePatterns;
@@ -69,6 +70,7 @@
String abiLibcVersion,
String targetLibc,
String builtinSysroot,
+ String ccTargetOs,
ImmutableList<String> features,
ImmutableList<String> actionConfigs,
ImmutableList<ImmutableList<String>> artifactNamePatterns,
@@ -90,6 +92,7 @@
this.builtinSysroot = builtinSysroot;
this.cxxBuiltinIncludeDirectories = cxxBuiltinIncludeDirectories;
this.makeVariables = makeVariables;
+ this.ccTargetOs = ccTargetOs;
}
public static Builder builder() {
@@ -105,6 +108,7 @@
private String builtinSysroot = "/usr/grte/v1";
private ImmutableList<String> cxxBuiltinIncludeDirectories = ImmutableList.of();
private ImmutableList<Pair<String, String>> makeVariables = ImmutableList.of();
+ private String ccTargetOs = "";
public Builder withFeatures(String... features) {
this.features = ImmutableList.copyOf(features);
@@ -137,6 +141,11 @@
return this;
}
+ public Builder withCcTargetOs(String ccTargetOs) {
+ this.ccTargetOs = ccTargetOs;
+ return this;
+ }
+
public Builder withCxxBuiltinIncludeDirectories(String... directories) {
this.cxxBuiltinIncludeDirectories = ImmutableList.copyOf(directories);
return this;
@@ -158,6 +167,7 @@
/* abiLibcVersion= */ "local",
/* targetLibc= */ "local",
/* builtinSysroot= */ builtinSysroot,
+ /* ccTargetOs= */ ccTargetOs,
features,
actionConfigs,
artifactNamePatterns,
@@ -194,6 +204,7 @@
/* abiLibcVersion= */ "mock-abi-libc-for-" + cpu,
/* targetLibc= */ "mock-libc-for-" + cpu,
/* builtinSysroot= */ "",
+ /* ccTargetOs= */ "",
/* features= */ ImmutableList.of(),
/* actionConfigs= */ ImmutableList.of(),
/* artifactNamePatterns= */ ImmutableList.of(),
@@ -254,6 +265,7 @@
" artifact_name_patterns = {%s},", Joiner.on(",\n ").join(patternsList)),
String.format(" tool_paths = {%s},", Joiner.on(",\n ").join(toolPathsList)),
" builtin_sysroot = '" + builtinSysroot + "',",
+ " cc_target_os = '" + ccTargetOs + "',",
String.format(
" cxx_builtin_include_directories = [%s],",
Joiner.on(",\n ").join(directoriesList)),
@@ -340,6 +352,7 @@
toolchain.getAbiLibcVersion(),
toolchain.getTargetLibc(),
toolchain.getBuiltinSysroot(),
+ toolchain.getCcTargetOs(),
toolchain.getFeatureList().stream()
.map(feature -> feature.getName())
.collect(ImmutableList.toImmutableList()),
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
index 35daea3..65fb24c 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java
@@ -965,10 +965,9 @@
reporter.removeHandler(failFastHandler);
getAnalysisMock()
.ccSupport()
- .setupCrosstool(
+ .setupCcToolchainConfig(
mockToolsConfig,
- "feature { name: 'a1' provides: 'a' }",
- "feature { name: 'a2' provides: 'a' }");
+ CcToolchainConfig.builder().withFeatures("same_symbol_provided_configuration"));
useConfiguration("--features=a1", "--features=a2");
scratch.file("x/BUILD", "cc_library(name = 'foo', srcs = ['a.cc'])");
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
index b95507c..a64c3e5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java
@@ -25,6 +25,7 @@
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.analysis.platform.ToolchainInfo;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
+import com.google.devtools.build.lib.packages.util.Crosstool.CcToolchainConfig;
import com.google.devtools.build.lib.packages.util.MockCcSupport;
import com.google.devtools.build.lib.packages.util.ResourceLoader;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
@@ -59,7 +60,10 @@
scratch.file("a/BUILD", "cc_toolchain_alias(name = 'b')");
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.SUPPORTS_INTERFACE_SHARED_LIBRARIES_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder()
+ .withFeatures(CppRuleClasses.SUPPORTS_INTERFACE_SHARED_LIBRARIES));
useConfiguration("--features=-supports_interface_shared_libraries");
invalidatePackages();
@@ -103,7 +107,9 @@
// Default configuration: disabled.
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.PER_OBJECT_DEBUG_INFO_CONFIGURATION);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder().withFeatures(CppRuleClasses.PER_OBJECT_DEBUG_INFO));
useConfiguration();
assertThat(getCppCompileOutputs()).doesNotContain("yolo");
@@ -165,7 +171,8 @@
assertThat(usePicForBinariesWithConfiguration("--cpu=k8", "-c", "opt")).isFalse();
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.SUPPORTS_PIC_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig, CcToolchainConfig.builder().withFeatures(CppRuleClasses.SUPPORTS_PIC));
invalidatePackages();
assertThat(usePicForBinariesWithConfiguration("--cpu=k8")).isTrue();
assertThat(usePicForBinariesWithConfiguration("--cpu=k8", "-c", "opt")).isFalse();
@@ -208,7 +215,9 @@
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.STATIC_LINK_CPP_RUNTIMES_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder().withFeatures(CppRuleClasses.STATIC_LINK_CPP_RUNTIMES));
useConfiguration();
@@ -219,6 +228,7 @@
public void testDynamicMode() throws Exception {
scratch.file(
"a/BUILD",
+ "load(':cc_toolchain_config.bzl', 'cc_toolchain_config')",
"filegroup(",
" name='empty')",
"filegroup(",
@@ -227,6 +237,7 @@
"cc_toolchain(",
" name = 'b',",
" toolchain_identifier = 'toolchain-identifier-k8',",
+ " toolchain_config = ':toolchain_config',",
" cpu = 'banana',",
" all_files = ':banana',",
" ar_files = ':empty',",
@@ -237,8 +248,9 @@
" strip_files = ':empty',",
" objcopy_files = ':empty',",
" dynamic_runtime_lib = ':empty',",
- " static_runtime_lib = ':empty')");
- scratch.file("a/CROSSTOOL", MockCcSupport.EMPTY_CROSSTOOL);
+ " static_runtime_lib = ':empty')",
+ "cc_toolchain_config(name='toolchain_config')");
+ scratch.file("a/cc_toolchain_config.bzl", MockCcSupport.EMPTY_CC_TOOLCHAIN);
// Check defaults.
useConfiguration();
@@ -318,7 +330,8 @@
scratch.overwriteFile("a/BUILD", "cc_toolchain_alias(name = 'b')");
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, "cxx_builtin_include_directory: '" + entry + "'");
+ .setupCcToolchainConfig(
+ mockToolsConfig, CcToolchainConfig.builder().withCxxBuiltinIncludeDirectories(entry));
useConfiguration();
invalidatePackages();
@@ -502,11 +515,13 @@
reporter.removeHandler(failFastHandler);
scratch.file(
"a/BUILD",
+ "load(':cc_toolchain_config.bzl', 'cc_toolchain_config')",
"filegroup(",
" name='empty')",
"cc_toolchain(",
" name = 'b',",
" toolchain_identifier = 'toolchain-identifier-k8',",
+ " toolchain_config = ':toolchain_config',",
" cpu = 'banana',",
" all_files = ':empty',",
" ar_files = ':empty',",
@@ -515,13 +530,14 @@
" dwp_files = ':empty',",
" linker_files = ':empty',",
" strip_files = ':empty',",
- " objcopy_files = ':empty')");
+ " objcopy_files = ':empty')",
+ "cc_toolchain_config(name = 'toolchain_config')");
scratch.file("fdo/my_profile.afdo", "");
scratch.file(
"fdo/BUILD",
"exports_files(['my_profile.afdo'])",
"fdo_profile(name = 'fdo', profile = ':my_profile.profdata')");
- scratch.file("a/CROSSTOOL", MockCcSupport.EMPTY_CROSSTOOL);
+ scratch.file("a/cc_toolchain_config.bzl", MockCcSupport.EMPTY_CC_TOOLCHAIN);
useConfiguration();
assertThat(getPrerequisites(getConfiguredTarget("//a:b"), ":zipper")).isEmpty();
@@ -563,7 +579,8 @@
getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig, "abi_version: 'orange'");
- useConfiguration("--incompatible_enable_cc_toolchain_resolution");
+ useConfiguration(
+ "--incompatible_enable_cc_toolchain_resolution", "--noincompatible_disable_crosstool_file");
ConfiguredTarget target = getConfiguredTarget("//a:b");
CcToolchainProvider toolchainProvider =
@@ -586,7 +603,7 @@
getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig, "abi_version: 'orange'");
- useConfiguration("--cpu=k8");
+ useConfiguration("--cpu=k8", "--noincompatible_disable_crosstool_file");
ConfiguredTarget target = getConfiguredTarget("//a:a");
CcToolchainProvider toolchainProvider =
@@ -602,8 +619,6 @@
loadCcToolchainConfigLib();
writeStarlarkRule();
- getAnalysisMock().ccSupport();
-
useConfiguration("--cpu=k8");
ConfiguredTarget target = getConfiguredTarget("//a:a");
@@ -705,8 +720,6 @@
public void testSupportsDynamicLinkerIsFalseWhenFeatureNotSet() throws Exception {
scratch.file("a/BUILD", "cc_toolchain_alias(name = 'b')");
- getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig);
-
ConfiguredTarget target = getConfiguredTarget("//a:b");
CcToolchainProvider toolchainProvider =
(CcToolchainProvider) target.get(ToolchainInfo.PROVIDER);
@@ -719,7 +732,6 @@
@Test
public void testStaticLinkCppRuntimesSetViaSupportsEmbeddedRuntimesUnset() throws Exception {
scratch.file("a/BUILD", "cc_toolchain_alias(name = 'b')");
- getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig);
useConfiguration();
ConfiguredTarget target = getConfiguredTarget("//a:b");
CcToolchainProvider toolchainProvider =
@@ -756,7 +768,9 @@
public void testSupportsEmbeddedRuntimesNoFeatureAtAll() throws Exception {
FeatureConfiguration featureConfiguration =
getFeatureConfigurationForStaticLinkCppRuntimes(
- "supports_embedded_runtimes: true", "--noincompatible_disable_legacy_crosstool_fields");
+ "supports_embedded_runtimes: true",
+ "--noincompatible_disable_legacy_crosstool_fields",
+ "--noincompatible_disable_crosstool_file");
assertThat(featureConfiguration.isEnabled(CppRuleClasses.STATIC_LINK_CPP_RUNTIMES)).isTrue();
}
@@ -768,7 +782,8 @@
getFeatureConfigurationForStaticLinkCppRuntimes(
"supports_embedded_runtimes: true",
"--features=static_link_cpp_runtimes",
- "--noincompatible_disable_legacy_crosstool_fields");
+ "--noincompatible_disable_legacy_crosstool_fields",
+ "--noincompatible_disable_crosstool_file");
assertThat(featureConfiguration.isEnabled(CppRuleClasses.STATIC_LINK_CPP_RUNTIMES)).isTrue();
}
@@ -780,7 +795,8 @@
getFeatureConfigurationForStaticLinkCppRuntimes(
"supports_embedded_runtimes: true",
"--features=-static_link_cpp_runtimes",
- "--noincompatible_disable_legacy_crosstool_fields");
+ "--noincompatible_disable_legacy_crosstool_fields",
+ "--noincompatible_disable_crosstool_file");
assertThat(featureConfiguration.isEnabled(CppRuleClasses.STATIC_LINK_CPP_RUNTIMES)).isFalse();
}
@@ -836,7 +852,7 @@
getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig, "default_grte_top: '//libc1'");
- useConfiguration("--cpu=k8");
+ useConfiguration("--cpu=k8", "--noincompatible_disable_crosstool_file");
ConfiguredTarget target = getConfiguredTarget("//a:a");
CcToolchainProvider ccToolchainProvider =
(CcToolchainProvider) target.get(CcToolchainProvider.PROVIDER);
@@ -885,7 +901,7 @@
scratch.file("libc3/header.h", "#define FOO 3");
getAnalysisMock().ccSupport().setupCrosstool(mockToolsConfig, "default_grte_top: '//libc1'");
- useConfiguration("--cpu=k8", "--grte_top=//libc3");
+ useConfiguration("--cpu=k8", "--grte_top=//libc3", "--noincompatible_disable_crosstool_file");
ConfiguredTarget target = getConfiguredTarget("//a:a");
CcToolchainProvider ccToolchainProvider =
(CcToolchainProvider) target.get(CcToolchainProvider.PROVIDER);
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java
index 46f3493..c20e0bb 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java
@@ -39,11 +39,11 @@
import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.analysis.util.ActionTester;
import com.google.devtools.build.lib.analysis.util.ActionTester.ActionCombinationFactory;
-import com.google.devtools.build.lib.analysis.util.AnalysisMock;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
+import com.google.devtools.build.lib.packages.util.Crosstool.CcToolchainConfig;
import com.google.devtools.build.lib.packages.util.MockCcSupport;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
import com.google.devtools.build.lib.rules.cpp.CcToolchainVariables.VariableValue;
@@ -239,7 +239,9 @@
public void testLegacyWholeArchiveHasNoEffectOnDynamicModeDynamicLibraries() throws Exception {
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.SUPPORTS_DYNAMIC_LINKER_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder().withFeatures(CppRuleClasses.SUPPORTS_DYNAMIC_LINKER));
scratch.file(
"x/BUILD",
"cc_binary(",
@@ -256,7 +258,9 @@
public void testLegacyWholeArchive() throws Exception {
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.SUPPORTS_DYNAMIC_LINKER_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder().withFeatures(CppRuleClasses.SUPPORTS_DYNAMIC_LINKER));
scratch.file(
"x/BUILD",
"cc_binary(",
@@ -331,11 +335,13 @@
}
getAnalysisMock()
.ccSupport()
- .setupCrosstool(
+ .setupCcToolchainConfig(
mockToolsConfig,
- MockCcSupport.SUPPORTS_PIC_FEATURE,
- MockCcSupport.SUPPORTS_DYNAMIC_LINKER_FEATURE,
- MockCcSupport.SUPPORTS_INTERFACE_SHARED_LIBRARIES_FEATURE);
+ CcToolchainConfig.builder()
+ .withFeatures(
+ CppRuleClasses.SUPPORTS_PIC,
+ CppRuleClasses.SUPPORTS_DYNAMIC_LINKER,
+ CppRuleClasses.SUPPORTS_INTERFACE_SHARED_LIBRARIES));
scratch.file(
"x/BUILD",
@@ -371,11 +377,13 @@
}
getAnalysisMock()
.ccSupport()
- .setupCrosstool(
+ .setupCcToolchainConfig(
mockToolsConfig,
- MockCcSupport.SUPPORTS_PIC_FEATURE,
- MockCcSupport.SUPPORTS_DYNAMIC_LINKER_FEATURE,
- MockCcSupport.SUPPORTS_INTERFACE_SHARED_LIBRARIES_FEATURE);
+ CcToolchainConfig.builder()
+ .withFeatures(
+ CppRuleClasses.SUPPORTS_PIC,
+ CppRuleClasses.SUPPORTS_DYNAMIC_LINKER,
+ CppRuleClasses.SUPPORTS_INTERFACE_SHARED_LIBRARIES));
scratch.file(
"x/BUILD",
"cc_test(name='a', srcs=['a.cc'], features=['dynamic_link_test_srcs'])",
@@ -419,10 +427,10 @@
}
getAnalysisMock()
.ccSupport()
- .setupCrosstool(
+ .setupCcToolchainConfig(
mockToolsConfig,
- MockCcSupport.SUPPORTS_DYNAMIC_LINKER_FEATURE,
- MockCcSupport.SUPPORTS_PIC_FEATURE);
+ CcToolchainConfig.builder()
+ .withFeatures(CppRuleClasses.SUPPORTS_DYNAMIC_LINKER, CppRuleClasses.SUPPORTS_PIC));
scratch.file(
"x/BUILD", "cc_binary(name = 'a', srcs = ['a.cc'], features = ['-static_link_test_srcs'])");
scratch.file("x/a.cc", "int main() {}");
@@ -756,12 +764,14 @@
@Test
public void testInterfaceOutputForDynamicLibrary() throws Exception {
- AnalysisMock.get()
+ getAnalysisMock()
.ccSupport()
- .setupCrosstool(
+ .setupCcToolchainConfig(
mockToolsConfig,
- MockCcSupport.SUPPORTS_INTERFACE_SHARED_LIBRARIES_FEATURE,
- MockCcSupport.SUPPORTS_DYNAMIC_LINKER_FEATURE);
+ CcToolchainConfig.builder()
+ .withFeatures(
+ CppRuleClasses.SUPPORTS_DYNAMIC_LINKER,
+ CppRuleClasses.SUPPORTS_INTERFACE_SHARED_LIBRARIES));
useConfiguration();
scratch.file("foo/BUILD", "cc_library(name = 'foo', srcs = ['foo.cc'])");
@@ -1096,7 +1106,9 @@
public void testSplitExecutableLinkCommandStatic() throws Exception {
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.DO_NOT_SPLIT_LINKING_CMDLINE_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder().withFeatures(CppRuleClasses.DO_NOT_SPLIT_LINKING_CMDLINE));
RuleContext ruleContext = createDummyRuleContext();
@@ -1120,7 +1132,9 @@
public void testSplitExecutableLinkCommandDynamicWithNoSplitting() throws Exception {
getAnalysisMock()
.ccSupport()
- .setupCrosstool(mockToolsConfig, MockCcSupport.DO_NOT_SPLIT_LINKING_CMDLINE_FEATURE);
+ .setupCcToolchainConfig(
+ mockToolsConfig,
+ CcToolchainConfig.builder().withFeatures(CppRuleClasses.DO_NOT_SPLIT_LINKING_CMDLINE));
RuleContext ruleContext = createDummyRuleContext();
FeatureConfiguration featureConfiguration = getMockFeatureConfiguration(ruleContext);