aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
diff options
context:
space:
mode:
authorGravatar Michajlo Matijkiw <michajlo@google.com>2015-05-22 23:25:34 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-05-26 08:12:11 +0000
commitdee781c6ab798818bf5bad2ec1b662f8849799f8 (patch)
tree140a93b51050972f0456fc42053a590437f8fa93 /src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
parentdfc9b62faa9e512df72bf8c8edca58e62d9d7160 (diff)
Add runfiles to metadata caches and make them isFile aware
-- MOS_MIGRATED_REVID=94318260
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
new file mode 100644
index 0000000000..14899b4ebb
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
@@ -0,0 +1,80 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.build.lib.analysis;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.Root;
+import com.google.devtools.build.lib.testutil.Scratch;
+import com.google.devtools.build.lib.vfs.PathFragment;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.io.IOException;
+import java.util.List;
+
+/** Tests for RunfilesSupplierImpl */
+@RunWith(JUnit4.class)
+public class RunfilesSupplierImplTest {
+
+ private Root rootDir;
+
+ @Before
+ public void setup() throws IOException {
+ Scratch scratch = new Scratch();
+ rootDir = Root.asDerivedRoot(scratch.dir("/fake/root/dont/matter"));
+ }
+
+ @Test
+ public void testGetArtifactsWithSingleMapping() {
+ List<Artifact> artifacts = mkArtifacts(rootDir, "thing1", "thing2");
+
+ RunfilesSupplierImpl underTest = new RunfilesSupplierImpl(
+ ImmutableMap.of(new PathFragment("notimportant"), mkRunfiles(artifacts)));
+
+ assertThat(underTest.getArtifacts()).containsExactlyElementsIn(artifacts);
+ }
+
+ @Test
+ public void testGetArtifactsWithMultipleMappings() {
+ List<Artifact> artifacts1 = mkArtifacts(rootDir, "thing_1", "thing_2", "duplicated");
+ List<Artifact> artifacts2 = mkArtifacts(rootDir, "thing_3", "thing_4", "duplicated");
+
+ RunfilesSupplierImpl underTest = new RunfilesSupplierImpl(ImmutableMap.of(
+ new PathFragment("notimportant"), mkRunfiles(artifacts1),
+ new PathFragment("stillnotimportant"), mkRunfiles(artifacts2)));
+
+ assertThat(underTest.getArtifacts()).containsExactlyElementsIn(
+ mkArtifacts(rootDir, "thing_1", "thing_2", "thing_3", "thing_4", "duplicated"));
+ }
+
+ private static Runfiles mkRunfiles(List<Artifact> artifacts) {
+ return new Runfiles.Builder().addArtifacts(artifacts).build();
+ }
+
+ private static List<Artifact> mkArtifacts(Root rootDir, String... paths) {
+ ImmutableList.Builder<Artifact> builder = ImmutableList.builder();
+ for (String path : paths) {
+ builder.add(new Artifact(new PathFragment(path), rootDir));
+ }
+ return builder.build();
+ }
+}