# Makefile to test TemStaPro program. MAKEFILE_DIR := $(dir $(lastword $(MAKEFILE_LIST))) TEST_DIR = $(MAKEFILE_DIR)tests INPUT_TEST_DIR = ${TEST_DIR}/cases OUTPUT_TEST_DIR = ${TEST_DIR}/outputs TEST_CASE_SCRIPTS = $(sort $(wildcard ${INPUT_TEST_DIR}/*.sh)) TEST_CASE_OUTPUTS = ${TEST_CASE_SCRIPTS:${INPUT_TEST_DIR}/%.sh=${OUTPUT_TEST_DIR}/%.out} TEST_CASE_DIFFS = ${TEST_CASE_SCRIPTS:${INPUT_TEST_DIR}/%.sh=${OUTPUT_TEST_DIR}/%.diff} PT_FILES = $(wildcard ${OUTPUT_TEST_DIR}/*.pt) SVG_FILES = $(wildcard ${OUTPUT_TEST_DIR}/*.svg) .PHONY: all test check tests checks clean distclean mostlyclean cleanAll all: tests .PHONY: display display: @echo ${TEST_CASE_DIFFS} test tests: ${TEST_CASE_DIFFS} ${OUTPUT_TEST_DIR}/%.diff: ${INPUT_TEST_DIR}/%.sh ${OUTPUT_TEST_DIR}/%.out @$< 2>&1 | sed 's/at \(.*\) line [0-9][0-9]*\./at \1 line 999\./' | \ sed 's/\(.*\): beginning/2000-01-01: beginning/' | \ sed 's/\(.*\): finished/2000-01-01: finished/' | \ sed 's/\(.*\): time to/0:00:00.0001: time to/' | diff - $(word 2,$^) | tee $@ @if [ -s $@ ]; then echo "Test $< did not pass:"; cat $@; else echo "Test $< passed."; fi clean: rm -f ${TEST_CASE_DIFFS} rm ${PT_FILES} rm ${SVG_FILES}