From 4d0e369bb315f61f0f59a0e2f2c10333f82b574e Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Mon, 24 Jun 2024 09:28:09 +0000 Subject: [PATCH] fix RELEASE file parsing --- src/ibek/support_cmds/checks.py | 2 +- .../db/{.placeholder => dummy.template} | 0 tests/samples/epics/support/configure/RELEASE | 3 ++- .../support/some-other-module/db/.placeholder | 0 tests/test_support.py | 23 +++++++++++++++++-- 5 files changed, 24 insertions(+), 4 deletions(-) rename tests/samples/epics/support/ADSimDetector/db/{.placeholder => dummy.template} (100%) create mode 100644 tests/samples/epics/support/some-other-module/db/.placeholder diff --git a/src/ibek/support_cmds/checks.py b/src/ibek/support_cmds/checks.py index ccdd00550..28b4462d6 100644 --- a/src/ibek/support_cmds/checks.py +++ b/src/ibek/support_cmds/checks.py @@ -15,7 +15,7 @@ SHELL_REPLACE = r"${\1}" # find macros, including ones with blank values -PARSE_MACROS_NULL = re.compile(r"^([A-Z_a-z0-9]*)\s*=(.*)$", flags=re.M) +PARSE_MACROS_NULL = re.compile(r"^([A-Z_\-\.a-z0-9]*)\s*=(.*)$", flags=re.M) def verify_release_includes_local(configure_folder: Path): diff --git a/tests/samples/epics/support/ADSimDetector/db/.placeholder b/tests/samples/epics/support/ADSimDetector/db/dummy.template similarity index 100% rename from tests/samples/epics/support/ADSimDetector/db/.placeholder rename to tests/samples/epics/support/ADSimDetector/db/dummy.template diff --git a/tests/samples/epics/support/configure/RELEASE b/tests/samples/epics/support/configure/RELEASE index dc97920fd..d90bbd5e0 100644 --- a/tests/samples/epics/support/configure/RELEASE +++ b/tests/samples/epics/support/configure/RELEASE @@ -9,4 +9,5 @@ SUPPORT=/epics/support EPICS_BASE=/epics/epics-base # Additional Support Modules for individual IOCs will be added below this line -ADSIMDETECTOR=/epics/support/ADSimDetector \ No newline at end of file +ADSIMDETECTOR=/epics/support/ADSimDetector +SOME-OTHER-MODULE=/epics/support/some-other-module \ No newline at end of file diff --git a/tests/samples/epics/support/some-other-module/db/.placeholder b/tests/samples/epics/support/some-other-module/db/.placeholder new file mode 100644 index 000000000..e69de29bb diff --git a/tests/test_support.py b/tests/test_support.py index 5c357f2af..2ae6a3994 100644 --- a/tests/test_support.py +++ b/tests/test_support.py @@ -4,7 +4,7 @@ import pytest -from ibek.support_cmds.checks import check_deps +from ibek.support_cmds.checks import check_deps, do_dependencies from ibek.support_cmds.files import symlink_files @@ -38,8 +38,27 @@ def test_symlink_pvi(tmp_path: Path, samples: Path): # the support files def test_check_dependencies(tmp_epics_root: Path): # Check Passes vs test data - check_deps(["ADSimDetector"]) + check_deps(["ADSimDetector", "some-other-module"]) # Check fails with pytest.raises(Exception): check_deps(["FakeDetector"]) + + +def test_check_release_sh(tmp_epics_root: Path): + """validate generation of RELEASE.sh for issue #227""" + + do_dependencies() + + release_sh = tmp_epics_root / "support" / "configure" / "RELEASE.shell" + assert release_sh.exists() + text = release_sh.read_text() + assert ( + text + == """export SUPPORT="/epics/support" +export EPICS_BASE="/epics/epics-base" +export ADSIMDETECTOR="/epics/support/ADSimDetector" +export SOME-OTHER-MODULE="/epics/support/some-other-module" +export EPICS_DB_INCLUDE_PATH="" +""" + )