aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2015-04-17 09:57:13 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-04-17 15:40:54 +0000
commit3e071282b5919f781f6211b671941dad9ee69625 (patch)
tree951355ebc59cc5ecc0606df72cd9b84c91aeb06a /src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
parent4d4555f135762015a68417339f81df6cd518c742 (diff)
Remove the full client environment from BuildConfiguration in favor of computing the test environment as early as possible, and passing that along.
-- MOS_MIGRATED_REVID=91388451
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
index 868f454579..2a0e87df96 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java
@@ -225,6 +225,29 @@ public final class BlazeRuntime {
private final ProjectFile.Provider projectFileProvider;
+ /**
+ * Returns user-specified test environment variables and their values, as
+ * set by the --test_env options.
+ *
+ * @param envOverrides The --test_env flag values.
+ * @param clientEnvironment The full client environment.
+ */
+ private static Map<String, String> computeTestEnv(List<Map.Entry<String, String>> envOverrides,
+ Map<String, String> clientEnvironment) {
+ Map<String, String> testEnv = new HashMap<>();
+ for (Map.Entry<String, String> var : envOverrides) {
+ if (var.getValue() != null) {
+ testEnv.put(var.getKey(), var.getValue());
+ } else {
+ String value = clientEnvironment.get(var.getKey());
+ if (value != null) {
+ testEnv.put(var.getKey(), value);
+ }
+ }
+ }
+ return testEnv;
+ }
+
private class BlazeModuleEnvironment implements BlazeModule.ModuleEnvironment {
@Override
public Path getFileFromDepot(Label label)
@@ -961,7 +984,10 @@ public final class BlazeRuntime {
*/
public BuildConfigurationKey getBuildConfigurationKey(BuildOptions buildOptions,
ImmutableSortedSet<String> multiCpu) {
- return new BuildConfigurationKey(buildOptions, directories, clientEnv, multiCpu);
+ Map<String, String> testEnv = computeTestEnv(
+ buildOptions.get(BuildConfiguration.Options.class).testEnvironment,
+ clientEnv);
+ return new BuildConfigurationKey(buildOptions, directories, testEnv, multiCpu);
}
/**