Create an experimental analysis_test parameter in rule
This will control whether a given rule should be treated as an "analysis test" rule. The parameter and its functionality will only be available via --experimental_analysis_testing_improvements until it is complete.
In this change, analysis_test = True enforces the restriction that the rule implementation function for that rule may not register actions.
See https://docs.google.com/document/d/17P2sgC6VPmcA7CcqC2p4cfU2Kaj6dwKiQfIXhtXTzl4/ for
details.
Progress toward #6237
RELNOTES: None.
PiperOrigin-RevId: 217562194
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
index 1c3d82b..29a7cb2 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
@@ -101,12 +101,25 @@
}
@Override
- public BaseFunction rule(BaseFunction implementation, Boolean test, Object attrs,
- Object implicitOutputs, Boolean executable, Boolean outputToGenfiles,
- SkylarkList<?> fragments, SkylarkList<?> hostFragments, Boolean skylarkTestable,
- SkylarkList<?> toolchains, String doc, SkylarkList<?> providesArg,
- Boolean executionPlatformConstraintsAllowed, SkylarkList<?> execCompatibleWith,
- FuncallExpression ast, Environment funcallEnv) throws EvalException {
+ public BaseFunction rule(
+ BaseFunction implementation,
+ Boolean test,
+ Object attrs,
+ Object implicitOutputs,
+ Boolean executable,
+ Boolean outputToGenfiles,
+ SkylarkList<?> fragments,
+ SkylarkList<?> hostFragments,
+ Boolean skylarkTestable,
+ SkylarkList<?> toolchains,
+ String doc,
+ SkylarkList<?> providesArg,
+ Boolean executionPlatformConstraintsAllowed,
+ SkylarkList<?> execCompatibleWith,
+ Object analysisTest,
+ FuncallExpression ast,
+ Environment funcallEnv)
+ throws EvalException {
List<AttributeInfo> attrInfos;
ImmutableMap.Builder<String, FakeDescriptor> attrsMapBuilder = ImmutableMap.builder();
if (attrs != null && attrs != Runtime.NONE) {
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java
index 8ca3718..c673f2b 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java
@@ -61,21 +61,36 @@
}
@Override
- public FileApi runIjar(SkylarkActionFactoryApi actions, FileApi jar, Object targetLabel,
- TransitiveInfoCollectionApi javaToolchain) throws EvalException {
+ public FileApi runIjar(
+ SkylarkActionFactoryApi actions,
+ FileApi jar,
+ Object targetLabel,
+ TransitiveInfoCollectionApi javaToolchain,
+ Location location)
+ throws EvalException {
return null;
}
@Override
- public FileApi stampJar(SkylarkActionFactoryApi actions, FileApi jar, Label targetLabel,
- TransitiveInfoCollectionApi javaToolchain) throws EvalException {
+ public FileApi stampJar(
+ SkylarkActionFactoryApi actions,
+ FileApi jar,
+ Label targetLabel,
+ TransitiveInfoCollectionApi javaToolchain,
+ Location location)
+ throws EvalException {
return null;
}
@Override
- public FileApi packSources(SkylarkActionFactoryApi actions, FileApi outputJar,
- SkylarkList<FileApi> sourceFiles, SkylarkList<FileApi> sourceJars,
- TransitiveInfoCollectionApi javaToolchain, TransitiveInfoCollectionApi hostJavabase)
+ public FileApi packSources(
+ SkylarkActionFactoryApi actions,
+ FileApi outputJar,
+ SkylarkList<FileApi> sourceFiles,
+ SkylarkList<FileApi> sourceJars,
+ TransitiveInfoCollectionApi javaToolchain,
+ TransitiveInfoCollectionApi hostJavabase,
+ Location location)
throws EvalException {
return null;
}