Create common Makefile for plugin tests

Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/Makefile_test.common b/Makefile_test.common
new file mode 100644
index 0000000..fe8ffce
--- /dev/null
+++ b/Makefile_test.common
@@ -0,0 +1,45 @@
+# 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 = diff $(1)/$(1).golden.$(2) $(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