# Run tests interleaved with main build. They have to be in the same target for this.
# Run tests interleaved with main build. They have to be in the same target for this.
real-all:$(if $(NO_TEST),,test)
real-all:style $(if $(NO_TEST),,test)
# the test suite
style:$(VFILES)
TESTFILES:=$(shell find tests -name"*.v")
NORMALIZER:=test-normalizer.sed
test:$(TESTFILES:.v=.vo)
# Make sure everything imports the options, and all Instance/Argument/Hint are qualified.
# Make sure everything imports the options, and all Instance/Argument/Hint are qualified.
$(SHOW)"Performing some style checks..."
$(SHOW)"Performing some style checks..."
$(HIDE)forFILEin$(VFILES);do\
$(HIDE)forFILEin$(VFILES);do\
if ! fgrep -q 'From stdpp Require Import options.' "$$FILE"; then echo "ERROR:$$FILE does not import 'options'."; echo; exit 1; fi ; \
if ! fgrep -q 'From stdpp Require Import options.' "$$FILE"; then echo "ERROR:$$FILE does not import 'options'."; echo; exit 1; fi ; \
if egrep -n '^\s*((Existing\s+|Program\s+)Instance|Arguments|Remove|Hint\s+(Extern|Constructors|Resolve|Immediate|Mode|Opaque|Transparent|Unfold)|(Open|Close)\s+Scope|Opaque|Transparent)\b' "$$FILE"; then echo "ERROR: $$FILE contains 'Instance'/'Arguments'/'Hint' or another side-effect without locality (see above)."; echo "Please add 'Global' or 'Local' as appropriate."; echo; exit 1; fi \
if egrep -n '^\s*((Existing\s+|Program\s+)Instance|Arguments|Remove|Hint\s+(Extern|Constructors|Resolve|Immediate|Mode|Opaque|Transparent|Unfold)|(Open|Close)\s+Scope|Opaque|Transparent)\b' "$$FILE"; then echo "ERROR: $$FILE contains 'Instance'/'Arguments'/'Hint' or another side-effect without locality (see above)."; echo "Please add 'Global' or 'Local' as appropriate."; echo; exit 1; fi \