diff options
author | 2018-04-13 06:09:30 -0700 | |
---|---|---|
committer | 2018-04-13 06:10:29 -0700 | |
commit | 707acfeecf60ef622b745741e76bf47717b1b480 (patch) | |
tree | 5cab49a70b5e3380417c4817174d95d5fb0512b0 /src/test/java/com | |
parent | 8738794b0497e240c9b41faefe46a7e790fc0ab7 (diff) |
Introduce `--incompatible_disallow_filetype` to remove the `FileType` function.
RELNOTES:
`FileType` is deprecated and will be removed soon.
Try the `--incompatible_disallow_filetype` flag to ensure your code
is forward-compatible.
PiperOrigin-RevId: 192758063
Diffstat (limited to 'src/test/java/com')
4 files changed, 25 insertions, 4 deletions
diff --git a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java index 4c1eb448ec..234526b57c 100644 --- a/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java +++ b/src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java @@ -34,6 +34,7 @@ import com.google.devtools.build.lib.syntax.SkylarkDict; import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkList.MutableList; import com.google.devtools.build.lib.syntax.SkylarkList.Tuple; +import com.google.devtools.build.lib.syntax.SkylarkSemantics; import com.google.devtools.build.lib.syntax.util.EvaluationTestCase; import java.lang.reflect.Method; import java.util.ArrayList; @@ -66,7 +67,7 @@ public class SkylarkDocumentationTest extends SkylarkTestCase { } @Override - protected EvaluationTestCase createEvaluationTestCase() { + protected EvaluationTestCase createEvaluationTestCase(SkylarkSemantics semantics) { return new EvaluationTestCase(); } 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 057a7b7319..569f3c36e8 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 @@ -125,6 +125,7 @@ public class SkylarkSemanticsConsistencyTest { "--incompatible_disable_glob_tracking=" + rand.nextBoolean(), "--incompatible_disable_objc_provider_resources=" + rand.nextBoolean(), "--incompatible_disallow_dict_plus=" + rand.nextBoolean(), + "--incompatible_disallow_filetype=" + rand.nextBoolean(), "--incompatible_disallow_old_style_args_add=" + rand.nextBoolean(), "--incompatible_disallow_slash_operator=" + rand.nextBoolean(), "--incompatible_new_actions_api=" + rand.nextBoolean(), @@ -148,6 +149,7 @@ public class SkylarkSemanticsConsistencyTest { .incompatibleDisableGlobTracking(rand.nextBoolean()) .incompatibleDisableObjcProviderResources(rand.nextBoolean()) .incompatibleDisallowDictPlus(rand.nextBoolean()) + .incompatibleDisallowFileType(rand.nextBoolean()) .incompatibleDisallowOldStyleArgsAdd(rand.nextBoolean()) .incompatibleDisallowSlashOperator(rand.nextBoolean()) .incompatibleNewActionsApi(rand.nextBoolean()) diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java index b13d64ac8b..307139fe78 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java @@ -51,11 +51,13 @@ import com.google.devtools.build.lib.skylark.util.SkylarkTestCase; import com.google.devtools.build.lib.syntax.BuildFileAST; import com.google.devtools.build.lib.syntax.ClassObject; import com.google.devtools.build.lib.syntax.Environment; +import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.EvalUtils; import com.google.devtools.build.lib.syntax.SkylarkDict; import com.google.devtools.build.lib.syntax.SkylarkList.MutableList; import com.google.devtools.build.lib.syntax.SkylarkList.Tuple; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; +import com.google.devtools.build.lib.syntax.SkylarkSemantics; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.testutil.MoreAsserts; import com.google.devtools.build.lib.util.FileTypeSet; @@ -793,6 +795,15 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { } @Test + public void testFileTypeIsDisabled() throws Exception { + SkylarkSemantics semantics = + SkylarkSemantics.DEFAULT_SEMANTICS.toBuilder().incompatibleDisallowFileType(true).build(); + EvalException expected = + assertThrows(EvalException.class, () -> evalRuleClassCode(semantics, "FileType(['.css'])")); + assertThat(expected).hasMessageThat().contains("FileType function is not available."); + } + + @Test public void testRuleInheritsBaseRuleAttributes() throws Exception { evalAndExport("def impl(ctx): return None", "r1 = rule(impl)"); RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); diff --git a/src/test/java/com/google/devtools/build/lib/skylark/util/SkylarkTestCase.java b/src/test/java/com/google/devtools/build/lib/skylark/util/SkylarkTestCase.java index 38d32e5e29..f292a3da16 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/util/SkylarkTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/util/SkylarkTestCase.java @@ -31,6 +31,7 @@ import com.google.devtools.build.lib.rules.platform.PlatformCommon; import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.Environment.Phase; import com.google.devtools.build.lib.syntax.EvalException; +import com.google.devtools.build.lib.syntax.SkylarkSemantics; import com.google.devtools.build.lib.syntax.SkylarkUtils; import com.google.devtools.build.lib.syntax.util.EvaluationTestCase; import com.google.devtools.build.lib.testutil.TestConstants; @@ -47,11 +48,11 @@ public abstract class SkylarkTestCase extends BuildViewTestCase { @Before public final void setUpEvaluator() throws Exception { - ev = createEvaluationTestCase(); + ev = createEvaluationTestCase(SkylarkSemantics.DEFAULT_SEMANTICS); ev.initialize(); } - protected EvaluationTestCase createEvaluationTestCase() { + protected EvaluationTestCase createEvaluationTestCase(SkylarkSemantics semantics) { return new EvaluationTestCase() { @Override public Environment newEnvironment() throws Exception { @@ -62,7 +63,7 @@ public abstract class SkylarkTestCase extends BuildViewTestCase { .build(); Environment env = Environment.builder(mutability) - .useDefaultSemantics() + .setSemantics(semantics) .setEventHandler(getEventHandler()) .setGlobals( SkylarkModules.getGlobals(modules) @@ -142,6 +143,12 @@ public abstract class SkylarkTestCase extends BuildViewTestCase { return eval("def impl(ctx): return None\n" + Joiner.on("\n").join(lines)); } + protected Object evalRuleClassCode(SkylarkSemantics semantics, String... lines) throws Exception { + ev = createEvaluationTestCase(semantics); + ev.initialize(); + return eval("def impl(ctx): return None\n" + Joiner.on("\n").join(lines)); + } + protected void checkError(SkylarkRuleContext ruleContext, String errorMsg, String... lines) throws Exception { try { |