# Each plugin shall have a directory named 'test' that contains test cases
# directories and a Makefile which includes this Makefile template.
# The test Makefile specifies which tests to execute and how to verify them.
# The test to execute should be explicitly specified in the TESTS variable.
# Each test needs a verification step define in the name_of_test_verify variable.
# A simple diff verification template have been defined in the template Makefile
# diff_test performs a simple diff and takes name of file and its extension
# Example of a test Makefile is given below:
#
# include $(shell pwd)/../../Makefile_test.common
# TESTS = test1 test2
# test1_verify = $(call diff_test,test1,ext) && test $$(grep "PASS" test1/test1.txt | wc -l) -eq 2
# test2_verify = $(call diff_test,test2,ext)
#
define test_tpl =
$(1): $(1)/ok
	@$$($(1)_verify); \
	RETVAL=$$$$? ; \
	if [ $$$$RETVAL -eq 0 ]; then \
		echo "Test $(1) PASSED"; \
		touch $$<; \
		true; \
	else \
		echo "Test $(1) FAILED"; \
		false; \
	fi

$(1)/ok: $(1)/$(1).v
	@echo "Running test $(1)"
	@cd $(1); \
	DESIGN_TOP=$(1) \
	yosys -c $(1).tcl -q -l $(1).log

endef

diff_test = bash -c "diff <(sort $(1)/$(1).golden.$(2)) <(sort $(1)/$(1).$(2))"

all: $(TESTS)
.PHONY: all clean $(TESTS)

$(foreach test,$(TESTS),$(eval $(call test_tpl,$(test))))

clean:
	@rm -rf $(foreach test,$(TESTS),$(test)/$(test).sdc $(test)/$(test).txt $(test)/$(test).eblif $(test)/$(test).json)
	@find . -name "ok" -or -name "*.log" | xargs rm -rf
