diff options
author | Michajlo Matijkiw <michajlo@google.com> | 2015-05-22 23:25:34 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-05-26 08:12:11 +0000 |
commit | dee781c6ab798818bf5bad2ec1b662f8849799f8 (patch) | |
tree | 140a93b51050972f0456fc42053a590437f8fa93 /src/test/java/com | |
parent | dfc9b62faa9e512df72bf8c8edca58e62d9d7160 (diff) |
Add runfiles to metadata caches and make them isFile aware
--
MOS_MIGRATED_REVID=94318260
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java | 5 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java | 80 |
2 files changed, 85 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java b/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java index 351a419b9b..053e1edba9 100644 --- a/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java +++ b/src/test/java/com/google/devtools/build/lib/actions/ResourceManagerTest.java @@ -367,6 +367,11 @@ public class ResourceManagerTest { } @Override + public RunfilesSupplier getRunfilesSupplier() { + throw new IllegalStateException(); + } + + @Override public ImmutableSet<Artifact> getOutputs() { throw new IllegalStateException(); } 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(); + } +} |