Skip to content

Commit d4663a1

Browse files
ckolli5Googler
and
Googler
authored
Add repo env test (bazelbuild#15768)
Fix and test for null value bug when using --repo_env [Issue Link](bazelbuild#15430) Closes bazelbuild#15618. PiperOrigin-RevId: 457728307 Change-Id: I3d57ae4ac95de09215281bec51329b7baafd53af Co-authored-by: Googler <[email protected]>
1 parent 62be9ea commit d4663a1

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/main/java/com/google/devtools/build/lib/runtime/CommandEnvironment.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,8 @@ public void exit(AbruptExitException exception) {
262262
value = System.getenv(name);
263263
}
264264
if (value != null) {
265-
repoEnv.put(entry.getKey(), entry.getValue());
266-
repoEnvFromOptions.put(entry.getKey(), entry.getValue());
265+
repoEnv.put(name, value);
266+
repoEnvFromOptions.put(name, value);
267267
}
268268
}
269269
}

src/test/py/bazel/bazel_external_repository_test.py

+22
Original file line numberDiff line numberDiff line change
@@ -427,5 +427,27 @@ def testExternalBazelignoreContainingRepoName(self):
427427
args=['build', '@other_repo//:file'], cwd=work_dir)
428428
self.AssertExitCode(exit_code, 0, stderr)
429429

430+
def testRepoEnv(self):
431+
# Testing fix for issue: https://github.com/bazelbuild/bazel/issues/15430
432+
433+
self.ScratchFile('WORKSPACE', [
434+
'load("//:main.bzl", "dump_env")', 'dump_env(', ' name = "debug"',
435+
')'
436+
])
437+
self.ScratchFile('BUILD')
438+
self.ScratchFile('main.bzl', [
439+
'def _dump_env(ctx):', ' val = ctx.os.environ.get("FOO", "nothing")',
440+
' print("FOO", val)', ' ctx.file("BUILD")',
441+
'dump_env = repository_rule(', ' implementation = _dump_env,',
442+
' local = True,', ')'
443+
])
444+
445+
exit_code, _, stderr = self.RunBazel(
446+
args=['build', '@debug//:all', '--repo_env=FOO'],
447+
env_add={'FOO': 'bar'})
448+
self.AssertExitCode(exit_code, 0, stderr)
449+
self.assertIn('FOO bar', os.linesep.join(stderr))
450+
self.assertNotIn('null value in entry: FOO=null', os.linesep.join(stderr))
451+
430452
if __name__ == '__main__':
431453
unittest.main()

0 commit comments

Comments
 (0)