diff --git a/e2e/test/BUILD.bazel b/e2e/test/BUILD.bazel index 161fc7b0f5c2db9d9700099d00553bb4ee223fd0..f107770dd2a8876206e8656400476060a021c28d 100644 --- a/e2e/test/BUILD.bazel +++ b/e2e/test/BUILD.bazel @@ -1,3 +1,4 @@ +load("@bazel_skylib//rules:write_file.bzl", "write_file") load("@rules_labgrid//labgrid/test:defs.bzl", "labgrid_test") load("@rules_python//python:defs.bzl", "py_binary") @@ -11,6 +12,30 @@ py_binary( labgrid_test( name = "test", + size = "small", src = ":inner", platform = "@rules_labgrid//labgrid/platform:localhost", ) + +write_file( + name = "greeting", + out = "greeting.py", + content = [ + "from os import environ", + "assert environ.get('GREETING') == 'hello'", + ], +) + +py_binary( + name = "inner-with-env", + srcs = ["greeting.py"], + env = {"GREETING": "hello"}, + main = "greeting.py", +) + +labgrid_test( + name = "forward-env-test", + size = "small", + src = ":inner-with-env", + platform = "@rules_labgrid//labgrid/platform:localhost", +) diff --git a/labgrid/test/rule.bzl b/labgrid/test/rule.bzl index c14f842fd09807baee21a43bbd872cc77e5540a9..e0f899427f685a9a596fd76b2e378817f5b90f15 100644 --- a/labgrid/test/rule.bzl +++ b/labgrid/test/rule.bzl @@ -39,6 +39,11 @@ def _runfile(label, file): return path.removeprefix("../") return "{}/{}".format(label.workspace_name or "_main", path) +def _run_env(target): + if RunEnvironmentInfo in target: + return target[RunEnvironmentInfo].environment + return {} + def _env(pair): key, value = pair return ["--env", "{}={}".format(key, value)] @@ -48,7 +53,7 @@ def _get(pair): return ["--get", "{}:{}".format(key, value)] def implementation(ctx): - env = { + env = _run_env(ctx.attr.src) | { "XML_OUTPUT_FILE": "results.xml", "BAZEL_TEST": "1", }