Move analysis testing improvements out of "experimental".
* Removes --experimental_analysis_testing_improvements flag, moving functionality previously guarded under this flag to be usable without the flag.
* Renames --experimental_allow_analysis_failures to --allow_analysis_failures
This change is a "silent launch" of these features. Documentation on these features soon to follow: after release, bazel-skylib will be updated to incorporate a number of these improvements, and announcements with thorough documentation will be made then.
Progress toward #6237
RELNOTES: None.
PiperOrigin-RevId: 222106622
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index 530122c..703f96e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -791,17 +791,16 @@
)
public boolean isHost;
- // TODO(cparsons): Make this flag non-experimental when it is fully implemented.
@Option(
- name = "experimental_allow_analysis_failures",
+ name = "allow_analysis_failures",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.TESTING,
- effectTags = { OptionEffectTag.LOADING_AND_ANALYSIS },
- metadataTags = { OptionMetadataTag.EXPERIMENTAL },
- help = "If true, an analysis failure of a rule target results in the target's propagation "
- + "of an instance of AnalysisFailureInfo containing the error description, instead of "
- + "resulting in a build failure."
- )
+ effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ metadataTags = {OptionMetadataTag.EXPERIMENTAL},
+ help =
+ "If true, an analysis failure of a rule target results in the target's propagation "
+ + "of an instance of AnalysisFailureInfo containing the error description, instead "
+ + "of resulting in a build failure.")
public boolean allowAnalysisFailures;
@Option(
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
index 89cb742..5382551 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -279,14 +279,6 @@
throws EvalException, ConversionException {
SkylarkUtils.checkLoadingOrWorkspacePhase(funcallEnv, "rule", ast.getLocation());
- if (analysisTest != Runtime.UNBOUND
- && !funcallEnv.getSemantics().experimentalAnalysisTestingImprovements()) {
- throw new EvalException(
- ast.getLocation(),
- "analysis_test parameter is experimental and not available for "
- + "general use. It is subject to change at any time. It may be enabled by specifying "
- + "--experimental_analysis_testing_improvements");
- }
// analysis_test=true implies test=true.
test |= Boolean.TRUE.equals(analysisTest);
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
index 8cf2e85..116b276 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
@@ -63,15 +63,6 @@
// <== Add new options here in alphabetic order ==>
@Option(
- name = "experimental_analysis_testing_improvements",
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.SKYLARK_SEMANTICS,
- effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.LOADING_AND_ANALYSIS},
- metadataTags = {OptionMetadataTag.EXPERIMENTAL},
- help = "If true, enables pieces of experimental Starlark API for analysis-phase testing.")
- public boolean experimentalAnalysisTestingImprovements;
-
- @Option(
name = "experimental_build_setting_api",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
@@ -542,7 +533,6 @@
public SkylarkSemantics toSkylarkSemantics() {
return SkylarkSemantics.builder()
// <== Add new options here in alphabetic order ==>
- .experimentalAnalysisTestingImprovements(experimentalAnalysisTestingImprovements)
.experimentalBuildSettingApi(experimentalBuildSettingApi)
.experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
.experimentalEnableAndroidMigrationApis(experimentalEnableAndroidMigrationApis)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java
index 8379f1f..eb9f131 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigGlobalLibrary.java
@@ -63,14 +63,6 @@
public ConfigurationTransitionApi analysisTestTransition(
SkylarkDict<String, String> changedSettings, Location location, SkylarkSemantics semantics)
throws EvalException {
- if (!semantics.experimentalAnalysisTestingImprovements()) {
- throw new EvalException(
- location,
- "analysis_test_transition() is experimental "
- + "and disabled by default. This API is in development and subject to change at "
- + "any time. Use --experimental_analysis_testing_improvements to use this "
- + "experimental API.");
- }
Map<String, Object> changedSettingsMap =
changedSettings.getContents(String.class, Object.class, "changed_settings dict");
validateBuildSettingKeys(changedSettingsMap.keySet(), "output", location);
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java
index 527cf82..c924687 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureApi.java
@@ -18,7 +18,6 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
/**
* Encapsulates information about an analysis-phase error which would have occurred during a build.
@@ -37,20 +36,17 @@
@SkylarkCallable(
name = "label",
- doc = "The label of the target that exhibited an analysis-phase error. This is the label "
- + "of the target responsible for construction of this object.",
+ doc =
+ "The label of the target that exhibited an analysis-phase error. This is the label "
+ + "of the target responsible for construction of this object.",
documented = false,
- structField = true,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
- )
+ structField = true)
public Label getLabel();
@SkylarkCallable(
name = "message",
doc = "A string representation of the analysis-phase error which occurred.",
documented = false,
- structField = true,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
- )
+ structField = true)
public String getMessage();
}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java
index 2b1ea62..4cc8c8e 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisFailureInfoApi.java
@@ -19,7 +19,6 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
/**
* Encapsulates information about an analysis-phase error which would have occurred during a build.
@@ -53,12 +52,11 @@
@SkylarkCallable(
name = "causes",
- doc = "A depset of <code>AnalysisFailure</code> objects describing the failures that "
- + "occurred in this target or its dependencies.",
+ doc =
+ "A depset of <code>AnalysisFailure</code> objects describing the failures that "
+ + "occurred in this target or its dependencies.",
documented = false,
- structField = true,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
- )
+ structField = true)
public NestedSet<AnalysisFailureApiT> getCauses();
/** Provider class for {@link AnalysisFailureInfoApi} objects. */
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java
index 344ac96..33702b0 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/AnalysisTestResultInfoApi.java
@@ -20,7 +20,6 @@
import com.google.devtools.build.lib.skylarkinterface.SkylarkConstructor;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
/**
* Encapsulates information about an analysis-phase error which would have occurred during a build.
@@ -38,21 +37,18 @@
@SkylarkCallable(
name = "success",
- doc = "If true, then the analysis-phase test represented by this target passed. If "
- + "false, the test failed.",
+ doc =
+ "If true, then the analysis-phase test represented by this target passed. If "
+ + "false, the test failed.",
documented = false,
- structField = true,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
- )
+ structField = true)
public Boolean getSuccess();
@SkylarkCallable(
name = "message",
doc = "A descriptive message containing information about the test and its success/failure.",
documented = false,
- structField = true,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS
- )
+ structField = true)
public String getMessage();
/** Provider class for {@link AnalysisTestResultInfoApi} objects. */
@@ -63,22 +59,25 @@
name = "AnalysisTestResultInfo",
doc = "The <code>AnalysisTestResultInfo</code> constructor.",
parameters = {
- @Param(
- name = "success",
- type = Boolean.class,
- named = true,
- doc = "If true, then the analysis-phase test represented by this target should "
- + "pass. If false, the test should fail."),
- @Param(
- name = "message",
- type = String.class,
- named = true,
- doc = "A descriptive message containing information about the test and its "
- + "success/failure.")},
- selfCall = true,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS)
- @SkylarkConstructor(objectType = AnalysisTestResultInfoApi.class,
+ @Param(
+ name = "success",
+ type = Boolean.class,
+ named = true,
+ doc =
+ "If true, then the analysis-phase test represented by this target should "
+ + "pass. If false, the test should fail."),
+ @Param(
+ name = "message",
+ type = String.class,
+ named = true,
+ doc =
+ "A descriptive message containing information about the test and its "
+ + "success/failure.")
+ },
+ selfCall = true)
+ @SkylarkConstructor(
+ objectType = AnalysisTestResultInfoApi.class,
receiverNameForDoc = "AnalysisTestResultInfo")
public AnalysisTestResultInfoApi testResultInfo(Boolean success, String message);
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
index f8d5a4b..745df17 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/test/TestingBootstrap.java
@@ -18,8 +18,6 @@
import com.google.devtools.build.lib.skylarkbuildapi.Bootstrap;
import com.google.devtools.build.lib.skylarkbuildapi.test.AnalysisFailureInfoApi.AnalysisFailureInfoProviderApi;
import com.google.devtools.build.lib.skylarkbuildapi.test.AnalysisTestResultInfoApi.AnalysisTestResultInfoProviderApi;
-import com.google.devtools.build.lib.syntax.FlagGuardedValue;
-import com.google.devtools.build.lib.syntax.SkylarkSemantics.FlagIdentifier;
/**
* {@link Bootstrap} for skylark objects related to testing.
@@ -41,13 +39,7 @@
@Override
public void addBindingsToBuilder(ImmutableMap.Builder<String, Object> builder) {
builder.put("testing", testingModule);
- builder.put("AnalysisFailureInfo",
- FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
- FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
- analysisFailureInfoProvider));
- builder.put("AnalysisTestResultInfo",
- FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
- FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
- testResultInfoProvider));
+ builder.put("AnalysisFailureInfo", analysisFailureInfoProvider);
+ builder.put("AnalysisTestResultInfo", testResultInfoProvider);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
index bb6222f..d53534c 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
@@ -39,8 +39,6 @@
* be the exact name of the flag transformed to upper case (for error representation).
*/
public enum FlagIdentifier {
- EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS(
- SkylarkSemantics::experimentalAnalysisTestingImprovements),
EXPERIMENTAL_ENABLE_ANDROID_MIGRATION_APIS(
SkylarkSemantics::experimentalEnableAndroidMigrationApis),
EXPERIMENTAL_BUILD_SETTING_API(SkylarkSemantics::experimentalBuildSettingApi),
@@ -114,8 +112,6 @@
AutoValue_SkylarkSemantics.class;
// <== Add new options here in alphabetic order ==>
- public abstract boolean experimentalAnalysisTestingImprovements();
-
public abstract boolean experimentalBuildSettingApi();
public abstract List<String> experimentalCcSkylarkApiEnabledPackages();
@@ -203,7 +199,6 @@
public static final SkylarkSemantics DEFAULT_SEMANTICS =
builder()
// <== Add new options here in alphabetic order ==>
- .experimentalAnalysisTestingImprovements(false)
.experimentalBuildSettingApi(false)
.experimentalCcSkylarkApiEnabledPackages(ImmutableList.of())
.experimentalEnableAndroidMigrationApis(false)
@@ -247,8 +242,6 @@
public abstract static class Builder {
// <== Add new options here in alphabetic order ==>
- public abstract Builder experimentalAnalysisTestingImprovements(boolean value);
-
public abstract Builder experimentalBuildSettingApi(boolean value);
public abstract Builder experimentalCcSkylarkApiEnabledPackages(List<String> value);
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java b/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java
index 3507a90..18f6919 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/FunctionSplitTransitionProviderTest.java
@@ -627,9 +627,6 @@
@Test
public void testInvalidNativeOptionOutput_analysisTest() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
- writeWhitelistFile();
-
scratch.file(
"test/skylark/my_rule.bzl",
"my_transition = analysis_test_transition(",
@@ -666,9 +663,6 @@
@Test
public void testInvalidOutputKey_analysisTest() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
- writeWhitelistFile();
-
scratch.file(
"test/skylark/my_rule.bzl",
"my_transition = analysis_test_transition(",
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
index 9f54553..c4928a7 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -118,7 +118,6 @@
private static SkylarkSemanticsOptions buildRandomOptions(Random rand) throws Exception {
return parseOptions(
// <== Add new options here in alphabetic order ==>
- "--experimental_analysis_testing_improvements=" + rand.nextBoolean(),
"--experimental_build_setting_api=" + rand.nextBoolean(),
"--experimental_cc_skylark_api_enabled_packages="
+ rand.nextDouble()
@@ -167,7 +166,6 @@
private static SkylarkSemantics buildRandomSemantics(Random rand) {
return SkylarkSemantics.builder()
// <== Add new options here in alphabetic order ==>
- .experimentalAnalysisTestingImprovements(rand.nextBoolean())
.experimentalBuildSettingApi(rand.nextBoolean())
.experimentalCcSkylarkApiEnabledPackages(
ImmutableList.of(String.valueOf(rand.nextDouble()), String.valueOf(rand.nextDouble())))
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
index b332f98..18d9593 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkIntegrationTest.java
@@ -2056,8 +2056,6 @@
@Test
public void testAnalysisFailureInfo() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
scratch.file(
"test/extension.bzl",
"def custom_rule_impl(ctx):",
@@ -2072,7 +2070,7 @@
"",
"custom_rule(name = 'r')");
- useConfiguration("--experimental_allow_analysis_failures=true");
+ useConfiguration("--allow_analysis_failures=true");
ConfiguredTarget target = getConfiguredTarget("//test:r");
AnalysisFailureInfo info =
@@ -2084,8 +2082,6 @@
@Test
public void testTestResultInfo() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
scratch.file(
"test/extension.bzl",
"def custom_rule_impl(ctx):",
@@ -2107,53 +2103,7 @@
}
@Test
- public void testTestResultInfoWithoutFlag() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=false");
-
- scratch.file(
- "test/extension.bzl",
- "def custom_rule_impl(ctx):",
- " return [AnalysisTestResultInfo(success = True, message = 'message contents')]",
- "",
- "custom_rule = rule(implementation = custom_rule_impl)");
-
- scratch.file(
- "test/BUILD",
- "load('//test:extension.bzl', 'custom_rule')",
- "",
- "custom_rule(name = 'r')");
-
- reporter.removeHandler(failFastHandler);
- getConfiguredTarget("//test:r");
- assertContainsEvent(
- "AnalysisTestResultInfo is experimental and thus unavailable with the current flags. "
- + "It may be enabled by setting --experimental_analysis_testing_improvements");
- }
-
- @Test
- public void testAnalysisTestRuleWithoutFlag() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=false");
-
- scratch.file(
- "test/extension.bzl",
- "def custom_rule_impl(ctx):",
- " return []",
- "",
- "custom_test = rule(implementation = custom_rule_impl, analysis_test = True)");
-
- scratch.file(
- "test/BUILD", "load('//test:extension.bzl', 'custom_test')", "", "custom_test(name = 'r')");
-
- reporter.removeHandler(failFastHandler);
- getConfiguredTarget("//test:r");
- assertContainsEvent(
- "analysis_test parameter is experimental and not available for general use");
- }
-
- @Test
public void testAnalysisTestRuleWithActionRegistration() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
scratch.file(
"test/extension.bzl",
"def custom_rule_impl(ctx):",
@@ -2174,8 +2124,6 @@
@Test
public void testAnalysisTestRuleWithFlag() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
scratch.file(
"test/extension.bzl",
"def custom_rule_impl(ctx):",
@@ -2197,7 +2145,6 @@
@Test
public void testAnalysisTestTransitionOnAnalysisTest() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
useConfiguration("--experimental_strict_java_deps=OFF");
scratch.file(
@@ -2249,8 +2196,6 @@
@Test
public void testAnalysisTestTransitionOnNonAnalysisTest() throws Exception {
- setSkylarkSemanticsOptions("--experimental_analysis_testing_improvements=true");
-
scratch.file(
"test/extension.bzl",
"def custom_rule_impl(ctx):",
@@ -2384,10 +2329,6 @@
@Test
public void testAnalysisTestCannotDependOnAnalysisTest() throws Exception {
- setSkylarkSemanticsOptions(
- "--experimental_analysis_testing_improvements=true",
- "--experimental_starlark_config_transitions=true");
-
scratch.file(
"test/extension.bzl",
"",
@@ -2451,9 +2392,6 @@
}
private void setupAnalysisTestDepsLimitTest(int limit, int dependencyChainSize) throws Exception {
- setSkylarkSemanticsOptions(
- "--experimental_analysis_testing_improvements=true",
- "--experimental_starlark_config_transitions=true");
useConfiguration("--analysis_testing_deps_limit=" + limit);
scratch.file(
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index 438c9f4..ad30f46 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -2262,7 +2262,7 @@
AnalysisFailureInfo info = AnalysisFailureInfo.forAnalysisFailures(ImmutableList.of(cause));
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest()
.update("val", info)
.setUp(
"causes = val.causes",
@@ -2270,15 +2270,6 @@
"message = causes.to_list()[0].message")
.testLookup("label", Label.create("test", "test"))
.testLookup("message", "ErrorMessage");
-
- new SkylarkTest()
- .update("val", info)
- .testIfErrorContains("'AnalysisFailureInfo' has no field 'causes'", "val.causes");
-
- new SkylarkTest()
- .update("val", cause)
- .testIfErrorContains("'AnalysisFailure' has no field 'message'", "val.message")
- .testIfErrorContains("'AnalysisFailure' has no field 'label'", "val.label");
}
@Test
@@ -2286,36 +2277,25 @@
// This test uses an arbitrary experimental flag to verify this functionality. If this
// experimental flag were to go away, this test may be updated to use any experimental flag.
// The flag itself is unimportant to the test.
- FlagGuardedValue val = FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
- FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
- "foo");
- String errorMessage = "GlobalSymbol is experimental and thus unavailable with the current "
- + "flags. It may be enabled by setting --experimental_analysis_testing_improvements";
+ FlagGuardedValue val =
+ FlagGuardedValue.onlyWhenExperimentalFlagIsTrue(
+ FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API, "foo");
+ String errorMessage =
+ "GlobalSymbol is experimental and thus unavailable with the current "
+ + "flags. It may be enabled by setting --experimental_build_setting_api";
- new SkylarkTest(
- ImmutableMap.of("GlobalSymbol", val),
- "--experimental_analysis_testing_improvements=true")
+ new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=true")
.setUp("var = GlobalSymbol")
.testLookup("var", "foo");
- new SkylarkTest(
- ImmutableMap.of("GlobalSymbol", val),
- "--experimental_analysis_testing_improvements=false")
- .testIfErrorContains(errorMessage,
- "var = GlobalSymbol");
+ new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=false")
+ .testIfErrorContains(errorMessage, "var = GlobalSymbol");
- new SkylarkTest(
- ImmutableMap.of("GlobalSymbol", val),
- "--experimental_analysis_testing_improvements=false")
- .testIfErrorContains(errorMessage,
- "def my_function():",
- " var = GlobalSymbol");
+ new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=false")
+ .testIfErrorContains(errorMessage, "def my_function():", " var = GlobalSymbol");
- new SkylarkTest(
- ImmutableMap.of("GlobalSymbol", val),
- "--experimental_analysis_testing_improvements=false")
- .setUp("GlobalSymbol = 'other'",
- "var = GlobalSymbol")
+ new SkylarkTest(ImmutableMap.of("GlobalSymbol", val), "--experimental_build_setting_api=false")
+ .setUp("GlobalSymbol = 'other'", "var = GlobalSymbol")
.testLookup("var", "other");
}
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java b/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java
index 9839d9a..96e9bf7 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/StarlarkFlagGuardingTest.java
@@ -50,7 +50,7 @@
positional = true,
named = false,
type = Boolean.class,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+ enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
valueWhenDisabled = "False"),
@Param(name = "c", positional = true, named = false, type = Integer.class),
},
@@ -69,7 +69,7 @@
positional = false,
named = true,
type = Boolean.class,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+ enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
valueWhenDisabled = "False"),
@Param(name = "c", positional = false, named = true, type = Integer.class),
},
@@ -88,14 +88,14 @@
positional = true,
named = false,
type = Boolean.class,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+ enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
valueWhenDisabled = "False"),
@Param(
name = "c",
positional = false,
named = true,
type = Integer.class,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+ enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
valueWhenDisabled = "3"),
@Param(name = "d", positional = false, named = true, type = Boolean.class),
},
@@ -121,7 +121,7 @@
positional = false,
named = true,
type = Integer.class,
- enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_ANALYSIS_TESTING_IMPROVEMENTS,
+ enableOnlyWithFlag = FlagIdentifier.EXPERIMENTAL_BUILD_SETTING_API,
valueWhenDisabled = "3"),
},
useEnvironment = true)
@@ -132,23 +132,23 @@
@Test
public void testPositionalsOnlyGuardedMethod() throws Exception {
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest("--experimental_build_setting_api=true")
.update("mock", new Mock())
.testEval(
"mock.positionals_only_method(1, True, 3)", "'positionals_only_method(1, true, 3)'");
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest("--experimental_build_setting_api=true")
.update("mock", new Mock())
.testIfErrorContains(
"expected value of type 'bool' for parameter 'b', "
+ "in method call positionals_only_method(int, int) of 'Mock'",
"mock.positionals_only_method(1, 3)");
- new SkylarkTest("--experimental_analysis_testing_improvements=false")
+ new SkylarkTest("--experimental_build_setting_api=false")
.update("mock", new Mock())
.testEval("mock.positionals_only_method(1, 3)", "'positionals_only_method(1, false, 3)'");
- new SkylarkTest("--experimental_analysis_testing_improvements=false")
+ new SkylarkTest("--experimental_build_setting_api=false")
.update("mock", new Mock())
.testIfErrorContains(
"expected value of type 'int' for parameter 'c', "
@@ -158,52 +158,52 @@
@Test
public void testKeywordOnlyGuardedMethod() throws Exception {
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest("--experimental_build_setting_api=true")
.update("mock", new Mock())
.testEval(
"mock.keywords_only_method(a=1, b=True, c=3)", "'keywords_only_method(1, true, 3)'");
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest("--experimental_build_setting_api=true")
.update("mock", new Mock())
.testIfErrorContains(
"parameter 'b' has no default value, in method call "
+ "keywords_only_method(int a, int c) of 'Mock'",
"mock.keywords_only_method(a=1, c=3)");
- new SkylarkTest("--experimental_analysis_testing_improvements=false")
+ new SkylarkTest("--experimental_build_setting_api=false")
.update("mock", new Mock())
.testEval("mock.keywords_only_method(a=1, c=3)", "'keywords_only_method(1, false, 3)'");
- new SkylarkTest("--experimental_analysis_testing_improvements=false")
+ new SkylarkTest("--experimental_build_setting_api=false")
.update("mock", new Mock())
.testIfErrorContains(
"parameter 'b' is experimental and thus unavailable with the current "
+ "flags. It may be enabled by setting "
- + "--experimental_analysis_testing_improvements",
+ + "--experimental_build_setting_api",
"mock.keywords_only_method(a=1, b=True, c=3)");
}
@Test
public void testMixedParamsMethod() throws Exception {
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest("--experimental_build_setting_api=true")
.update("mock", new Mock())
.testEval(
"mock.mixed_params_method(1, True, c=3, d=True)",
"'mixed_params_method(1, true, 3, true)'");
- new SkylarkTest("--experimental_analysis_testing_improvements=true")
+ new SkylarkTest("--experimental_build_setting_api=true")
.update("mock", new Mock())
.testIfErrorContains(
"parameter 'b' has no default value, in method call "
+ "mixed_params_method(int, int c) of 'Mock'",
"mock.mixed_params_method(1, c=3)");
- new SkylarkTest("--experimental_analysis_testing_improvements=false")
+ new SkylarkTest("--experimental_build_setting_api=false")
.update("mock", new Mock())
.testEval(
"mock.mixed_params_method(1, d=True)", "'mixed_params_method(1, false, 3, true)'");
- new SkylarkTest("--experimental_analysis_testing_improvements=false")
+ new SkylarkTest("--experimental_build_setting_api=false")
.update("mock", new Mock())
.testIfErrorContains(
"expected no more than 1 positional arguments, but got 2, "
@@ -213,32 +213,24 @@
@Test
public void testKeywordsMultipleFlags() throws Exception {
- new SkylarkTest(
- "--experimental_analysis_testing_improvements=true",
- "--incompatible_no_attr_license=false")
+ new SkylarkTest("--experimental_build_setting_api=true", "--incompatible_no_attr_license=false")
.update("mock", new Mock())
.testEval(
"mock.keywords_multiple_flags(a=42, b=True, c=0)",
"'keywords_multiple_flags(42, true, 0)'");
- new SkylarkTest(
- "--experimental_analysis_testing_improvements=true",
- "--incompatible_no_attr_license=false")
+ new SkylarkTest("--experimental_build_setting_api=true", "--incompatible_no_attr_license=false")
.update("mock", new Mock())
.testIfErrorContains(
"parameter 'b' has no default value, in method call "
+ "keywords_multiple_flags(int a) of 'Mock'",
"mock.keywords_multiple_flags(a=42)");
- new SkylarkTest(
- "--experimental_analysis_testing_improvements=false",
- "--incompatible_no_attr_license=true")
+ new SkylarkTest("--experimental_build_setting_api=false", "--incompatible_no_attr_license=true")
.update("mock", new Mock())
.testEval("mock.keywords_multiple_flags(a=42)", "'keywords_multiple_flags(42, false, 3)'");
- new SkylarkTest(
- "--experimental_analysis_testing_improvements=false",
- "--incompatible_no_attr_license=true")
+ new SkylarkTest("--experimental_build_setting_api=false", "--incompatible_no_attr_license=true")
.update("mock", new Mock())
.testIfErrorContains(
"parameter 'b' is deprecated and will be removed soon. It may be "
diff --git a/src/test/shell/integration/analysis_test_test.sh b/src/test/shell/integration/analysis_test_test.sh
index 2b4ae7bb..4545749 100755
--- a/src/test/shell/integration/analysis_test_test.sh
+++ b/src/test/shell/integration/analysis_test_test.sh
@@ -76,8 +76,7 @@
my_rule_test(name = "r")
EOF
- bazel test package:r --experimental_analysis_testing_improvements \
- >& "$TEST_log" || fail "Unexpected failure"
+ bazel test package:r >& "$TEST_log" || fail "Unexpected failure"
expect_log "PASSED"
@@ -105,8 +104,7 @@
my_rule_test(name = "r")
EOF
- ! bazel test package:r --experimental_analysis_testing_improvements \
- >& "$TEST_log" || fail "Unexpected success"
+ ! bazel test package:r >& "$TEST_log" || fail "Unexpected success"
expect_log "FAILED"
@@ -131,7 +129,7 @@
test_transition = analysis_test_transition(
settings = {
- "//command_line_option:experimental_allow_analysis_failures" : "True" }
+ "//command_line_option:allow_analysis_failures" : "True" }
)
def _rule_impl(ctx):
@@ -159,8 +157,8 @@
my_rule_test(name = "test_target", target_under_test = ":target_under_test")
EOF
- bazel test package:test_target --experimental_analysis_testing_improvements \
- >& "$TEST_log" || fail "Expected test to succeed"
+ bazel test package:test_target >& "$TEST_log" \
+ || fail "Expected test to succeed"
expect_log "PASSED"