From f8a1ae63ed616c4579db724a4d97effb8c216ceb Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Thu, 11 Aug 2016 14:44:40 +0000 Subject: Add the repository name as a parameter to the output path functions This doesn't do anything yet, it's in preparation for the execroot rearranging change. The execroot will have one bazel-out per repo, so it'll look like: execroot/ repo1/ bazel-out/ local-fastbuild/ bin/ repo2/ bazel-out/ local-fastbuild/ bin/ genfiles/ repo3/ bazel-out/ local-fastbuild/ testlogs/ and so on. Thus, any output path (getBinDirectory() & friends) needs to know what the repo name is. This changes so many places in the code I thought it would be good to do separately, then just flip the functionality in the execroot-rearranging commit. While I was poking around, I changed all of the refs I could from getPackageRelativeArtifact() to getBin/GenfilesArtifact(), so that 1) rule implementation don't have to know as much about roots and 2) they'll be more isolated from other output dir changes. `bazel info` and similar just return roots for the main repository. The only "change" is passing around a target label in the Java rules. Continues work on #1262. -- MOS_MIGRATED_REVID=129985336 --- .../build/lib/analysis/util/ConfigurationTestCase.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java') diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java index 4bead55dfd..15e4e6887b 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java @@ -29,6 +29,7 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; +import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.flags.InvocationPolicyEnforcer; import com.google.devtools.build.lib.packages.PackageFactory; import com.google.devtools.build.lib.packages.Preprocessor; @@ -49,16 +50,14 @@ import com.google.devtools.common.options.Option; import com.google.devtools.common.options.Options; import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsParser; - -import org.junit.Before; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; /** * Testing framework for tests which check ConfigurationFactory. @@ -179,12 +178,14 @@ public abstract class ConfigurationTestCase extends FoundationTestCase { Map outputPaths = new HashMap<>(); for (BuildConfiguration config : allConfigs) { if (config.isActionsEnabled()) { - BuildConfiguration otherConfig = outputPaths.get(config.getOutputDirectory()); + BuildConfiguration otherConfig = outputPaths.get( + config.getOutputDirectory(RepositoryName.MAIN)); if (otherConfig != null) { - throw new IllegalStateException("The output path '" + config.getOutputDirectory() + throw new IllegalStateException("The output path '" + + config.getOutputDirectory(RepositoryName.MAIN) + "' is the same for configurations '" + config + "' and '" + otherConfig + "'"); } else { - outputPaths.put(config.getOutputDirectory(), config); + outputPaths.put(config.getOutputDirectory(RepositoryName.MAIN), config); } } } -- cgit v1.2.3