aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2018-02-12 02:53:19 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-12 02:55:12 -0800
commit9b96c0b37da7dfbb6f590c3da65413d921b83eb5 (patch)
tree404de2da6aba7de2e3382dba440a60a0c36bfb3b /src/test/java/com/google/devtools
parentd9aa4039f4cf1803f2b03d03479f4bc66c62ba61 (diff)
Skylark: SlicingExpression: do not create new nodes for optional expressions
RELNOTES: None. PiperOrigin-RevId: 185353994
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java32
2 files changed, 19 insertions, 15 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
index 438c153ede..6553a3d88e 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java
@@ -934,7 +934,7 @@ public class MethodLibraryTest extends EvaluationTestCase {
public void testIndexOnFunction() throws Exception {
new BothModesTest()
.testIfErrorContains("type 'function' has no operator [](int)", "len[1]")
- .testIfErrorContains("type 'function' has no operator [:](int, int, int)", "len[1:4]");
+ .testIfErrorContains("type 'function' has no operator [:](int, int, NoneType)", "len[1:4]");
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index f3fbe1e63f..50d6d88fe2 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -305,16 +305,16 @@ public class ParserTest extends EvaluationTestCase {
@Test
public void testSlice() throws Exception {
- evalSlice("'0123'[:]", Runtime.NONE, Runtime.NONE, 1);
- evalSlice("'0123'[1:]", 1, Runtime.NONE, 1);
- evalSlice("'0123'[:3]", Runtime.NONE, 3, 1);
- evalSlice("'0123'[::]", Runtime.NONE, Runtime.NONE, 1);
- evalSlice("'0123'[1::]", 1, Runtime.NONE, 1);
- evalSlice("'0123'[:3:]", Runtime.NONE, 3, 1);
- evalSlice("'0123'[::-1]", Runtime.NONE, Runtime.NONE, -1);
- evalSlice("'0123'[1:3:]", 1, 3, 1);
- evalSlice("'0123'[1::-1]", 1, Runtime.NONE, -1);
- evalSlice("'0123'[:3:-1]", Runtime.NONE, 3, -1);
+ evalSlice("'0123'[:]", "", "", "");
+ evalSlice("'0123'[1:]", 1, "", "");
+ evalSlice("'0123'[:3]", "", 3, "");
+ evalSlice("'0123'[::]", "", "", "");
+ evalSlice("'0123'[1::]", 1, "", "");
+ evalSlice("'0123'[:3:]", "", 3, "");
+ evalSlice("'0123'[::-1]", "", "", -1);
+ evalSlice("'0123'[1:3:]", 1, 3, "");
+ evalSlice("'0123'[1::-1]", 1, "", -1);
+ evalSlice("'0123'[:3:-1]", "", 3, -1);
evalSlice("'0123'[1:3:-1]", 1, 3, -1);
Expression slice = parseExpression("'0123'[1:3:-1]");
@@ -325,9 +325,13 @@ public class ParserTest extends EvaluationTestCase {
SliceExpression e = (SliceExpression) parseExpression(statement);
// There is no way to evaluate the expression here, so we rely on string comparison.
- assertThat(e.getStart().toString()).isEqualTo(expectedArgs[0].toString());
- assertThat(e.getEnd().toString()).isEqualTo(expectedArgs[1].toString());
- assertThat(e.getStep().toString()).isEqualTo(expectedArgs[2].toString());
+ String start = e.getStart() == null ? "" : e.getStart().toString();
+ String end = e.getEnd() == null ? "" : e.getEnd().toString();
+ String step = e.getStep() == null ? "" : e.getStep().toString();
+
+ assertThat(start).isEqualTo(expectedArgs[0].toString());
+ assertThat(end).isEqualTo(expectedArgs[1].toString());
+ assertThat(step).isEqualTo(expectedArgs[2].toString());
}
@Test
@@ -469,7 +473,7 @@ public class ParserTest extends EvaluationTestCase {
@Test
public void testPrettyPrintFunctions() throws Exception {
assertThat(parseFile("x[1:3]").toString()).isEqualTo("[x[1:3]\n]");
- assertThat(parseFile("x[1:3:1]").toString()).isEqualTo("[x[1:3]\n]");
+ assertThat(parseFile("x[1:3:1]").toString()).isEqualTo("[x[1:3:1]\n]");
assertThat(parseFile("x[1:3:2]").toString()).isEqualTo("[x[1:3:2]\n]");
assertThat(parseFile("x[1::2]").toString()).isEqualTo("[x[1::2]\n]");
assertThat(parseFile("x[1:]").toString()).isEqualTo("[x[1:]\n]");