diff options
11 files changed, 109 insertions, 93 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java index de887451fa..44c79abc6d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java @@ -385,7 +385,7 @@ public class CppOptions extends FragmentOptions { @Option( name = "experimental_shortened_obj_file_path", - defaultValue = "true", + defaultValue = "false", documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS, effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS}, help = diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java index 5031184a5d..39f5fdce81 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisCachingTest.java @@ -139,14 +139,13 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { return; } useConfiguration("--cpu=k8"); - scratch.file( - "conflict/BUILD", + scratch.file("conflict/BUILD", "cc_library(name='x', srcs=['foo.cc'])", - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])", - "cc_binary(name='foo', deps=['x'], data=['_objs/x/foo.pic.o'])"); + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])", + "cc_binary(name='foo', deps=['x'], data=['_objs/x/conflict/foo.pic.o'])"); reporter.removeHandler(failFastHandler); // expect errors update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:foo"); - assertContainsEvent("file 'conflict/_objs/x/foo.pic.o' " + CONFLICT_MSG); + assertContainsEvent("file 'conflict/_objs/x/conflict/foo.pic.o' " + CONFLICT_MSG); assertThat(getAnalysisResult().getTargetsToBuild()).isEmpty(); } @@ -162,23 +161,22 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { @Test public void testNoActionConflictWithInvalidatedTarget() throws Exception { useConfiguration("--cpu=k8"); - scratch.file( - "conflict/BUILD", + scratch.file("conflict/BUILD", "cc_library(name='x', srcs=['foo.cc'])", - "cc_binary(name='_objs/x/foo.o', srcs=['bar.cc'])"); + "cc_binary(name='_objs/x/conflict/foo.o', srcs=['bar.cc'])"); update("//conflict:x"); ConfiguredTarget conflict = getConfiguredTarget("//conflict:x"); - Action oldAction = getGeneratingAction(getBinArtifact("_objs/x/foo.pic.o", conflict)); + Action oldAction = getGeneratingAction(getBinArtifact("_objs/x/conflict/foo.pic.o", conflict)); assertThat(oldAction.getOwner().getLabel().toString()).isEqualTo("//conflict:x"); - scratch.overwriteFile( - "conflict/BUILD", + scratch.overwriteFile("conflict/BUILD", "cc_library(name='newx', srcs=['foo.cc'])", // Rename target. - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])"); - update(defaultFlags(), "//conflict:_objs/x/foo.pic.o"); - ConfiguredTarget objsConflict = getConfiguredTarget("//conflict:_objs/x/foo.pic.o"); - Action newAction = getGeneratingAction(getBinArtifact("_objs/x/foo.pic.o", objsConflict)); + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])"); + update(defaultFlags(), "//conflict:_objs/x/conflict/foo.pic.o"); + ConfiguredTarget objsConflict = getConfiguredTarget("//conflict:_objs/x/conflict/foo.pic.o"); + Action newAction = + getGeneratingAction(getBinArtifact("_objs/x/conflict/foo.pic.o", objsConflict)); assertThat(newAction.getOwner().getLabel().toString()) - .isEqualTo("//conflict:_objs/x/foo.pic.o"); + .isEqualTo("//conflict:_objs/x/conflict/foo.pic.o"); } /** @@ -191,13 +189,13 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { return; } useConfiguration("--cpu=k8"); - scratch.file( - "conflict/BUILD", + scratch.file("conflict/BUILD", "cc_library(name='x', srcs=['foo.cc'])", - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])"); + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])"); reporter.removeHandler(failFastHandler); // expect errors - update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:x", "//conflict:_objs/x/foo.pic.o"); - assertContainsEvent("file 'conflict/_objs/x/foo.pic.o' " + CONFLICT_MSG); + update(defaultFlags().with(Flag.KEEP_GOING), + "//conflict:x", "//conflict:_objs/x/conflict/foo.pic.o"); + assertContainsEvent("file 'conflict/_objs/x/conflict/foo.pic.o' " + CONFLICT_MSG); } @Test @@ -207,23 +205,23 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { return; } useConfiguration("--cpu=k8"); - scratch.file( - "conflict/BUILD", - "cc_library(name='x', srcs=['foo.cc'])", - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])"); + scratch.file("conflict/BUILD", + "cc_library(name='x', srcs=['foo.cc'])", + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])"); reporter.removeHandler(failFastHandler); // expect errors - update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:x", "//conflict:_objs/x/foo.pic.o"); + update(defaultFlags().with(Flag.KEEP_GOING), + "//conflict:x", "//conflict:_objs/x/conflict/foo.pic.o"); // We want to force a "dropConfiguredTargetsNow" operation, which won't inform the // invalidation receiver about the dropped configured targets. skyframeExecutor.clearAnalysisCache( ImmutableList.<ConfiguredTarget>of(), ImmutableSet.<AspectValue>of()); - assertContainsEvent("file 'conflict/_objs/x/foo.pic.o' " + CONFLICT_MSG); + assertContainsEvent("file 'conflict/_objs/x/conflict/foo.pic.o' " + CONFLICT_MSG); eventCollector.clear(); - scratch.overwriteFile( - "conflict/BUILD", + scratch.overwriteFile("conflict/BUILD", "cc_library(name='x', srcs=['baz.cc'])", - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])"); - update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:x", "//conflict:_objs/x/foo.pic.o"); + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])"); + update(defaultFlags().with(Flag.KEEP_GOING), + "//conflict:x", "//conflict:_objs/x/conflict/foo.pic.o"); assertNoEvents(); } @@ -241,11 +239,14 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { scratch.file( "conflict/BUILD", "cc_library(name='x', srcs=['foo.cc'])", - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])"); + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])"); reporter.removeHandler(failFastHandler); // expect errors - update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:x", "//conflict:_objs/x/foo.pic.o"); + update( + defaultFlags().with(Flag.KEEP_GOING), + "//conflict:x", + "//conflict:_objs/x/conflict/foo.pic.o"); - assertContainsEvent("file 'conflict/_objs/x/foo.pic.o' " + CONFLICT_MSG); + assertContainsEvent("file 'conflict/_objs/x/conflict/foo.pic.o' " + CONFLICT_MSG); assertDoesNotContainEvent("MandatoryInputs"); assertDoesNotContainEvent("Outputs"); } @@ -265,12 +266,13 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { "conflict/BUILD", "cc_library(name='x', srcs=['foo1.cc', 'foo2.cc', 'foo3.cc', 'foo4.cc', 'foo5.cc'" + ", 'foo6.cc'])", - "genrule(name = 'foo', outs=['_objs/x/foo1.pic.o'], srcs=['foo1.cc', 'foo2.cc', " + "genrule(name = 'foo', outs=['_objs/x/conflict/foo1.pic.o'], srcs=['foo1.cc', 'foo2.cc', " + "'foo3.cc', 'foo4.cc', 'foo5.cc', 'foo6.cc'], cmd='', output_to_bindir=1)"); reporter.removeHandler(failFastHandler); // expect errors update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:x", "//conflict:foo"); - Event event = assertContainsEvent("file 'conflict/_objs/x/foo1.pic.o' " + CONFLICT_MSG); + Event event = + assertContainsEvent("file 'conflict/_objs/x/conflict/foo1.pic.o' " + CONFLICT_MSG); assertContainsEvent("MandatoryInputs"); assertContainsEvent("Outputs"); @@ -296,14 +298,14 @@ public class AnalysisCachingTest extends AnalysisCachingTestBase { return; } useConfiguration("--cpu=k8"); - scratch.file( - "conflict/BUILD", + scratch.file("conflict/BUILD", "cc_library(name='x', srcs=['foo.cc'])", - "cc_binary(name='_objs/x/foo.o', srcs=['bar.cc'])"); + "cc_binary(name='_objs/x/conflict/foo.o', srcs=['bar.cc'])"); reporter.removeHandler(failFastHandler); // expect errors - update(defaultFlags().with(Flag.KEEP_GOING), "//conflict:x", "//conflict:_objs/x/foo.pic.o"); + update(defaultFlags().with(Flag.KEEP_GOING), + "//conflict:x", "//conflict:_objs/x/conflict/foo.pic.o"); ConfiguredTarget a = getConfiguredTarget("//conflict:x"); - ConfiguredTarget b = getConfiguredTarget("//conflict:_objs/x/foo.pic.o"); + ConfiguredTarget b = getConfiguredTarget("//conflict:_objs/x/conflict/foo.pic.o"); assertThat(hasTopLevelAnalysisError(a) ^ hasTopLevelAnalysisError(b)).isTrue(); } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java index 92a90c556f..90bc03bb9f 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java @@ -928,18 +928,18 @@ public class BuildViewTest extends BuildViewTestBase { } useConfiguration("--cpu=k8"); reporter.removeHandler(failFastHandler); // Expect errors from action conflicts. - scratch.file( - "conflict/BUILD", + scratch.file("conflict/BUILD", "config_setting(name = 'a', values = {'test_arg': 'a'})", "cc_library(name='x', srcs=select({':a': ['a.cc'], '//conditions:default': ['foo.cc']}))", - "cc_binary(name='_objs/x/foo.pic.o', srcs=['bar.cc'])"); - AnalysisResult result = - update( - defaultFlags().with(Flag.KEEP_GOING), "//conflict:_objs/x/foo.pic.o", "//conflict:x"); + "cc_binary(name='_objs/x/conflict/foo.pic.o', srcs=['bar.cc'])"); + AnalysisResult result = update( + defaultFlags().with(Flag.KEEP_GOING), + "//conflict:_objs/x/conflict/foo.pic.o", + "//conflict:x"); assertThat(result.hasError()).isTrue(); // Expect to reach this line without a Precondition-triggered NullPointerException. assertContainsEvent( - "file 'conflict/_objs/x/foo.pic.o' is generated by these conflicting actions"); + "file 'conflict/_objs/x/conflict/foo.pic.o' is generated by these conflicting actions"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java b/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java index 25b338d6c7..70fe4e0ee5 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java @@ -124,7 +124,7 @@ public class ToolchainTypeTest extends BuildViewTestCase { .setList("copts", "foobar$(TARGET_CPU)") .write(); CppCompileAction compileAction = - (CppCompileAction) getGeneratingAction(getBinArtifact("_objs/cclib/a.o", cclibrary)); + (CppCompileAction) getGeneratingAction(getBinArtifact("_objs/cclib/cclib/a.o", cclibrary)); assertThat(compileAction.getArguments()).contains("foobarpiii"); ConfiguredTarget ccbinary = @@ -133,7 +133,7 @@ public class ToolchainTypeTest extends BuildViewTestCase { .setList("copts", "foobar$(TARGET_CPU)") .write(); compileAction = - (CppCompileAction) getGeneratingAction(getBinArtifact("_objs/ccbin/a.o", ccbinary)); + (CppCompileAction) getGeneratingAction(getBinArtifact("_objs/ccbin/ccbin/a.o", ccbinary)); assertThat(compileAction.getArguments()).contains("foobarpiii"); ConfiguredTarget cctest = @@ -142,7 +142,7 @@ public class ToolchainTypeTest extends BuildViewTestCase { .setList("copts", "foobar$(TARGET_CPU)") .write(); compileAction = - (CppCompileAction) getGeneratingAction(getBinArtifact("_objs/cctest/a.o", cctest)); + (CppCompileAction) getGeneratingAction(getBinArtifact("_objs/cctest/cctest/a.o", cctest)); assertThat(compileAction.getArguments()).contains("foobarpiii"); } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index 85ae2d6360..c10d2c4e91 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java @@ -401,15 +401,17 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { useConfiguration("--cpu=k8"); // ArtifactsToAlwaysBuild should apply both for static libraries. ConfiguredTarget helloStatic = getConfiguredTarget("//hello:hello_static"); - assertThat(artifactsToStrings(getOutputGroup(helloStatic, OutputGroupInfo.HIDDEN_TOP_LEVEL))) - .containsExactly("bin hello/_objs/hello_static/hello.pic.o"); + assertThat( + artifactsToStrings(getOutputGroup(helloStatic, OutputGroupInfo.HIDDEN_TOP_LEVEL))) + .containsExactly("bin hello/_objs/hello_static/hello/hello.pic.o"); Artifact implSharedObject = getBinArtifact("libhello_static.so", helloStatic); assertThat(getFilesToBuild(helloStatic)).doesNotContain(implSharedObject); // And for shared libraries. ConfiguredTarget hello = getConfiguredTarget("//hello:hello"); - assertThat(artifactsToStrings(getOutputGroup(helloStatic, OutputGroupInfo.HIDDEN_TOP_LEVEL))) - .containsExactly("bin hello/_objs/hello_static/hello.pic.o"); + assertThat( + artifactsToStrings(getOutputGroup(helloStatic, OutputGroupInfo.HIDDEN_TOP_LEVEL))) + .containsExactly("bin hello/_objs/hello_static/hello/hello.pic.o"); implSharedObject = getBinArtifact("libhello.so", hello); assertThat(getFilesToBuild(hello)).contains(implSharedObject); } @@ -424,7 +426,9 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { "cc_library(name = 'z', srcs = ['z.cc'])"); assertThat(artifactsToStrings(getOutputGroup(x, OutputGroupInfo.HIDDEN_TOP_LEVEL))) .containsExactly( - "bin foo/_objs/x/x.pic.o", "bin foo/_objs/y/y.pic.o", "bin foo/_objs/z/z.pic.o"); + "bin foo/_objs/x/foo/x.pic.o", + "bin foo/_objs/y/foo/y.pic.o", + "bin foo/_objs/z/foo/z.pic.o"); } @Test @@ -553,7 +557,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { " textual_hdrs = ['t.h'],", ")"); getConfiguredTarget("//module:b"); - Artifact bModuleArtifact = getBinArtifact("_objs/b/b.pic.pcm", "//module:b"); + Artifact bModuleArtifact = getBinArtifact("_objs/b/module/b.pic.pcm", "//module:b"); CppCompileAction bModuleAction = (CppCompileAction) getGeneratingAction(bModuleArtifact); assertThat(bModuleAction.getIncludeScannerSources()).containsExactly( getSourceArtifact("module/b.h"), getSourceArtifact("module/t.h")); @@ -561,12 +565,12 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { getGenfilesArtifactWithNoOwner("module/b.cppmap")); getConfiguredTarget("//module:a"); - Artifact aObjectArtifact = getBinArtifact("_objs/a/a.pic.o", "//module:a"); + Artifact aObjectArtifact = getBinArtifact("_objs/a/module/a.pic.o", "//module:a"); CppCompileAction aObjectAction = (CppCompileAction) getGeneratingAction(aObjectArtifact); assertThat(aObjectAction.getIncludeScannerSources()).containsExactly( getSourceArtifact("module/a.cc")); assertThat(aObjectAction.getCcCompilationContextInfo().getTransitiveModules(true)) - .contains(getBinArtifact("_objs/b/b.pic.pcm", "//module:b")); + .contains(getBinArtifact("_objs/b/module/b.pic.pcm", "//module:b")); assertThat(aObjectAction.getInputs()).contains( getGenfilesArtifactWithNoOwner("module/b.cppmap")); assertNoEvents(); @@ -705,8 +709,9 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { // The //nomodule:f target only depends on non-module targets, thus it should be module-free. getConfiguredTarget("//nomodule:f"); - assertThat(getGeneratingAction(getBinArtifact("_objs/f/f.pic.pcm", "//nomodule:f"))).isNull(); - Artifact fObjectArtifact = getBinArtifact("_objs/f/f.pic.o", "//nomodule:f"); + assertThat(getGeneratingAction(getBinArtifact("_objs/f/nomodule/f.pic.pcm", "//nomodule:f"))) + .isNull(); + Artifact fObjectArtifact = getBinArtifact("_objs/f/nomodule/f.pic.o", "//nomodule:f"); CppCompileAction fObjectAction = (CppCompileAction) getGeneratingAction(fObjectArtifact); // Only the module map of f itself itself and the direct dependencies are needed. assertThat(getNonSystemModuleMaps(fObjectAction.getInputs())).containsExactly( @@ -720,8 +725,9 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { // The //nomodule:c target will get the header module for //module:b, which is a direct // dependency. getConfiguredTarget("//nomodule:c"); - assertThat(getGeneratingAction(getBinArtifact("_objs/c/c.pic.pcm", "//nomodule:c"))).isNull(); - Artifact cObjectArtifact = getBinArtifact("_objs/c/c.pic.o", "//nomodule:c"); + assertThat(getGeneratingAction(getBinArtifact("_objs/c/nomodule/c.pic.pcm", "//nomodule:c"))) + .isNull(); + Artifact cObjectArtifact = getBinArtifact("_objs/c/nomodule/c.pic.o", "//nomodule:c"); CppCompileAction cObjectAction = (CppCompileAction) getGeneratingAction(cObjectArtifact); assertThat(getNonSystemModuleMaps(cObjectAction.getInputs())).containsExactly( getGenfilesArtifact("b.cppmap", "//module:b"), @@ -737,8 +743,9 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { // The //nomodule:d target depends on //module:b via one indirection (//nomodule:c). getConfiguredTarget("//nomodule:d"); - assertThat(getGeneratingAction(getBinArtifact("_objs/d/d.pic.pcm", "//nomodule:d"))).isNull(); - Artifact dObjectArtifact = getBinArtifact("_objs/d/d.pic.o", "//nomodule:d"); + assertThat(getGeneratingAction(getBinArtifact("_objs/d/nomodule/d.pic.pcm", "//nomodule:d"))) + .isNull(); + Artifact dObjectArtifact = getBinArtifact("_objs/d/nomodule/d.pic.o", "//nomodule:d"); CppCompileAction dObjectAction = (CppCompileAction) getGeneratingAction(dObjectArtifact); // Module map 'c.cppmap' is needed because it is a direct dependency. assertThat(getNonSystemModuleMaps(dObjectAction.getInputs())).containsExactly( @@ -752,14 +759,14 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { // The //module:j target depends on //module:g via //nomodule:h and on //module:b via // both //module:g and //nomodule:c. getConfiguredTarget("//module:j"); - Artifact jObjectArtifact = getBinArtifact("_objs/j/j.pic.o", "//module:j"); + Artifact jObjectArtifact = getBinArtifact("_objs/j/module/j.pic.o", "//module:j"); CppCompileAction jObjectAction = (CppCompileAction) getGeneratingAction(jObjectArtifact); assertThat( getHeaderModules( jObjectAction.getCcCompilationContextInfo().getTransitiveModules(true))) .containsExactly( - getBinArtifact("_objs/b/b.pic.pcm", "//module:b"), - getBinArtifact("_objs/g/g.pic.pcm", "//module:g")); + getBinArtifact("_objs/b/module/b.pic.pcm", "//module:b"), + getBinArtifact("_objs/g/module/g.pic.pcm", "//module:g")); assertThat(jObjectAction.getIncludeScannerSources()).containsExactly( getSourceArtifact("module/j.cc")); assertThat(jObjectAction.getMainIncludeScannerSource()).isEqualTo( @@ -768,8 +775,8 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { getHeaderModules( jObjectAction.getCcCompilationContextInfo().getTransitiveModules(true))) .containsExactly( - getBinArtifact("_objs/b/b.pic.pcm", "//module:b"), - getBinArtifact("_objs/g/g.pic.pcm", "//module:g")); + getBinArtifact("_objs/b/module/b.pic.pcm", "//module:b"), + getBinArtifact("_objs/g/module/g.pic.pcm", "//module:g")); } @Test @@ -781,7 +788,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { setupPackagesForModuleTests( /*useHeaderModules=*/true); getConfiguredTarget("//nomodule:f"); - Artifact fObjectArtifact = getBinArtifact("_objs/f/f.pic.o", "//nomodule:f"); + Artifact fObjectArtifact = getBinArtifact("_objs/f/nomodule/f.pic.o", "//nomodule:f"); CppCompileAction fObjectAction = (CppCompileAction) getGeneratingAction(fObjectArtifact); // Only the module map of f itself itself and the direct dependencies are needed. assertThat(getNonSystemModuleMaps(fObjectAction.getInputs())) @@ -790,7 +797,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { getGenfilesArtifact("e.cppmap", "//nomodule:e")); getConfiguredTarget("//nomodule:c"); - Artifact cObjectArtifact = getBinArtifact("_objs/c/c.pic.o", "//nomodule:c"); + Artifact cObjectArtifact = getBinArtifact("_objs/c/nomodule/c.pic.o", "//nomodule:c"); CppCompileAction cObjectAction = (CppCompileAction) getGeneratingAction(cObjectArtifact); assertThat(getNonSystemModuleMaps(cObjectAction.getInputs())) .containsExactly( @@ -799,10 +806,10 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat( getHeaderModules( cObjectAction.getCcCompilationContextInfo().getTransitiveModules(true))) - .containsExactly(getBinArtifact("_objs/b/b.pic.pcm", "//module:b")); + .containsExactly(getBinArtifact("_objs/b/module/b.pic.pcm", "//module:b")); getConfiguredTarget("//nomodule:d"); - Artifact dObjectArtifact = getBinArtifact("_objs/d/d.pic.o", "//nomodule:d"); + Artifact dObjectArtifact = getBinArtifact("_objs/d/nomodule/d.pic.o", "//nomodule:d"); CppCompileAction dObjectAction = (CppCompileAction) getGeneratingAction(dObjectArtifact); assertThat(getNonSystemModuleMaps(dObjectAction.getInputs())) .containsExactly( @@ -811,7 +818,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat( getHeaderModules( dObjectAction.getCcCompilationContextInfo().getTransitiveModules(true))) - .containsExactly(getBinArtifact("_objs/b/b.pic.pcm", "//module:b")); + .containsExactly(getBinArtifact("_objs/b/module/b.pic.pcm", "//module:b")); } private void writeSimpleCcLibrary() throws Exception { @@ -924,7 +931,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { useConfiguration("--features=parse_headers"); ConfiguredTarget x = scratchConfiguredTarget("x", "x", "cc_library(name = 'x', hdrs = ['x.cc'])"); - assertThat(getGeneratingAction(getBinArtifact("_objs/x/.pic.o", x))).isNull(); + assertThat(getGeneratingAction(getBinArtifact("_objs/x/x/x.pic.o", x))).isNull(); } @Test @@ -1086,7 +1093,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { useConfiguration(flags); scratch.overwriteFile("mode/BUILD", "cc_library(name = 'a', srcs = ['a.cc'])"); getConfiguredTarget("//mode:a"); - Artifact objectArtifact = getBinArtifact("_objs/a/a.pic.o", "//mode:a"); + Artifact objectArtifact = getBinArtifact("_objs/a/mode/a.pic.o", "//mode:a"); CppCompileAction action = (CppCompileAction) getGeneratingAction(objectArtifact); return action.getCompilerOptions(); } @@ -1121,10 +1128,10 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { String objectPath; if (useHost) { target = getHostConfiguredTarget("//mode:a"); - objectPath = "_objs/a/a.o"; + objectPath = "_objs/a/mode/a.o"; } else { target = getConfiguredTarget("//mode:a"); - objectPath = "_objs/a/a.pic.o"; + objectPath = "_objs/a/mode/a.pic.o"; } Artifact objectArtifact = getBinArtifact(objectPath, target); CppCompileAction action = (CppCompileAction) getGeneratingAction(objectArtifact); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java index 153c4ed4c7..2714ef51c9 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CompileBuildVariablesTest.java @@ -62,7 +62,7 @@ public class CompileBuildVariablesTest extends BuildViewTestCase { assertThat(variables.getStringVariable(CompileBuildVariables.SOURCE_FILE.getVariableName())) .contains("x/bin.cc"); assertThat(variables.getStringVariable(CompileBuildVariables.OUTPUT_FILE.getVariableName())) - .contains("_objs/bin/bin"); + .contains("x/bin"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java index 556a15690e..beb473470b 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionTest.java @@ -253,7 +253,7 @@ public class CppLinkActionTest extends BuildViewTestCase { configuredTarget = getConfiguredTarget("//x:b"); linkAction = (CppLinkAction) getGeneratingAction(configuredTarget, "x/b" + extension); - assertThat(artifactsToStrings(linkAction.getInputs())).contains("bin x/_objs/b/a.pic.o"); + assertThat(artifactsToStrings(linkAction.getInputs())).contains("bin x/_objs/b/x/a.pic.o"); runfilesProvider = configuredTarget.getProvider(RunfilesProvider.class); assertThat(artifactsToStrings(runfilesProvider.getDefaultRunfiles().getArtifacts())) .containsExactly("bin x/b"); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java index a7e515403b..1eed5db619 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LinkBuildVariablesTest.java @@ -163,13 +163,13 @@ public class LinkBuildVariablesTest extends LinkBuildVariablesTestCase { LtoBackendAction backendAction = (LtoBackendAction) - getPredecessorByInputName(linkAction, "x/libfoo.so.lto/x/_objs/foo/a.pic.o"); + getPredecessorByInputName(linkAction, "x/libfoo.so.lto/x/_objs/foo/x/a.pic.o"); assertThat(backendAction.getMnemonic()).isEqualTo("CcLtoBackendCompile"); CppLinkAction indexAction = (CppLinkAction) getPredecessorByInputName( - backendAction, "x/libfoo.so.lto/x/_objs/foo/a.pic.o.thinlto.bc"); + backendAction, "x/libfoo.so.lto/x/_objs/foo/x/a.pic.o.thinlto.bc"); Variables variables = indexAction.getLinkCommandLine().getBuildVariables(); String interfaceLibraryBuilder = @@ -255,13 +255,13 @@ public class LinkBuildVariablesTest extends LinkBuildVariablesTestCase { LtoBackendAction backendAction = (LtoBackendAction) - getPredecessorByInputName(linkAction, "x/libfoo.so.lto/x/_objs/foo/a.pic.o"); + getPredecessorByInputName(linkAction, "x/libfoo.so.lto/x/_objs/foo/x/a.pic.o"); assertThat(backendAction.getMnemonic()).isEqualTo("CcLtoBackendCompile"); CppLinkAction indexAction = (CppLinkAction) getPredecessorByInputName( - backendAction, "x/libfoo.so.lto/x/_objs/foo/a.pic.o.thinlto.bc"); + backendAction, "x/libfoo.so.lto/x/_objs/foo/x/a.pic.o.thinlto.bc"); Variables variables = indexAction.getLinkCommandLine().getBuildVariables(); assertThat(variables.isAvailable(LinkBuildVariables.OUTPUT_EXECPATH.getVariableName())) diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java index 7417def1e5..2e96850a9b 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/BazelJ2ObjcLibraryTest.java @@ -999,7 +999,9 @@ public class BazelJ2ObjcLibraryTest extends J2ObjcLibraryTest { assertThat(objectFilesFromGenJar.isTreeArtifact()).isTrue(); assertThat(objectFilesFromGenJar.getRootRelativePathString()) - .isEqualTo("java/com/google/app/test/_objs/test/non_arc/source_files"); + .isEqualTo( + "java/com/google/app/test/_objs/test/java/com/google/app/test/_j2objc/" + + "src_jar_files/test/source_files"); ActionAnalysisMetadata actionTemplate = getActionGraph().getGeneratingAction(objectFilesFromGenJar); diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java index 3f6279e907..8226bc1bc8 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java @@ -119,7 +119,7 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { assertThat(Artifact.toRootRelativePaths(compileA.getPossibleInputsForTesting())) .containsAllOf("objc/a.m", "objc/hdr.h", "objc/private.h"); assertThat(Artifact.toRootRelativePaths(compileA.getOutputs())) - .containsExactly("objc/_objs/x/arc/a.o", "objc/_objs/x/arc/a.d"); + .containsExactly("objc/_objs/x/objc/a.o", "objc/_objs/x/objc/a.d"); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java index abe96c3165..218f1009f2 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java @@ -737,10 +737,14 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase { Artifact protoHeaderC = getBinArtifact("_generated_protos/x/protos/DataC.pbobjc.h", topTarget); Artifact protoHeaderD = getBinArtifact("_generated_protos/x/protos/DataD.pbobjc.h", topTarget); - Artifact protoObjectA = getBinArtifact("_objs/x/non_arc/DataA.pbobjc.o", topTarget); - Artifact protoObjectB = getBinArtifact("_objs/x/non_arc/DataB.pbobjc.o", topTarget); - Artifact protoObjectC = getBinArtifact("_objs/x/non_arc/DataC.pbobjc.o", topTarget); - Artifact protoObjectD = getBinArtifact("_objs/x/non_arc/DataD.pbobjc.o", topTarget); + Artifact protoObjectA = + getBinArtifact("_objs/x/x/_generated_protos/x/protos/DataA.pbobjc.o", topTarget); + Artifact protoObjectB = + getBinArtifact("_objs/x/x/_generated_protos/x/protos/DataB.pbobjc.o", topTarget); + Artifact protoObjectC = + getBinArtifact("_objs/x/x/_generated_protos/x/protos/DataC.pbobjc.o", topTarget); + Artifact protoObjectD = + getBinArtifact("_objs/x/x/_generated_protos/x/protos/DataD.pbobjc.o", topTarget); CommandAction protoObjectActionA = (CommandAction) getGeneratingAction(protoObjectA); CommandAction protoObjectActionB = (CommandAction) getGeneratingAction(protoObjectB); @@ -766,7 +770,8 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase { private void assertCoptsAndDefinesNotPropagatedToProtos(ConfiguredTarget topTarget) throws Exception { - Artifact protoObject = getBinArtifact("_objs/x/non_arc/DataA.pbobjc.o", topTarget); + Artifact protoObject = + getBinArtifact("_objs/x/x/_generated_protos/x/protos/DataA.pbobjc.o", topTarget); CommandAction protoObjectAction = (CommandAction) getGeneratingAction(protoObject); assertThat(protoObjectAction).isNotNull(); assertThat(protoObjectAction.getArguments()) |