Add negative test checks to Makefile_test.common Makefile

Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/Makefile_test.common b/Makefile_test.common
index fe8ffce..dda6516 100644
--- a/Makefile_test.common
+++ b/Makefile_test.common
@@ -14,9 +14,10 @@
 #
 define test_tpl =
 $(1): $(1)/ok
-	@$$($(1)_verify); \
-	RETVAL=$$$$? ; \
-	if [ $$$$RETVAL -eq 0 ]; then \
+	@echo "Verifying result of test $(1)"
+	@set +e; \
+	$$($(1)_verify); \
+	if [ $$$$? -eq 0 ]; then \
 		echo "Test $(1) PASSED"; \
 		touch $$<; \
 		true; \
@@ -27,9 +28,25 @@
 
 $(1)/ok: $(1)/$(1).v
 	@echo "Running test $(1)"
-	@cd $(1); \
+	@set +e; \
+	cd $(1); \
 	DESIGN_TOP=$(1) \
-	yosys -c $(1).tcl -q -l $(1).log
+	yosys -c $(1).tcl -q -l $(1).log; \
+	RETVAL=$$$$?; \
+	if [ ! -z "$$($(1)_negative)" ] && [ $$($(1)_negative) -eq 1 ]; then \
+		if [ $$$$RETVAL -ne 0 ]; then \
+			echo "Negative test $(1) PASSED"; \
+			true; \
+		else \
+			echo "Negative test $(1) FAILED"; \
+			false; \
+		fi \
+	else \
+		if [ $$$$RETVAL -ne 0 ]; then \
+			echo "Unexpected runtime error"; \
+			false; \
+		fi \
+	fi
 
 endef