Build language supports list comparison.

--
MOS_MIGRATED_REVID=91289047
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
index 37042ed..cb54532 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
@@ -190,13 +190,33 @@
   }
 
   @Test
-  public void testCompareStringInt() throws Exception {
-    checkEvalError("Cannot compare string with int", "'a' >= 1");
+  public void testListComparison() throws Exception {
+    assertThat(eval("[] < [1]")).isEqualTo(true);
+    assertThat(eval("[1] < [1, 1]")).isEqualTo(true);
+    assertThat(eval("[1, 1] < [1, 2]")).isEqualTo(true);
+    assertThat(eval("[1, 2] < [1, 2, 3]")).isEqualTo(true);
+    assertThat(eval("[1, 2, 3] <= [1, 2, 3]")).isEqualTo(true);
+
+    assertThat(eval("['a', 'b'] > ['a']")).isEqualTo(true);
+    assertThat(eval("['a', 'b'] >= ['a']")).isEqualTo(true);
+    assertThat(eval("['a', 'b'] < ['a']")).isEqualTo(false);
+    assertThat(eval("['a', 'b'] <= ['a']")).isEqualTo(false);
+
+    assertThat(eval("('a', 'b') > ('a', 'b')")).isEqualTo(false);
+    assertThat(eval("('a', 'b') >= ('a', 'b')")).isEqualTo(true);
+    assertThat(eval("('a', 'b') < ('a', 'b')")).isEqualTo(false);
+    assertThat(eval("('a', 'b') <= ('a', 'b')")).isEqualTo(true);
+
+    assertThat(eval("[[1, 1]] > [[1, 1], []]")).isEqualTo(false);
+    assertThat(eval("[[1, 1]] < [[1, 1], []]")).isEqualTo(true);
+
+    checkEvalError("Cannot compare int with string", "[1] < ['a']");
+    checkEvalError("[1] is not comparable", "[1] < 1");
   }
 
   @Test
-  public void testNotComparable() throws Exception {
-    checkEvalError("[1, 2] is not comparable", "[1, 2] < [1, 3]");
+  public void testCompareStringInt() throws Exception {
+    checkEvalError("Cannot compare string with int", "'a' >= 1");
   }
 
   @Test