# Makefile for running test unit
#
TESTS_FILES ?= $(wildcard *.sh)
TESTS_EXCLUDE ?=
TESTS ?= $(filter-out $(patsubst %,%.sh,$(TESTS_EXCLUDE)), $(TESTS_FILES))

# run all tests
all:
	@for FILE in $(TESTS) ; do \
		if [ -f $$FILE ] ; then \
			if [ -x $$FILE ] ; then \
				echo "Run test `basename $$FILE .sh`:" `head -n 2 "$$FILE" | tail -n 1 | cut -c 3-` ; \
				./$$FILE ; \
				ret=$$? ; \
				if [ ! "$$ret" -eq 0 ] ; then \
					echo "Test unit file $$FILE: failed" ; \
				else \
					echo "Test unit file $$FILE: ok" ; \
				fi ; \
			fi ; \
		fi ; \
	done ; \
	exit $$RES;

# run one test specified in variable UNIT
# example: make UNIT=1.sh run
run:
	-@if [ -f $(UNIT) ] ; then \
		if [ -x $(UNIT) ] ; then \
			echo "Run test `basename $(UNIT) .sh`:" `head -n 2 "$(UNIT)" | tail -n 1 | cut -c 3-` ; \
			./$(UNIT) ; \
			ret=$$? ; \
			if [ ! "$$ret" -eq 0 ] ; then \
				echo "Test unit file $(UNIT): failed" ; \
			else \
				echo "Test unit file $(UNIT): ok" ; \
			fi ; \
		fi ; \
	else \
		echo "Test unit file $(UNIT): not found" ; \
	fi ;