SHELL=/bin/bash

.PHONY: clean $(TESTCASES)

LOGFILE=test_results.log

all:
	@which bbe &>/dev/null || (echo "You need bbe to run the tests!"; false)
	@which mkfs.vfat &>/dev/null || (echo "You need mkfs.vfat to run the tests!"; false)
	@which fsck.vfat &>/dev/null || (echo "You need fsck.vfat to run the tests!"; false)
	@if [ -f ${LOGFILE} ]; then rm -f ${LOGFILE}; fi
	@all_passed=true; \
	for i in `ls -d tc_*`; do \
		echo -n "Test case $$i..."; \
		echo "=============================================" >> ${LOGFILE}; \
		echo "Test case $$i" >> ${LOGFILE}; \
		echo "=============================================" >> ${LOGFILE}; \
		make -C $$i &>> ${LOGFILE}; \
		ret=$$?; \
		if [ $$ret -eq 0 ]; then \
			echo "passed."; \
		else \
			echo "failed!"; \
		fi; \
		if ! $$all_passed || [ $$ret -ne 0 ]; then all_passed=false; fi \
	done; \
	if $$all_passed; then \
		echo "All tests passed."; \
	else \
		echo "Some tests failed!"; \
	fi

clean:
	rm -f ${LOGFILE}
	for i in `ls -d tc_*`; do $(MAKE) -C $$i clean || [ 1 ]; done
