aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2018-04-13 06:09:30 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-13 06:10:29 -0700
commit707acfeecf60ef622b745741e76bf47717b1b480 (patch)
tree5cab49a70b5e3380417c4817174d95d5fb0512b0 /src/test/java/com
parent8738794b0497e240c9b41faefe46a7e790fc0ab7 (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')
-rw-r--r--src/test/java/com/google/devtools/build/docgen/SkylarkDocumentationTest.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java11
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylark/util/SkylarkTestCase.java13
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 {