aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar Francois-Rene Rideau <tunes@google.com>2015-03-02 08:14:46 +0000
committerGravatar Ulf Adams <ulfjack@google.com>2015-03-05 14:16:04 +0000
commitf249d761abfa5e8892d12860a0f90e2c2d0aa32b (patch)
tree02e0285bc51e4ebd73059cd0dfddd160668a4652 /src/test/java/com
parent2e85a96ff7c0ffbaa1899dd25ff20fa311ddb6cf (diff)
Fix race condition in SkylarkType.of
Fix race condition in SkylarkType.of(), whereby .equals() but not same (==) types were created, by making Simple.of() synchronized. Also make SkylarkType#includes() more robust by using .equals() instead of == (it's a little bit slower in the case of Simple types once fixed, but also works on complex types that don't hash-cons their values). Also, distinguish SkylarkList (printed as list) and java.util.List (printed as List) and similarly for tuple vs Tuple, when printing types in debugging messages. -- MOS_MIGRATED_REVID=87490176
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java6
3 files changed, 6 insertions, 6 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java b/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java
index e32005065c..3d463f3018 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/BuildFileASTTest.java
@@ -97,7 +97,7 @@ public class BuildFileASTTest {
assertFalse(buildfile.exec(env, reporter));
Event e = JunitTestUtils.assertContainsEvent(collector,
- "unsupported operand type(s) for +: 'int' and 'list'");
+ "unsupported operand type(s) for +: 'int' and 'List'");
assertEquals(4, e.getLocation().getStartLineAndColumn().getLine());
}
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
index 7aad74fba9..9da4ed2f81 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvalUtilsTest.java
@@ -61,8 +61,8 @@ public class EvalUtilsTest {
public void testDataTypeNames() throws Exception {
assertEquals("string", EvalUtils.getDataTypeName("foo"));
assertEquals("int", EvalUtils.getDataTypeName(3));
- assertEquals("tuple", EvalUtils.getDataTypeName(makeTuple(1, 2, 3)));
- assertEquals("list", EvalUtils.getDataTypeName(makeList(1, 2, 3)));
+ assertEquals("Tuple", EvalUtils.getDataTypeName(makeTuple(1, 2, 3)));
+ assertEquals("List", EvalUtils.getDataTypeName(makeList(1, 2, 3)));
assertEquals("dict", EvalUtils.getDataTypeName(makeDict()));
assertEquals("FilesetEntry", EvalUtils.getDataTypeName(makeFilesetEntry()));
assertEquals("None", EvalUtils.getDataTypeName(Environment.NONE));
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 f33b500c32..c31b17b161 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
@@ -302,7 +302,7 @@ public class EvaluationTest extends AbstractEvaluationTestCase {
assertTrue(EvalUtils.isImmutable(x));
checkEvalError("(1,2) + [3,4]", // list + tuple
- "can only concatenate list (not \"tuple\") to list");
+ "can only concatenate List (not \"Tuple\") to List");
}
@SuppressWarnings("unchecked")
@@ -380,8 +380,8 @@ public class EvaluationTest extends AbstractEvaluationTestCase {
public void testListConcatenation() throws Exception {
assertEquals(Arrays.asList(1, 2, 3, 4), eval("[1, 2] + [3, 4]", env));
assertEquals(ImmutableList.of(1, 2, 3, 4), eval("(1, 2) + (3, 4)", env));
- checkEvalError("[1, 2] + (3, 4)", "can only concatenate tuple (not \"list\") to tuple");
- checkEvalError("(1, 2) + [3, 4]", "can only concatenate list (not \"tuple\") to list");
+ checkEvalError("[1, 2] + (3, 4)", "can only concatenate Tuple (not \"List\") to Tuple");
+ checkEvalError("(1, 2) + [3, 4]", "can only concatenate List (not \"Tuple\") to List");
}
@Test