aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java12
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java13
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/MethodLibraryTest.java5
3 files changed, 23 insertions, 7 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java b/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java
index ddd5b584c9..3642fda958 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/Crosstool.java
@@ -20,6 +20,8 @@ import com.google.protobuf.TextFormat;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
/**
* A helper class to create a crosstool package containing a CROSSTOOL file, and the various
@@ -111,9 +113,15 @@ final class Crosstool {
CrosstoolConfig.CrosstoolRelease.newBuilder();
TextFormat.merge(crosstoolFileContents, configBuilder);
StringBuilder compilerMap = new StringBuilder();
+ // Remove duplicates
+ Set<String> keys = new LinkedHashSet<>();
for (CrosstoolConfig.CToolchain toolchain : configBuilder.build().getToolchainList()) {
- compilerMap.append(String.format("'%s|%s': ':cc-compiler-%s',\n",
- toolchain.getTargetCpu(), toolchain.getCompiler(), toolchain.getTargetCpu()));
+ String key = String.format("%s|%s", toolchain.getTargetCpu(), toolchain.getCompiler());
+ if (!keys.contains(key)) {
+ keys.add(key);
+ compilerMap.append(
+ String.format("'%s': ':cc-compiler-%s',\n", key, toolchain.getTargetCpu()));
+ }
}
for (String arch : archs) {
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 a3251da4f3..ff5940a95e 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
@@ -359,6 +359,19 @@ public class EvaluationTest extends EvaluationTestCase {
}
@Test
+ public void testDictWithDuplicatedKey() throws Exception {
+ new SkylarkTest("--incompatible_dict_literal_has_no_duplicates=true")
+ .testIfErrorContains(
+ "Duplicated key \"str\" when creating dictionary", "{'str': 1, 'x': 2, 'str': 3}");
+ }
+
+ @Test
+ public void testDictAllowDuplicatedKey() throws Exception {
+ new SkylarkTest("--incompatible_dict_literal_has_no_duplicates=false")
+ .testStatement("{'str': 1, 'x': 2, 'str': 3}", ImmutableMap.of("str", 3, "x", 2));
+ }
+
+ @Test
public void testRecursiveTupleDestructuring() throws Exception {
newTest()
.setUp("((a, b), (c, d)) = [(1, 2), (3, 4)]")
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 6b93e7e938..a76bbc6847 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
@@ -1122,11 +1122,6 @@ public class MethodLibraryTest extends EvaluationTestCase {
}
@Test
- public void testDictionaryWithMultipleKeys() throws Exception {
- new BothModesTest().testStatement("{0: 'a', 1: 'b', 0: 'c'}[0]", "c");
- }
-
- @Test
public void testDictionaryKeyNotFound() throws Exception {
new BothModesTest()
.testIfErrorContains("key \"0\" not found in dictionary", "{}['0']")