Skip to content
Snippets Groups Projects
Commit c3dcfab5 authored by Simon Rose's avatar Simon Rose
Browse files

Rewrote env vars assignment

parent 55d23aeb
No related branches found
No related tags found
1 merge request!38E3-233: Add tests
...@@ -51,23 +51,23 @@ def test_patch(wrapper): ...@@ -51,23 +51,23 @@ def test_patch(wrapper):
rc, outs, _ = run_make( rc, outs, _ = run_make(
wrapper, wrapper,
"init", "init",
__DEBUG_VERSION=MODULE_VERSION, E3_MODULE_VERSION=MODULE_VERSION,
) )
assert rc == 0 assert rc == 0
assert "You are in the local source mode" in outs.decode("utf-8") assert "You are in the local source mode" in outs.decode("utf-8")
rc, _, _ = run_make(wrapper, "patch", __DEBUG_VERSION=MODULE_VERSION) rc, _, _ = run_make(wrapper, "patch", E3_MODULE_VERSION=MODULE_VERSION)
assert rc == 0 assert rc == 0
with open(db_path, "r") as f: with open(db_path, "r") as f:
db_contents = f.read() db_contents = f.read()
assert 'field(DESC, "OK")' in db_contents assert 'field(DESC, "OK")' in db_contents
assert not "Bad" in db_contents assert not "Bad" in db_contents
rc, _, _ = run_make(wrapper, "build", __DEBUG_VERSION=MODULE_VERSION) rc, _, _ = run_make(wrapper, "build", E3_MODULE_VERSION=MODULE_VERSION)
assert rc == 0 assert rc == 0
assert any((wrapper / TEST_MODULE_NAME).glob("O.*")) assert any((wrapper / TEST_MODULE_NAME).glob("O.*"))
rc, _, _ = run_make(wrapper, "cellinstall", __DEBUG_VERSION=MODULE_VERSION) rc, _, _ = run_make(wrapper, "cellinstall", E3_MODULE_VERSION=MODULE_VERSION)
assert rc == 0 assert rc == 0
assert any((wrapper / "cellMods").glob("**/*.db")) assert any((wrapper / "cellMods").glob("**/*.db"))
...@@ -78,6 +78,6 @@ def test_patch(wrapper): ...@@ -78,6 +78,6 @@ def test_patch(wrapper):
indirect=True, indirect=True,
) )
def test_missing_file(wrapper): def test_missing_file(wrapper):
rc, _, errs = run_make(wrapper, "build", __DEBUG_VERSION=MODULE_VERSION) rc, _, errs = run_make(wrapper, "build")
assert "No rule to make target `../nonexistent.dbd'" in errs.decode("utf-8") assert "No rule to make target `../nonexistent.dbd'" in errs.decode("utf-8")
assert rc == 2 assert rc == 2
...@@ -46,7 +46,7 @@ def test_version(wrapper, requested, expected, installed): ...@@ -46,7 +46,7 @@ def test_version(wrapper, requested, expected, installed):
wrapper, wrapper,
"clean", "clean",
"cellinstall", "cellinstall",
__DEBUG_VERSION=version, E3_MODULE_VERSION=version,
) )
print(o) print(o)
print(e) print(e)
......
...@@ -18,20 +18,6 @@ E3_REQUIRE_VERSION = os.environ.get("E3_REQUIRE_VERSION") ...@@ -18,20 +18,6 @@ E3_REQUIRE_VERSION = os.environ.get("E3_REQUIRE_VERSION")
CONFIG = f""" CONFIG = f"""
TOP:=$(CURDIR) TOP:=$(CURDIR)
# To configure require
EPICS_BASE:=$(__EPICS_BASE_LOCATION)
E3_REQUIRE_VERSION:=$(__REQUIRE_VERSION)
E3_REQUIRE_LOCATION := $(EPICS_BASE)/require/$(E3_REQUIRE_VERSION)
REQUIRE_CONFIG := $(E3_REQUIRE_LOCATION)/configure
# To configure the modules
EPICS_MODULE_NAME:={TEST_MODULE_NAME}
E3_MODULE_VERSION:=$(__DEBUG_VERSION)
E3_MODULE_NAME:=$(EPICS_MODULE_NAME)
E3_MODULE_SRC_PATH:=$(EPICS_MODULE_NAME)
E3_MODULE_MAKEFILE:=$(EPICS_MODULE_NAME).Makefile
include $(REQUIRE_CONFIG)/CONFIG include $(REQUIRE_CONFIG)/CONFIG
include $(REQUIRE_CONFIG)/RULES_SITEMODS include $(REQUIRE_CONFIG)/RULES_SITEMODS
""" """
...@@ -47,10 +33,30 @@ HEADERS += {headers} ...@@ -47,10 +33,30 @@ HEADERS += {headers}
""" """
def set_env_vars(env: dict) -> dict:
assert "EPICS_BASE" in env
assert Path(env["EPICS_BASE"]).is_dir
assert "E3_REQUIRE_VERSION" in env
assert env["E3_REQUIRE_VERSION"]
E3_REQUIRE_LOCATION = f"{EPICS_BASE}/require/{E3_REQUIRE_VERSION}"
assert Path(E3_REQUIRE_LOCATION).is_dir()
env["E3_REQUIRE_LOCATION"] = E3_REQUIRE_LOCATION
REQUIRE_CONFIG = f"{E3_REQUIRE_LOCATION}/configure"
env["REQUIRE_CONFIG"] = REQUIRE_CONFIG
# env["EPICS_MODULE_NAME"] = TEST_MODULE_NAME
env["E3_MODULE_NAME"] = TEST_MODULE_NAME
env["E3_MODULE_SRC_PATH"] = TEST_MODULE_NAME
env["E3_MODULE_MAKEFILE"] = f"{TEST_MODULE_NAME}.Makefile"
env["E3_MODULE_VERSION"] = "0.0.0"
return env
def run_make(path, *args, **kwargs): def run_make(path, *args, **kwargs):
test_env = os.environ.copy() test_env = set_env_vars(os.environ.copy())
test_env["__EPICS_BASE_LOCATION"] = EPICS_BASE
test_env["__REQUIRE_VERSION"] = E3_REQUIRE_VERSION
for kw in kwargs: for kw in kwargs:
test_env[kw] = kwargs[kw] test_env[kw] = kwargs[kw]
make_cmd = ["make", "-C", path] + list(args) make_cmd = ["make", "-C", path] + list(args)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment