Skip to content

Commit 55ef9ed

Browse files
committed
Makefile updated to work with renamed jinja vars YAML file to stay inline with the compose file name used for a test.
1 parent a3fc004 commit 55ef9ed

2 files changed

Lines changed: 49 additions & 34 deletions

File tree

src/tests/multi-server/all.mk

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,20 @@
2626
# of the test-framework.
2727
#
2828

29-
# Find ENV compose file by stripping trailing "-suffix" chunks until a match exists.
30-
# Returns: environments/docker-compose/env-<base-without-test->.yml
31-
define FIND_ENV_COMPOSE
29+
# Find ENV compose template by stripping trailing "-suffix" chunks until a match exists.
30+
# Returns: environments/docker-compose/env-<base-without-test->.yml.j2
31+
define FIND_ENV_COMPOSE_J2
3232
$(strip $(shell \
3333
name='$(1)'; base="$$name"; \
3434
while :; do \
3535
env="environments/docker-compose/env-$${base#test-}.yml"; \
3636
envj2="$$env.j2"; \
3737
if [ -f "$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$envj2" ]; then \
38-
printf '%s' "$$env"; exit 0; \
39-
elif [ -f "$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$env" ]; then \
40-
printf '%s' "$$env"; exit 0; \
38+
printf '%s' "$$envj2"; exit 0; \
4139
fi; \
4240
newbase="$${base%-*}"; \
4341
if [ "$$newbase" = "$$base" ]; then \
44-
echo "ERROR: No matching env compose file for $(1) (tried $$env(.j2) and shorter prefixes)" 1>&2; \
42+
echo "ERROR: No matching env compose template for $(1) (expected $$env.j2 and shorter prefixes)" 1>&2; \
4543
exit 1; \
4644
fi; \
4745
base="$$newbase"; \
@@ -54,49 +52,66 @@ define MAKE_TEST_TARGET
5452
$(1): TEST_NAME := $(1)
5553
$(1): TEST_FILENAME := $$(TEST_NAME).yml
5654

57-
# Compute compose path by finding the longest matching base env file
58-
$(1): ENV_COMPOSE_PATH := $$(call FIND_ENV_COMPOSE,$$(TEST_NAME))
55+
# Compose template (must exist)
56+
$(1): ENV_COMPOSE_TEMPLATE_PATH := $$(call FIND_ENV_COMPOSE_J2,$$(TEST_NAME))
57+
58+
# Output compose file (strip .j2)
59+
$(1): ENV_COMPOSE_PATH := $$(patsubst %.j2,%,$$(ENV_COMPOSE_TEMPLATE_PATH))
60+
61+
# Stem: environments/docker-compose/env-5hs-autoaccept.yml -> 5hs-autoaccept
62+
$(1): ENV_STEM := $$(patsubst environments/docker-compose/env-%.yml,%,$$(ENV_COMPOSE_PATH))
63+
64+
# Vars aligned to stem
65+
$(1): VARS_FILE_REL ?= environments/jinja-vars/env-$$(ENV_STEM).vars.yml
5966

6067
$(1): clone
6168
@echo "MULTI_SERVER_BUILD_DIR_REL_PATH=$(MULTI_SERVER_BUILD_DIR_REL_PATH)"
6269
@echo "MULTI_SERVER_BUILD_DIR_ABS_PATH=$(MULTI_SERVER_BUILD_DIR_ABS_PATH)"
6370
@mkdir -p "$(MULTI_SERVER_BUILD_DIR_REL_PATH)/freeradius-listener-logs/$$(TEST_NAME)"
64-
@cd "$(FRAMEWORK_REPO_DIR)" && \
65-
git pull && \
66-
\
67-
$(MAKE) configure && \
68-
. ".venv/bin/activate" && \
71+
@bash -lc 'set -euo pipefail; \
72+
echo "INFO: entering framework repo: $(FRAMEWORK_REPO_DIR)"; \
73+
cd "$(FRAMEWORK_REPO_DIR)"; \
74+
git pull; \
75+
$(MAKE) configure; \
76+
. ".venv/bin/activate"; \
6977
\
7078
DATA_PATH="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs"; \
7179
LISTENER_DIR="$(MULTI_SERVER_BUILD_DIR_ABS_PATH)/freeradius-listener-logs/$$(TEST_NAME)"; \
80+
INCLUDE_PATH_ABS="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)"; \
81+
VARS_FILE_ABS="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(VARS_FILE_REL)"; \
82+
ENV_COMPOSE_TEMPLATE_ABS="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(ENV_COMPOSE_TEMPLATE_PATH)"; \
83+
ENV_COMPOSE_ABS="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(ENV_COMPOSE_PATH)"; \
84+
TEST_ABS="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(TEST_FILENAME)"; \
7285
\
73-
echo "INFO: TEST_FILENAME=$$(TEST_FILENAME)"; \
7486
echo "INFO: TEST_NAME=$$(TEST_NAME)"; \
87+
echo "INFO: TEST_FILENAME=$$(TEST_FILENAME)"; \
88+
echo "INFO: TEST_ABS=$$TEST_ABS"; \
89+
echo "INFO: ENV_COMPOSE_TEMPLATE_PATH=$$(ENV_COMPOSE_TEMPLATE_PATH)"; \
7590
echo "INFO: ENV_COMPOSE_PATH=$$(ENV_COMPOSE_PATH)"; \
76-
echo "INFO: MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH=$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)"; \
77-
echo "INFO: DATA_PATH=$$$$DATA_PATH"; \
78-
echo "INFO: MULTI_SERVER_BUILD_DIR_REL_PATH=$(MULTI_SERVER_BUILD_DIR_REL_PATH)"; \
91+
echo "INFO: ENV_STEM=$$(ENV_STEM)"; \
92+
echo "INFO: VARS_FILE_REL=$$(VARS_FILE_REL)"; \
93+
echo "INFO: VARS_FILE_ABS=$$$$VARS_FILE_ABS"; \
94+
echo "INFO: ENV_COMPOSE_TEMPLATE_ABS=$$$$ENV_COMPOSE_TEMPLATE_ABS"; \
95+
echo "INFO: ENV_COMPOSE_ABS=$$$$ENV_COMPOSE_ABS"; \
7996
echo "INFO: LISTENER_DIR=$$$$LISTENER_DIR"; \
8097
\
81-
CMD="python3 src/config_builder.py --vars-file $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/jinja-vars/env-loadgen-5hs-vars.yml --aux-file $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs/freeradius/homeserver/radiusd.conf.j2 --include-path $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)"; \
82-
echo "INFO: CMD = $$$$CMD"; \
83-
bash -c "$$$$CMD"; \
98+
test -f "$$$$VARS_FILE_ABS" || { echo "ERROR: Missing vars file: $$$$VARS_FILE_ABS" >&2; exit 1; }; \
99+
test -f "$$$$ENV_COMPOSE_TEMPLATE_ABS" || { echo "ERROR: Missing compose template: $$$$ENV_COMPOSE_TEMPLATE_ABS" >&2; exit 1; }; \
100+
test -f "$$$$TEST_ABS" || { echo "ERROR: Missing test file: $$$$TEST_ABS" >&2; exit 1; }; \
84101
\
85-
CMD="python3 src/config_builder.py --vars-file $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/jinja-vars/env-loadgen-5hs-vars.yml --aux-file $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs/freeradius/load-generator/radiusd.conf.j2 --include-path $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)"; \
86-
echo "INFO: CMD = $$$$CMD"; \
87-
bash -c "$$$$CMD"; \
102+
echo "INFO: Rendering homeserver radiusd.conf.j2"; \
103+
python3 src/config_builder.py --vars-file "$$$$VARS_FILE_ABS" --aux-file "$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs/freeradius/homeserver/radiusd.conf.j2" --include-path "$$$$INCLUDE_PATH_ABS"; \
88104
\
89-
CMD="python3 src/config_builder.py --vars-file $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/jinja-vars/env-loadgen-5hs-vars.yml --aux-file $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/docker-compose/env-5hs-autoaccept.yml.j2 --include-path $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)"; \
90-
echo "INFO: CMD = $$$$CMD"; \
91-
bash -c "$$$$CMD"; \
105+
echo "INFO: Rendering load-generator radiusd.conf.j2"; \
106+
python3 src/config_builder.py --vars-file "$$$$VARS_FILE_ABS" --aux-file "$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs/freeradius/load-generator/radiusd.conf.j2" --include-path "$$$$INCLUDE_PATH_ABS"; \
92107
\
93-
test -f "$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(ENV_COMPOSE_PATH)" || { \
94-
echo "ERROR: Missing compose file: $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(ENV_COMPOSE_PATH)"; \
95-
exit 1; \
96-
} && \
97-
CMD="DATA_PATH=$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs make test-framework -- -x -v --compose $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(ENV_COMPOSE_PATH) --test $(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)$$(TEST_FILENAME) --use-files --listener-dir $$$$LISTENER_DIR"; \
98-
echo "INFO: CMD = $$$$CMD"; \
99-
bash -c "$$$$CMD"
108+
echo "INFO: Rendering docker-compose env from template"; \
109+
python3 src/config_builder.py --vars-file "$$$$VARS_FILE_ABS" --aux-file "$$$$ENV_COMPOSE_TEMPLATE_ABS" --include-path "$$$$INCLUDE_PATH_ABS"; \
110+
\
111+
test -f "$$$$ENV_COMPOSE_ABS" || { echo "ERROR: Compose file was not generated: $$$$ENV_COMPOSE_ABS" >&2; exit 1; }; \
112+
\
113+
echo "INFO: Running test-framework"; \
114+
DATA_PATH="$(MULTI_SERVER_TESTS_BASE_DIR_ABS_PATH)environments/configs" make test-framework -- -x -v --compose "$$$$ENV_COMPOSE_ABS" --test "$$$$TEST_ABS" --use-files --listener-dir "$$$$LISTENER_DIR"'
100115
endef
101116

102117
# Set directory name where all.mk is located. Help with relative paths

src/tests/multi-server/environments/jinja-vars/env-loadgen-5hs-vars.yml renamed to src/tests/multi-server/environments/jinja-vars/env-5hs-autoaccept.vars.yml

File renamed without changes.

0 commit comments

Comments
 (0)