diff options
author | kchodorow <kchodorow@google.com> | 2017-03-30 16:45:03 +0000 |
---|---|---|
committer | Philipp Wollermann <philwo@google.com> | 2017-03-31 17:09:07 +0200 |
commit | 1d9e1ac90197b1d3d7b137ba3c1ada67bb9ba31b (patch) | |
tree | e1fd678b5e641169c50762929b7641a17b4e147f /src/test | |
parent | ea6f209f88e4292f0af5b75ef6872e1902eaeccd (diff) |
Symlink output directories to the correct directory name
If the workspace directory is /path/to/my/proj and the name in the WORKSPACE
file is "floop", this will symlink the output directories to
output_base/execroot/floop instead of output_base/execroot/proj.
More prep for #1262, fixes #1681.
PiperOrigin-RevId: 151712384
Diffstat (limited to 'src/test')
9 files changed, 30 insertions, 22 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java index 0410e5ce50..5f58462fc6 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/actions/SymlinkActionTest.java @@ -24,6 +24,7 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.Executor; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.exec.util.TestExecutorBuilder; +import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import org.junit.Before; @@ -47,7 +48,8 @@ public class SymlinkActionTest extends BuildViewTestCase { public final void setUp() throws Exception { input = scratch.file("input.txt", "Hello, world."); inputArtifact = getSourceArtifact("input.txt"); - Path linkedInput = directories.getExecRoot().getRelative("input.txt"); + Path linkedInput = + directories.getExecRoot(TestConstants.WORKSPACE_NAME).getRelative("input.txt"); FileSystemUtils.createDirectoryAndParents(linkedInput.getParentDirectory()); linkedInput.createSymbolicLink(input); outputArtifact = getBinArtifactWithNoOwner("destination.txt"); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java index 6e7d1064b6..88f8f4a4aa 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java @@ -51,7 +51,8 @@ public class BuildConfigurationTest extends ConfigurationTestCase { BuildConfiguration config = create("--cpu=piii"); String outputDirPrefix = outputBase - + "/workspace/blaze-out/gcc-4.4.0-glibc-2.3.6-grte-piii-fastbuild"; + + "/" + config.getMainRepositoryName() + + "/blaze-out/gcc-4.4.0-glibc-2.3.6-grte-piii-fastbuild"; assertEquals(outputDirPrefix, config.getOutputDirectory(RepositoryName.MAIN).getPath().toString()); @@ -72,7 +73,8 @@ public class BuildConfigurationTest extends ConfigurationTestCase { } BuildConfiguration config = create("--platform_suffix=-test"); - assertEquals(outputBase + "/workspace/blaze-out/gcc-4.4.0-glibc-2.3.6-grte-k8-fastbuild-test", + assertEquals(outputBase + "/" + config.getMainRepositoryName() + + "/blaze-out/gcc-4.4.0-glibc-2.3.6-grte-k8-fastbuild-test", config.getOutputDirectory(RepositoryName.MAIN).getPath().toString()); } diff --git a/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java b/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java index 698a860e3d..23e678297b 100644 --- a/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java +++ b/src/test/java/com/google/devtools/build/lib/exec/util/TestExecutorBuilder.java @@ -29,6 +29,7 @@ import com.google.devtools.build.lib.exec.ExecutionOptions; import com.google.devtools.build.lib.exec.FileWriteStrategy; import com.google.devtools.build.lib.exec.SymlinkTreeStrategy; import com.google.devtools.build.lib.runtime.CommonCommandOptions; +import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.BlazeClock; import com.google.devtools.common.options.OptionsBase; import com.google.devtools.common.options.OptionsParser; @@ -96,7 +97,7 @@ public class TestExecutorBuilder { public BlazeExecutor build() throws ExecutorInitException { return new BlazeExecutor( - directories.getExecRoot(), + directories.getExecRoot(TestConstants.WORKSPACE_NAME), reporter, bus, BlazeClock.instance(), diff --git a/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java b/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java index 5b497450b3..32f5e2701f 100644 --- a/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java +++ b/src/test/java/com/google/devtools/build/lib/integration/util/IntegrationMock.java @@ -36,7 +36,8 @@ public class IntegrationMock { * Populates the _embedded_binaries/ directory, containing all binaries/libraries, by symlinking * directories#getEmbeddedBinariesRoot() to the test's runfiles tree. */ - public BinTools getIntegrationBinTools(BlazeDirectories directories) throws IOException { + public BinTools getIntegrationBinTools(BlazeDirectories directories, String workspaceName) + throws IOException { Path embeddedDir = directories.getEmbeddedBinariesRoot(); FileSystemUtils.createDirectoryAndParents(embeddedDir); @@ -61,6 +62,6 @@ public class IntegrationMock { } return BinTools.forIntegrationTesting( - directories, embeddedDir.toString(), TestConstants.EMBEDDED_TOOLS); + directories, embeddedDir.toString(), TestConstants.EMBEDDED_TOOLS, workspaceName); } } diff --git a/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java index 7e2baafc3b..c1a104d599 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/TestResultAnalyzerTest.java @@ -30,11 +30,9 @@ import com.google.devtools.build.lib.rules.test.TestRunnerAction; import com.google.devtools.build.lib.runtime.TerminalTestResultNotifier.TestSummaryOptions; import com.google.devtools.build.lib.testutil.Suite; import com.google.devtools.build.lib.testutil.TestSpec; -import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.view.test.TestStatus.BlazeTestStatus; import com.google.devtools.build.lib.view.test.TestStatus.TestResultData; import com.google.devtools.common.options.OptionsParser; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -48,12 +46,10 @@ public class TestResultAnalyzerTest { @Before public final void createMocks() throws Exception { - Path mockPath = mock(Path.class); OptionsParser testSpecificOptions = OptionsParser.newOptionsParser( TestSummaryOptions.class, ExecutionOptions.class); EventBus mockBus = mock(EventBus.class); underTest = new TestResultAnalyzer( - mockPath, testSpecificOptions.getOptions(TestSummaryOptions.class), testSpecificOptions.getOptions(ExecutionOptions.class), mockBus); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java index fbb1e644ef..e93669cdc2 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/WorkspaceNameFunctionTest.java @@ -55,8 +55,9 @@ public class WorkspaceNameFunctionTest extends BuildViewTestCase { reporter.removeHandler(failFastHandler); scratch.overwriteFile("WORKSPACE", "workspace(bad)"); assertThatEvaluationResult(eval()) - .hasEntryThat(key) - .isEqualTo(WorkspaceNameValue.withError()); + .hasErrorEntryForKeyThat(key) + .hasExceptionThat() + .isInstanceOf(NoSuchPackageException.class); assertContainsEvent("name 'bad' is not defined"); } @@ -77,9 +78,6 @@ public class WorkspaceNameFunctionTest extends BuildViewTestCase { public void testEqualsAndHashCode(){ new EqualsTester() .addEqualityGroup( - WorkspaceNameValue.withError(), - WorkspaceNameValue.withError()) - .addEqualityGroup( WorkspaceNameValue.withName("foo"), WorkspaceNameValue.withName("foo")) .addEqualityGroup( diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java index 5a31671b2d..720cb12654 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleContextTest.java @@ -730,7 +730,7 @@ public class SkylarkRuleContextTest extends SkylarkTestCase { assertThat(ruleClassProvider.getRunfilesPrefix()).isNotEmpty(); SkylarkRuleContext ruleContext = createRuleContext("//foo:foo"); Object result = evalRuleContextCode(ruleContext, "ruleContext.workspace_name"); - assertSame(result, ruleClassProvider.getRunfilesPrefix()); + assertEquals(result, ruleClassProvider.getRunfilesPrefix()); } @Test diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java index 10e76cd33d..a78c662c3b 100644 --- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java +++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java @@ -40,6 +40,7 @@ import com.google.devtools.build.lib.exec.ExecutionOptions; import com.google.devtools.build.lib.exec.SingleBuildFileCache; import com.google.devtools.build.lib.integration.util.IntegrationMock; import com.google.devtools.build.lib.rules.apple.AppleConfiguration; +import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.testutil.TestFileOutErr; import com.google.devtools.build.lib.testutil.TestUtils; import com.google.devtools.build.lib.util.BlazeClock; @@ -92,7 +93,7 @@ public class StandaloneSpawnStrategyTest { BlazeDirectories directories = new BlazeDirectories(outputBase, outputBase, workspaceDir, "mock-product-name"); // This call implicitly symlinks the integration bin tools into the exec root. - IntegrationMock.get().getIntegrationBinTools(directories); + IntegrationMock.get().getIntegrationBinTools(directories, TestConstants.WORKSPACE_NAME); OptionsParser optionsParser = OptionsParser.newOptionsParser(ExecutionOptions.class); optionsParser.parse("--verbose_failures"); @@ -101,9 +102,10 @@ public class StandaloneSpawnStrategyTest { ResourceManager resourceManager = ResourceManager.instanceForTestingOnly(); resourceManager.setAvailableResources( ResourceSet.create(/*memoryMb=*/1, /*cpuUsage=*/1, /*ioUsage=*/1, /*localTestCount=*/1)); + Path execRoot = directories.getExecRoot(TestConstants.WORKSPACE_NAME); this.executor = new BlazeExecutor( - directories.getExecRoot(), + execRoot, reporter, bus, BlazeClock.instance(), @@ -112,7 +114,7 @@ public class StandaloneSpawnStrategyTest { ImmutableMap.<String, SpawnActionContext>of( "", new StandaloneSpawnStrategy( - directories.getExecRoot(), false, "mock-product-name", resourceManager)), + execRoot, false, "mock-product-name", resourceManager)), ImmutableList.<ActionContextProvider>of()); executor.getExecRoot().createDirectory(); diff --git a/src/test/shell/integration/runfiles_test.sh b/src/test/shell/integration/runfiles_test.sh index ef1faf0cf6..f8824fba11 100755 --- a/src/test/shell/integration/runfiles_test.sh +++ b/src/test/shell/integration/runfiles_test.sh @@ -140,9 +140,15 @@ EOF assert_equals 13 $(wc -l < MANIFEST) for i in $(find ${WORKSPACE_NAME} \! -type d); do - echo "$i $(readlink "$i")" - done >MANIFEST2 - diff -u <(sort MANIFEST) <(sort MANIFEST2) + if readlink "$i" > /dev/null; then + echo "$i $(readlink "$i")" >> ${TEST_TMPDIR}/MANIFEST2 + else + echo "$i " >> ${TEST_TMPDIR}/MANIFEST2 + fi + done + sort MANIFEST > ${TEST_TMPDIR}/MANIFEST_sorted + sort ${TEST_TMPDIR}/MANIFEST2 > ${TEST_TMPDIR}/MANIFEST2_sorted + diff -u ${TEST_TMPDIR}/MANIFEST_sorted ${TEST_TMPDIR}/MANIFEST2_sorted } function test_workspace_name_change() { |