aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java35
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java5
-rw-r--r--src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java11
4 files changed, 42 insertions, 14 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
index abbd3472c8..e4bd5b9a46 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/ArtifactTest.java
@@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.testing.EqualsTester;
import com.google.devtools.build.lib.actions.ActionAnalysisMetadata.MiddlemanType;
import com.google.devtools.build.lib.actions.Artifact.SourceArtifact;
import com.google.devtools.build.lib.actions.ArtifactResolver.ArtifactResolverSupplier;
@@ -411,6 +412,40 @@ public class ArtifactTest {
assertThat(new Artifact(scratch.file("/newRoot/foo"), root).getRoot()).isEqualTo(root);
}
+ @Test
+ public void hashCodeAndEquals() throws IOException {
+ Path execRoot = scratch.getFileSystem().getPath("/");
+ ArtifactRoot root = ArtifactRoot.asDerivedRoot(execRoot, scratch.dir("/newRoot"));
+ ArtifactOwner firstOwner = () -> Label.parseAbsoluteUnchecked("//bar:bar");
+ ArtifactOwner secondOwner = () -> Label.parseAbsoluteUnchecked("//foo:foo");
+ Artifact derived1 = new Artifact(root, PathFragment.create("newRoot/shared"), firstOwner);
+ Artifact derived2 = new Artifact(root, PathFragment.create("newRoot/shared"), secondOwner);
+ ArtifactRoot sourceRoot = ArtifactRoot.asSourceRoot(Root.fromPath(root.getRoot().asPath()));
+ Artifact source1 = new SourceArtifact(sourceRoot, PathFragment.create("shared"), firstOwner);
+ Artifact source2 = new SourceArtifact(sourceRoot, PathFragment.create("shared"), secondOwner);
+ new EqualsTester()
+ .addEqualityGroup(derived1)
+ .addEqualityGroup(derived2)
+ .addEqualityGroup(source1, source2)
+ .testEquals();
+ assertThat(derived1.hashCode()).isEqualTo(derived2.hashCode());
+ assertThat(derived1.hashCode()).isNotEqualTo(source1.hashCode());
+ assertThat(source1.hashCode()).isEqualTo(source2.hashCode());
+ Artifact.OwnerlessArtifactWrapper wrapper1 = new Artifact.OwnerlessArtifactWrapper(derived1);
+ Artifact.OwnerlessArtifactWrapper wrapper2 = new Artifact.OwnerlessArtifactWrapper(derived2);
+ Artifact.OwnerlessArtifactWrapper wrapper3 = new Artifact.OwnerlessArtifactWrapper(source1);
+ Artifact.OwnerlessArtifactWrapper wrapper4 = new Artifact.OwnerlessArtifactWrapper(source2);
+ new EqualsTester()
+ .addEqualityGroup(wrapper1, wrapper2)
+ .addEqualityGroup(wrapper3, wrapper4)
+ .testEquals();
+ Path path1 = derived1.getPath();
+ Path path2 = derived2.getPath();
+ Path path3 = source1.getPath();
+ Path path4 = source2.getPath();
+ new EqualsTester().addEqualityGroup(path1, path2, path3, path4).testEquals();
+ }
+
private Artifact createDirNameArtifact() throws Exception {
return new Artifact(
scratch.file("/aaa/bbb/ccc/ddd"),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
index 786fe20a10..3a21b58b36 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ActionTemplateExpansionFunctionTest.java
@@ -33,7 +33,6 @@ import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
import com.google.devtools.build.lib.actions.ArtifactOwner;
import com.google.devtools.build.lib.actions.ArtifactPrefixConflictException;
import com.google.devtools.build.lib.actions.ArtifactRoot;
-import com.google.devtools.build.lib.actions.ArtifactSkyKey;
import com.google.devtools.build.lib.actions.FileArtifactValue;
import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
@@ -262,9 +261,7 @@ public final class ActionTemplateExpansionFunctionTest extends FoundationTestCas
}
@Override
public SkyValue compute(SkyKey skyKey, Environment env) {
- ArtifactSkyKey artifactSkyKey = (ArtifactSkyKey) skyKey.argument();
- Artifact artifact = artifactSkyKey.getArtifact();
- return Preconditions.checkNotNull(artifactValueMap.get(artifact));
+ return Preconditions.checkNotNull(artifactValueMap.get(skyKey));
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
index 734038cb29..cc4ae1a0fc 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java
@@ -153,10 +153,7 @@ public class ArtifactFunctionTest extends ArtifactFunctionTestCase {
actions.add(action);
file(input2.getPath(), "contents");
file(input1.getPath(), "source contents");
- evaluate(
- Iterables.toArray(
- ArtifactSkyKey.mandatoryKeys(ImmutableSet.of(input2, input1, input2, tree)),
- SkyKey.class));
+ evaluate(Iterables.toArray(ImmutableSet.of(input2, input1, input2, tree), SkyKey.class));
SkyValue value = evaluateArtifactValue(output);
assertThat(((AggregatingArtifactValue) value).getInputs())
.containsExactly(
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
index 49c10c912c..243e7435e6 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java
@@ -938,10 +938,9 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws SkyFunctionException, InterruptedException {
- ArtifactSkyKey artifactKey = (ArtifactSkyKey) skyKey.argument();
- Artifact artifact = artifactKey.getArtifact();
try {
- return FileArtifactValue.create(artifact.getPath());
+ return FileArtifactValue.create(
+ ArtifactSkyKey.artifact((SkyKey) skyKey.argument()).getPath());
} catch (IOException e) {
throw new SkyFunctionException(e, Transience.PERSISTENT){};
}
@@ -959,7 +958,7 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe
@Override
public SkyValue compute(SkyKey skyKey, Environment env)
throws SkyFunctionException, InterruptedException {
- return env.getValue(new NonHermeticArtifactSkyKey((ArtifactSkyKey) skyKey));
+ return env.getValue(new NonHermeticArtifactSkyKey(skyKey));
}
@Nullable
@@ -969,8 +968,8 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe
}
}
- private static class NonHermeticArtifactSkyKey extends AbstractSkyKey<ArtifactSkyKey> {
- private NonHermeticArtifactSkyKey(ArtifactSkyKey arg) {
+ private static class NonHermeticArtifactSkyKey extends AbstractSkyKey<SkyKey> {
+ private NonHermeticArtifactSkyKey(SkyKey arg) {
super(arg);
}