.PHONY: $(TEST).radiusd_start
$(TEST).radiusd_start: ${2}/radiusd.pid
+
+#
+# If this test framework needs radiusd to be started / stopped, then ensure that
+# the output files depend on the radiusd binary.
+#
+ifneq "$(FILES.$(TEST))" ""
+$(foreach x, $(FILES.$(TEST)), $(eval $(OUTPUT.$(TEST))/$x: $(TESTBINDIR)/radiusd $(TESTBINDIR)/$(CLIENT)))
+endif
+
endef
#
# Config settings
#
-RADMIN_BIN := $(TESTBINDIR)/radmin
RADMIN_RADIUS_LOG := $(OUTPUT)/radiusd.log
RADMIN_GDB_LOG := $(OUTPUT)/gdb.log
RADMIN_SOCKET_FILE := $(OUTPUT)/control-socket.sock
#
# Generic rules to start / stop the radius service.
#
+CLIENT := radmin
include src/tests/radiusd.mk
$(eval $(call RADIUSD_SERVICE,control-socket,$(OUTPUT)))
#
# Run the radmin commands against the radiusd.
#
-$(OUTPUT)/%: $(DIR)/% ${BUILD_DIR}/bin/radmin | test.radmin.radiusd_kill test.radmin.radiusd_start
+$(OUTPUT)/%: $(DIR)/% | test.radmin.radiusd_kill test.radmin.radiusd_start
@echo "RADMIN-TEST $(notdir $@)"
${Q} [ -f $(dir $@)/radiusd.pid ] || exit 1
$(eval EXPECTED := $(patsubst %.txt,%.out,$<))
$(eval FOUND := $(patsubst %.txt,%.out,$@))
$(eval TARGET := $(patsubst %.txt,%,$(notdir $@)))
- ${Q}if ! $(RADMIN_BIN) -q -f $(RADMIN_SOCKET_FILE) < $< > $(FOUND) 2>&1; then\
+ ${Q}if ! $(TESTBIN)/radmin -q -f $(RADMIN_SOCKET_FILE) < $< > $(FOUND) 2>&1; then\
echo "--------------------------------------------------"; \
tail -n 20 "$(RADMIN_RADIUS_LOG)"; \
echo "Last entries in server log ($(RADMIN_RADIUS_LOG)):"; \
echo "--------------------------------------------------"; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "RADMIN : $(RADMIN_BIN) -q -f $(RADMIN_SOCKET_FILE) < $< > $(FOUND)"; \
+ echo "RADMIN : $(TESTBIN)/radmin -q -f $(RADMIN_SOCKET_FILE) < $< > $(FOUND)"; \
$(MAKE) --no-print-directory test.radmin.radiusd_kill; \
exit 1; \
fi; \
if ! cmp -s $(FOUND) $(EXPECTED); then \
echo "RADMIN FAILED $@"; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "RADMIN : $(RADMIN_BIN) -q -f $(RADMIN_SOCKET_FILE) < $< > $(FOUND)"; \
+ echo "RADMIN : $(TESTBIN)/radmin -q -f $(RADMIN_SOCKET_FILE) < $< > $(FOUND)"; \
echo "ERROR: File $(FOUND) is not the same as $(EXPECTED)"; \
echo "If you did some update on the radmin code, please be sure to update the unit tests."; \
echo "e.g: $(EXPECTED)"; \