| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-19 10:49:08 +0200 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-09-19 10:49:08 +0200 |
| commit | 706f4260ef5175a1134be7764aa9640b28fa2335 (patch) | |
| tree | a39cee1df5b4ee6582bc6df7a736ac73d24a989d | |
| parent | 900db6294298c1eeb8110b73ef8dafc8175ef4a1 (diff) | |
Continues to implement automated testing.
... in a hacky sort of way.
| -rw-r--r-- | Makefile | 1 | ||||
| -rw-r--r-- | data/test/Makefile | 42 | ||||
| -rw-r--r-- | sol-pretty-printer/Makefile | 7 |
3 files changed, 42 insertions, 8 deletions
@@ -6,6 +6,7 @@ PROPERTY_FILES ?= \ AST_FILE ?= ${CURDIR}/data/ast/best_chronometer_ever.xml TEMPLATE_DIR ?= ${CURDIR}/data/template/ #AST_FILE = ${CURDIR}/data/ast/pong.xml +NICE_MESSAGE ?= TMP_DIR ?= /tmp/tabellion MODEL_DIR ?= $(TMP_DIR)/mod diff --git a/data/test/Makefile b/data/test/Makefile index de460c3..f38526a 100644 --- a/data/test/Makefile +++ b/data/test/Makefile @@ -6,17 +6,18 @@ PROPERTY_DIR ?= ${CURDIR}/../property SOLUTION_DIR ?= /tmp/tabellion/sol/ ORACLE_CREATOR_SCRIPT = ${CURDIR}/oracle_creator.py ################################################################################ -TEST_FILES = $(addsuffix /valid,$(TEST_DIRS)) +TEST_FILES = $(addsuffix /valid,$(TEST_DIRS)) $(addsuffix /invalid,$(TEST_DIRS)) SOLUTION_FILES = $(addsuffix .sol,$(addprefix $(SOLUTION_DIR)/,$(TEST_DIRS))) #VHD_FILES = $(addsuffix .vhd, $(TEST_FILES)) AST_FILES = $(addsuffix .xml, $(TEST_FILES)) OCL_FILES = $(addsuffix .ocl, $(TEST_FILES)) -RSL_FILES = $(addsuffix .rsl, $(TEST_DIRS)) +VLD_FILES = $(addsuffix /valid.result, $(TEST_DIRS)) +IVLD_FILES = $(addsuffix /invalid.result, $(TEST_DIRS)) export -all: $(AST_FILES) $(OCL_FILES) $(RSL_FILES) +all: $(AST_FILES) $(OCL_FILES) $(VLD_FILES) $(IVLD_FILES) clean: rm -f $(AST_FILES) @@ -26,10 +27,35 @@ $(AST_FILES): %.xml : %.vhd $(AST_CREATOR) $< > $@ $(OCL_FILES): %.ocl : %.vhd - grep -no "\$$SOL:[0-9]\+:[0-9]\+\\$$" $< | $(ORACLE_CREATOR_SCRIPT) > $@ + grep -no "\$$SOL:[0-9]\+:[0-9]\+\\$$" $< | $(ORACLE_CREATOR_SCRIPT) | sort > $@ -$(RSL_FILES): %.rsl : %/valid.ocl %/valid.xml +$(VLD_FILES): %/valid.result: %/valid.ocl %/valid.xml $(MAKE) -C $(TABELLION_MAIN) \ - AST_FILE=${PWD}/$(patsubst %.rsl,%,$@)/valid.xml \ - PROPERTY_FILES=$(PROPERTY_DIR)/$(patsubst %.rsl,%.pro,$@) \ - TEMPLATE_DIR=${PWD}/$(patsubst %.rsl,%,$@)/ + TMP_DIR=/tmp/tabellion_valid \ + clean_solutions + $(MAKE) -C $(TABELLION_MAIN) \ + TMP_DIR=/tmp/tabellion_valid \ + clean_model + $(MAKE) -C $(TABELLION_MAIN) \ + TMP_DIR=/tmp/tabellion_valid \ + AST_FILE=${PWD}/$(dir $@)/valid.xml \ + PROPERTY_FILES=$(PROPERTY_DIR)/$(patsubst %/,%,$(dir $@)).pro \ + TEMPLATE_DIR=${PWD}/$(dir $@)/ \ + NICE_MESSAGE=/tmp/tabellion/valid_test_result + cat /tmp/tabellion/valid_test_result | sed '/^\s*$$/d' | sort > $@ + diff $@ $(dir $@)/valid.ocl || true > $@ + +$(IVLD_FILES): %/invalid.result: %/invalid.ocl %/invalid.xml + $(MAKE) -C $(TABELLION_MAIN) \ + TMP_DIR=/tmp/tabellion_invalid \ + clean_solutions + $(MAKE) -C $(TABELLION_MAIN) \ + TMP_DIR=/tmp/tabellion_invalid \ + clean_model + $(MAKE) -C $(TABELLION_MAIN) \ + TMP_DIR=/tmp/tabellion_invalid \ + AST_FILE=${PWD}/$(dir $@)/invalid.xml \ + PROPERTY_FILES=$(PROPERTY_DIR)/$(patsubst %/,%,$(dir $@)).pro \ + TEMPLATE_DIR=${PWD}/$(dir $@)/ \ + NICE_MESSAGE=${PWD}/$@ + cat $@ | sed '/^\s*$$/d' | sort > $@ diff --git a/sol-pretty-printer/Makefile b/sol-pretty-printer/Makefile index 5390e28..f5c6e7a 100644 --- a/sol-pretty-printer/Makefile +++ b/sol-pretty-printer/Makefile @@ -8,6 +8,8 @@ MODEL_DIR ?= #### Where to find the properties' pretty-print files TEMPLATE_DIR ?= +NICE_MESSAGE_FILE ?= + #### Binaries ###### JRE binary JAVA ?= java @@ -53,8 +55,13 @@ compile: $(CLASSES) model: +ifeq ($(strip $(NICE_MESSAGE)),) solutions: $(SOLUTION_PP_PAIRS) $(MODEL_DIR)/structural.mod $(MODEL_DIR)/string_to_instr.map $(CLASSES) $(JAVA) -cp $(CLASSPATH) Main $(MODEL_DIR)/structural.mod $(MODEL_DIR)/string_to_instr.map $(SOLUTION_PP_PAIRS) +else +solutions: $(SOLUTION_PP_PAIRS) $(MODEL_DIR)/structural.mod $(MODEL_DIR)/string_to_instr.map $(CLASSES) + $(JAVA) -cp $(CLASSPATH) Main $(MODEL_DIR)/structural.mod $(MODEL_DIR)/string_to_instr.map $(SOLUTION_PP_PAIRS) > $(NICE_MESSAGE) +endif clean: rm -f $(CLASSES) |


