diff options
Diffstat (limited to 'src/test/java/com/google/devtools/build')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java index 0f5d21bca7..15e7b82168 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TreeArtifactMetadataTest.java @@ -55,9 +55,14 @@ import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; +import java.util.stream.Collectors; +import java.util.stream.IntStream; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -124,6 +129,24 @@ public class TreeArtifactMetadataTest extends ArtifactFunctionTestCase { } @Test + public void testTreeArtifactOrdering() throws Exception { + int rangeSize = 100; + int attempts = 10; + List<PathFragment> children = + IntStream.range(0, rangeSize) + .mapToObj(i -> PathFragment.create("file" + i)) + .collect(Collectors.toList()); + + for (int i = 0; i < attempts; i++) { + Collections.shuffle(children, new Random()); + Artifact treeArtifact = createTreeArtifact("out"); + TreeArtifactValue value = evaluateTreeArtifact(treeArtifact, children); + assertThat(value.getChildPaths()).containsExactlyElementsIn(children); + assertThat(value.getChildPaths()).isOrdered(Comparator.naturalOrder()); + } + } + + @Test public void testEqualTreeArtifacts() throws Exception { Artifact treeArtifact = createTreeArtifact("out"); ImmutableList<PathFragment> children = |