cp -f $< $@.request; \
echo "Vendor-Specific.Test.Test-Name = \"$(TARGET)\"" >> $@.request; \
echo "Vendor-Specific.Test.Test-Number = \"$${_num}\"" >> $@.request; \
- if ! $(TEST_BIN)/radclient -f $@.request -xF -d src/tests/digest/config -D share/dictionary 127.0.0.1:$(PORT) auth $(SECRET) > $@.out; then \
+ if ! $(TEST_BIN)/radclient -f $@.request -xF -d src/tests/digest/config -D share/dictionary 127.0.0.1:$(digest_port) auth $(SECRET) > $@.out; then \
echo "FAILED"; \
cat $@.out; \
rm -f $(BUILD_DIR)/tests/test.digest; \
$(MAKE) --no-print-directory test.digest.radiusd_kill; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "RADCLIENT: $(TEST_BIN)/radclient -f $@.request -xF -d src/tests/digest/config -D share/dictionary 127.0.0.1:$(PORT) auth $(SECRET)"; \
+ echo "RADCLIENT: $(TEST_BIN)/radclient -f $@.request -xF -d src/tests/digest/config -D share/dictionary 127.0.0.1:$(digest_port) auth $(SECRET)"; \
exit 1; \
fi; \
touch $@; \
$(eval METHOD := $(notdir $(patsubst %.conf,%,$<)))
$(eval KEY := $(shell grep key_mgmt=NONE $< | sed 's/key_mgmt=NONE/-n/'))
$(eval RADIUS_LOG := $(dir $@)/test.$(METHOD)/radiusd.log)
+ $(eval TEST_PORT := $($(METHOD)_port))
@echo "EAPOL-TEST $(METHOD)"
${Q}$(MAKE) $(POST_INSTALL_MAKEFILE_ARG) --no-print-directory test.$(METHOD).radiusd_kill
- ${Q}PORT=`PRINT_PORT=1 $(MAKE) $(POST_INSTALL_MAKEFILE_ARG) --no-print-directory test.$(METHOD).radiusd_start`; \
- if ! $(EAPOL_TEST) -t 10 -c $< -p $${PORT} -s $(SECRET) $(KEY) > $(EAPOL_TEST_LOG) 2>&1; then \
+ ${Q}$(MAKE) $(POST_INSTALL_MAKEFILE_ARG) --no-print-directory test.$(METHOD).radiusd_start
+ ${Q}if ! $(EAPOL_TEST) -t 10 -c $< -p $(TEST_PORT) -s $(SECRET) $(KEY) > $(EAPOL_TEST_LOG) 2>&1; then \
echo "Last entries in supplicant log ($(EAPOL_TEST_LOG):"; \
tail -n 40 "$(EAPOL_TEST_LOG)"; \
echo "--------------------------------------------------"; \
tail -n 40 "$(RADIUS_LOG)"; \
echo "Last entries in server log ($(RADIUS_LOG)):"; \
echo "--------------------------------------------------"; \
- echo "RADIUSD : OUTPUT=$(dir $@) TESTDIR=$(dir $<) TEST=$(METHOD) TEST_PORT=$(PORT) $(RADIUSD_BIN) -fxxx -n servers -d $(dir $<)config -D $(DICT_PATH) -lstdout -f";\";\
- echo "EAPOL : $(EAPOL_TEST) -c \"$<\" -p $${PORT} -s $(SECRET) $(KEY) "; \
+ echo "RADIUSD : OUTPUT=$(dir $@) TESTDIR=$(dir $<) TEST=$(METHOD) TEST_PORT=$(TEST_PORT) $(RADIUSD_BIN) -fxxx -n servers -d $(dir $<)config -D $(DICT_PATH) -lstdout -f";\";\
+ echo "EAPOL : $(EAPOL_TEST) -c \"$<\" -p $(TEST_PORT) -s $(SECRET) $(KEY) "; \
echo " log is in $(OUT)"; \
rm -f $(BUILD_DIR)/tests/test.eap; \
$(MAKE) $(POST_INSTALL_MAKEFILE_ARG) --no-print-directory test.$(METHOD).radiusd_kill; \
$(Q)echo "RADCLIENT-TEST INPUT=$(TARGET) ARGV=\"$(ARGV)\""
$(Q)[ -f $(dir $@)/radiusd.pid ] || exit 1
- $(Q)if ! $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(PORT) $(TYPE) $(SECRET) 1> $(FOUND) 2>&1; then \
+ $(Q)if ! $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(radclient_port) $(TYPE) $(SECRET) 1> $(FOUND) 2>&1; then \
if [ "$(IGNORE_ERROR)" != "1" ]; then \
echo "FAILED"; \
cat $(FOUND); \
rm -f $(BUILD_DIR)/tests/test.radclient; \
$(MAKE) --no-print-directory test.radclient.radiusd_kill; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "RADCLIENT: $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -xF -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(PORT) $(TYPE) $(SECRET)"; \
+ echo "RADCLIENT: $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -xF -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(radclient_port) $(TYPE) $(SECRET)"; \
exit 1; \
fi; \
fi
$(Q)if [ -e "$(EXPECTED)" ] && ! diff -I 'Sent' -I 'Received' $(EXPECTED) $(FOUND); then \
echo "RADCLIENT FAILED $@"; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "RADCLIENT: $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(PORT) $(TYPE) $(SECRET)"; \
+ echo "RADCLIENT: $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(radclient_port) $(TYPE) $(SECRET)"; \
echo "ERROR: File $(FOUND) is not the same as $(EXPECTED)"; \
echo "If you did some update on the radclient code, please be sure to update the unit tests."; \
echo "e.g: $(EXPECTED)"; \
elif [ -e "$(CMD_TEST)" ] && ! $(SHELL) $(CMD_TEST); then \
echo "RADCLIENT FAILED $@"; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "RADCLIENT: $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(PORT) $(TYPE) $(SECRET)"; \
+ echo "RADCLIENT: $(TEST_BIN)/radclient $(ARGV) -C $(RADCLIENT_CLIENT_PORT) -f $< -d src/tests/radclient/config -D share/dictionary 127.0.0.1:$(radclient_port) $(TYPE) $(SECRET)"; \
echo "ERROR: The script $(CMD_TEST) can't validate the content of $(FOUND)"; \
echo "If you did some update on the radclient code, please be sure to update the unit tests."; \
rm -f $(BUILD_DIR)/tests/test.radclient; \
# ${1} config-name found in $(DIR)/config, e.g: src/tests/$target/config/${config-name}.conf
# ${2} output directory
#
+# - Global variables defined
+#
+# <test>_port Passing TEST=test.foo results in "foo_port" being set to the port assigned to the
+# radiusd instance created for the test suite.
+#
# - Available in calling rule
#
-# PORT The port the server started on
# RADIUSD_RUN The server invocation
#
# - How to use
define RADIUSD_SERVICE
$$(eval RADIUSD_BIN := $(JLIBTOOL) --silent --mode=execute $$(TEST_BIN)/radiusd)
-$$(eval PORT := $(shell echo $$(($(PORT)+1))))
+$(eval PORT := $(shell echo $$(($(PORT)+1))))
+$(eval $(subst test.,,$(TEST))_port := $(PORT))
#
# Kill it. We don't care if it failed or not. However, we do care
# Start radiusd instance
#
${2}/radiusd.pid: ${2}
- $$(eval PORT=$(PORT))
$$(eval RADIUSD_RUN := TESTDIR=$(DIR) OUTPUT=${2} TEST_PORT=$(PORT) TEST=$(subst test.,,$(TEST)) $$(RADIUSD_BIN) -Pxxx -d $(DIR)/config -n ${1} -D $(DICT_PATH) -l ${2}/radiusd.log)
${Q}rm -f ${2}/radiusd.log
${Q}if test ! -z "$$(PRINT_PORT)"; then \
$(eval ARGV := $(shell grep "#.*ARGV:" $< | cut -f2 -d ':'))
$(Q)echo "TACACS-TEST INPUT=$(TARGET) TACACS_ARGV=\"$(ARGV)\""
$(Q)[ -f $(dir $@)/radiusd.pid ] || exit 1
- $(Q)if ! $(TACCLIENT) --return-0-if-failed -v -k $(SECRET) -p $(PORT) -H localhost -r 192.168.69.1 -P pegapilha/0 --timeout 2 $(ARGV) 1> $(FOUND) 2>&1; then \
+ $(Q)if ! $(TACCLIENT) --return-0-if-failed -v -k $(SECRET) -p $(tacacs_port) -H localhost -r 192.168.69.1 -P pegapilha/0 --timeout 2 $(ARGV) 1> $(FOUND) 2>&1; then \
echo "FAILED"; \
cat $(FOUND); \
rm -f $(BUILD_DIR)/tests/test.tacacs; \
$(MAKE) --no-print-directory test.tacacs.radiusd_kill; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "TACCLIENT: $(TACCLIENT) --return-0-if-failed -v -k $(SECRET) -p $(PORT) -H localhost -r 192.168.69.1 -P pegapilha/0 --timeout 2 $(ARGV)"; \
+ echo "TACCLIENT: $(TACCLIENT) --return-0-if-failed -v -k $(SECRET) -p $(tacacs_port) -H localhost -r 192.168.69.1 -P pegapilha/0 --timeout 2 $(ARGV)"; \
exit 1; \
fi
#
$(Q)if [ -e "$(EXPECTED)" ] && ! cmp -s $(FOUND) $(EXPECTED); then \
echo "TACCLIENT FAILED $@"; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "TACCLIENT: $(TACCLIENT) --return-0-if-failed -v -k $(SECRET) -p $(PORT) -H localhost -r 192.168.69.1 -P pegapilha/0 --timeout 2 $(ARGV)"; \
+ echo "TACCLIENT: $(TACCLIENT) --return-0-if-failed -v -k $(SECRET) -p $(tacacs_port) -H localhost -r 192.168.69.1 -P pegapilha/0 --timeout 2 $(ARGV)"; \
echo "ERROR: File $(FOUND) is not the same as $(EXPECTED)"; \
echo "If you did some update on the proto_tacacs code, please be sure to update the unit tests."; \
echo "e.g: $(EXPECTED)"; \
$(eval ARGV := $(shell grep "#.*ARGV:" $< | cut -f2 -d ':'))
$(Q)echo "VMPS-TEST INPUT=$(TARGET) VMPS_ARGV=\"$(ARGV)\""
$(Q)[ -f $(dir $@)/radiusd.pid ] || exit 1
- $(Q)if ! $(VQCLI) -s 127.0.0.1 -p $(PORT) $(ARGV) 1> $(FOUND) 2>&1; then \
+ $(Q)if ! $(VQCLI) -s 127.0.0.1 -p $(vmps_port) $(ARGV) 1> $(FOUND) 2>&1; then \
echo "FAILED"; \
cat $(FOUND); \
rm -f $(BUILD_DIR)/tests/test.vmps; \
$(MAKE) --no-print-directory test.vmps.radiusd_kill; \
echo "RADIUSD: $(RADIUSD_RUN)"; \
- echo "VQCLI: $(VQCLI) -s 127.0.0.1 -p $(PORT) $(ARGV)"; \
+ echo "VQCLI: $(VQCLI) -s 127.0.0.1 -p $(vmps_port) $(ARGV)"; \
exit 1; \
fi
#