aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2018-04-17 21:30:33 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-17 21:31:38 -0700
commit32d34e906b0c5e9b80a97683dc4795d869561ab4 (patch)
tree7823d2ab8e8da828e4d465be71c353a4e0f725d8 /src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java
parent827007729889126cd7e07a08116f9bcb82f819a9 (diff)
Refactor SyntaxTests to not rely on actions/analysis packages arbitrarily
In the process, clean up SkylarkType-related tests. - Factor test of EvalUtils.getSkylarkType logic from SkylarkEvaluationTest and ValidationTest to EvalUtilsTest. - Move test of EvalUtils.getSkylarkType's behavior on lists to SkylarkListTest. - Move other SkylarkType tests from ValidationTest to new SkylarkTypeTest and split them up a little. - Throughout, don't use Bazel types like Artifact as test subjects. RELNOTES: None PiperOrigin-RevId: 193303463
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java
index 6e352ac15b..518e871391 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java
@@ -15,13 +15,7 @@ package com.google.devtools.build.lib.syntax;
import static com.google.common.truth.Truth.assertThat;
-import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.events.Event;
-import com.google.devtools.build.lib.packages.Info;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
-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.util.EvaluationTestCase;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -226,84 +220,6 @@ public class ValidationTest extends EvaluationTestCase {
}
}
- @Test
- public void testGetSkylarkType() throws Exception {
- Class<?> emptyTupleClass = Tuple.empty().getClass();
- Class<?> tupleClass = Tuple.of(1, "a", "b").getClass();
- Class<?> mutableListClass = MutableList.copyOf(env, Tuple.of(1, 2, 3)).getClass();
-
- assertThat(EvalUtils.getSkylarkType(mutableListClass)).isEqualTo(MutableList.class);
- assertThat(MutableList.class.isAnnotationPresent(SkylarkModule.class)).isTrue();
- assertThat(EvalUtils.getSkylarkType(emptyTupleClass)).isEqualTo(Tuple.class);
- assertThat(EvalUtils.getSkylarkType(tupleClass)).isEqualTo(Tuple.class);
-
- assertThat(EvalUtils.getSkylarkType(Info.class)).isEqualTo(Info.class);
- try {
- EvalUtils.getSkylarkType(ClassObject.class);
- throw new Exception("Should have raised IllegalArgumentException exception");
- } catch (IllegalArgumentException e) {
- assertThat(e)
- .hasMessageThat()
- .contains(
- "interface com.google.devtools.build.lib.syntax.ClassObject is not allowed "
- + "as a Skylark value");
- }
- }
-
- @Test
- public void testSkylarkTypeEquivalence() throws Exception {
- Class<?> emptyTupleClass = Tuple.empty().getClass();
- Class<?> tupleClass = Tuple.of(1, "a", "b").getClass();
- Class<?> mutableListClass = MutableList.copyOf(env, Tuple.of(1, 2, 3)).getClass();
-
- assertThat(SkylarkType.of(mutableListClass)).isEqualTo(SkylarkType.LIST);
- assertThat(SkylarkType.of(emptyTupleClass)).isEqualTo(SkylarkType.TUPLE);
- assertThat(SkylarkType.of(tupleClass)).isEqualTo(SkylarkType.TUPLE);
- assertThat(SkylarkType.TUPLE).isNotEqualTo(SkylarkType.LIST);
-
- try {
- SkylarkType.of(ClassObject.class);
- throw new Exception("foo");
- } catch (Exception e) {
- assertThat(e)
- .hasMessageThat()
- .contains(
- "interface com.google.devtools.build.lib.syntax.ClassObject "
- + "is not allowed as a Skylark value");
- }
-
- // Also test for these bazel classes, to avoid some regression.
- // TODO(bazel-team): move to some other place to remove dependency of syntax tests on Artifact?
- assertThat(SkylarkType.of(Artifact.SpecialArtifact.class))
- .isEqualTo(SkylarkType.of(Artifact.class));
- assertThat(SkylarkType.of(RuleConfiguredTarget.class)).isNotEqualTo(SkylarkType.of(Info.class));
- }
-
- @Test
- public void testSkylarkTypeInclusion() throws Exception {
- assertThat(SkylarkType.INT.includes(SkylarkType.BOTTOM)).isTrue();
- assertThat(SkylarkType.BOTTOM.includes(SkylarkType.INT)).isFalse();
- assertThat(SkylarkType.TOP.includes(SkylarkType.INT)).isTrue();
-
- SkylarkType combo1 = SkylarkType.Combination.of(SkylarkType.LIST, SkylarkType.INT);
- assertThat(SkylarkType.LIST.includes(combo1)).isTrue();
-
- SkylarkType union1 =
- SkylarkType.Union.of(SkylarkType.DICT, SkylarkType.LIST);
- assertThat(union1.includes(SkylarkType.DICT)).isTrue();
- assertThat(union1.includes(combo1)).isTrue();
- assertThat(union1.includes(SkylarkType.STRING)).isFalse();
-
- SkylarkType union2 =
- SkylarkType.Union.of(
- SkylarkType.LIST, SkylarkType.DICT, SkylarkType.STRING, SkylarkType.INT);
- SkylarkType inter1 = SkylarkType.intersection(union1, union2);
- assertThat(inter1.includes(SkylarkType.DICT)).isTrue();
- assertThat(inter1.includes(SkylarkType.LIST)).isTrue();
- assertThat(inter1.includes(combo1)).isTrue();
- assertThat(inter1.includes(SkylarkType.INT)).isFalse();
- }
-
private void parse(String... lines) {
parseFile(lines);
assertNoWarningsOrErrors();