|
40 | 40 | import build.bazel.remote.execution.v2.OutputDirectory;
|
41 | 41 | import build.bazel.remote.execution.v2.OutputFile;
|
42 | 42 | import build.bazel.remote.execution.v2.OutputSymlink;
|
| 43 | +import build.bazel.remote.execution.v2.Platform; |
43 | 44 | import build.bazel.remote.execution.v2.RequestMetadata;
|
44 | 45 | import build.bazel.remote.execution.v2.SymlinkNode;
|
45 | 46 | import build.bazel.remote.execution.v2.Tree;
|
|
59 | 60 | import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
|
60 | 61 | import com.google.devtools.build.lib.actions.ArtifactRoot;
|
61 | 62 | import com.google.devtools.build.lib.actions.ArtifactRoot.RootType;
|
| 63 | +import com.google.devtools.build.lib.actions.ExecutionRequirements; |
62 | 64 | import com.google.devtools.build.lib.actions.FileArtifactValue.RemoteFileArtifactValue;
|
63 | 65 | import com.google.devtools.build.lib.actions.ResourceSet;
|
64 | 66 | import com.google.devtools.build.lib.actions.SimpleSpawn;
|
|
76 | 78 | import com.google.devtools.build.lib.events.Reporter;
|
77 | 79 | import com.google.devtools.build.lib.events.StoredEventHandler;
|
78 | 80 | import com.google.devtools.build.lib.exec.util.FakeOwner;
|
| 81 | +import com.google.devtools.build.lib.exec.util.SpawnBuilder; |
79 | 82 | import com.google.devtools.build.lib.remote.RemoteExecutionService.RemoteAction;
|
80 | 83 | import com.google.devtools.build.lib.remote.RemoteExecutionService.RemoteActionResult;
|
81 | 84 | import com.google.devtools.build.lib.remote.common.BulkTransferException;
|
@@ -164,6 +167,24 @@ public final void setUp() throws Exception {
|
164 | 167 | remoteActionExecutionContext = RemoteActionExecutionContext.create(metadata);
|
165 | 168 | }
|
166 | 169 |
|
| 170 | + @Test |
| 171 | + public void buildRemoteAction_differentiateWorkspace_generateActionSalt() throws Exception { |
| 172 | + Spawn spawn = |
| 173 | + new SpawnBuilder("dummy") |
| 174 | + .withExecutionInfo(ExecutionRequirements.DIFFERENTIATE_WORKSPACE_CACHE, "aa") |
| 175 | + .build(); |
| 176 | + FakeSpawnExecutionContext context = newSpawnExecutionContext(spawn); |
| 177 | + RemoteExecutionService service = newRemoteExecutionService(); |
| 178 | + |
| 179 | + RemoteAction remoteAction = service.buildRemoteAction(spawn, context); |
| 180 | + |
| 181 | + Platform expected = |
| 182 | + Platform.newBuilder() |
| 183 | + .addProperties(Platform.Property.newBuilder().setName("workspace").setValue("aa")) |
| 184 | + .build(); |
| 185 | + assertThat(remoteAction.getAction().getSalt()).isEqualTo(expected.toByteString()); |
| 186 | + } |
| 187 | + |
167 | 188 | @Test
|
168 | 189 | public void downloadOutputs_outputFiles_executableBitIgnored() throws Exception {
|
169 | 190 | // Test that executable bit of downloaded output files are ignored since it will be chmod 555
|
|
0 commit comments