diff options
author | 2018-04-17 21:30:33 -0700 | |
---|---|---|
committer | 2018-04-17 21:31:38 -0700 | |
commit | 32d34e906b0c5e9b80a97683dc4795d869561ab4 (patch) | |
tree | 7823d2ab8e8da828e4d465be71c353a4e0f725d8 /src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java | |
parent | 827007729889126cd7e07a08116f9bcb82f819a9 (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.java | 84 |
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(); |