diff --git a/base/src/com/google/idea/blaze/base/command/info/BlazeInfo.java b/base/src/com/google/idea/blaze/base/command/info/BlazeInfo.java index 1f49a07fa26..d1610f0de4e 100644 --- a/base/src/com/google/idea/blaze/base/command/info/BlazeInfo.java +++ b/base/src/com/google/idea/blaze/base/command/info/BlazeInfo.java @@ -85,6 +85,7 @@ public static BlazeInfo create( ExecutionRootPath.createAncestorRelativePath( executionRoot, new File(getOrThrow(blazeInfoMap, blazeTestlogsKey(buildSystemName)))); File outputBase = new File(getOrThrow(blazeInfoMap, OUTPUT_BASE_KEY).trim()); + File outputPath = new File(getOrThrow(blazeInfoMap, OUTPUT_PATH_KEY).trim()); return AutoValue_BlazeInfo.builder() .setBlazeInfoMap(blazeInfoMap) .setExecutionRoot(executionRoot) @@ -92,6 +93,7 @@ public static BlazeInfo create( .setBlazeGenfiles(blazeGenfiles) .setBlazeTestlogs(blazeTestlogs) .setOutputBase(outputBase) + .setOutputPath(outputPath) .autoBuild(); } @@ -140,6 +142,8 @@ public File getBlazeTestlogsDirectory() { public abstract File getOutputBase(); + public abstract File getOutputPath(); + public String getStarlarkSemantics() { return getBlazeInfoMap().get(STARLARK_SEMANTICS); } @@ -160,6 +164,7 @@ public static BlazeInfo createMockBlazeInfo( ImmutableMap.Builder blazeInfoMap = ImmutableMap.builder() .put(OUTPUT_BASE_KEY, outputBase) + .put(OUTPUT_PATH_KEY, outputBase + "/output") .put(EXECUTION_ROOT_KEY, executionRoot) .put(blazeBinKey(buildSystemName), blazeBin) .put(blazeGenfilesKey(buildSystemName), blazeGenFiles) @@ -181,12 +186,15 @@ public abstract static class Builder { public abstract Builder setOutputBase(File value); + public abstract Builder setOutputPath(File value); + public abstract BlazeInfo autoBuild(); // A build method to populate the blazeInfoMap public BlazeInfo build(BuildSystemName buildSystemName) { BlazeInfo blazeInfo = autoBuild(); blazeInfoMapBuilder().put(OUTPUT_BASE_KEY, blazeInfo.getOutputBase().getPath()); + blazeInfoMapBuilder().put(OUTPUT_PATH_KEY, blazeInfo.getOutputPath().getPath()); blazeInfoMapBuilder().put(EXECUTION_ROOT_KEY, blazeInfo.getExecutionRoot().getPath()); File execRoot = new File(blazeInfo.getExecutionRoot().getAbsolutePath()); blazeInfoMapBuilder() diff --git a/base/src/com/google/idea/blaze/base/run/coverage/CoverageUtils.java b/base/src/com/google/idea/blaze/base/run/coverage/CoverageUtils.java index 495a58a143f..9ac9c5ec71e 100644 --- a/base/src/com/google/idea/blaze/base/run/coverage/CoverageUtils.java +++ b/base/src/com/google/idea/blaze/base/run/coverage/CoverageUtils.java @@ -66,7 +66,7 @@ public static ImmutableList getBlazeFlags() { } public static File getOutputFile(BlazeInfo blazeInfo) { - File coverageRoot = new File(blazeInfo.getOutputBase(), "_coverage"); + File coverageRoot = new File(blazeInfo.getOutputPath(), "_coverage"); return new File(coverageRoot, "_coverage_report.dat"); } } diff --git a/java/tests/integrationtests/com/google/idea/blaze/java/fastbuild/FastBuildChangedFilesServiceTest.java b/java/tests/integrationtests/com/google/idea/blaze/java/fastbuild/FastBuildChangedFilesServiceTest.java index 9256288e037..5ee2d1b7415 100644 --- a/java/tests/integrationtests/com/google/idea/blaze/java/fastbuild/FastBuildChangedFilesServiceTest.java +++ b/java/tests/integrationtests/com/google/idea/blaze/java/fastbuild/FastBuildChangedFilesServiceTest.java @@ -63,7 +63,9 @@ public class FastBuildChangedFilesServiceTest extends BlazeIntegrationTestCase { "blaze-genfiles", BLAZE_EXECROOT + "/blaze-genfiles", "blaze-testlogs", BLAZE_TESTLOGS, "execution_root", BLAZE_EXECROOT, - "output_base", "/blaze/output-base")); + "output_base", "/blaze/output-base", + "output_path", "/blaze/output-base/output-path" + )); private FastBuildChangedFilesService changedFilesService; private ArtifactLocationDecoder artifactLocationDecoder;