summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-09-19 10:49:08 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-09-19 10:49:08 +0200
commit706f4260ef5175a1134be7764aa9640b28fa2335 (patch)
treea39cee1df5b4ee6582bc6df7a736ac73d24a989d
parent900db6294298c1eeb8110b73ef8dafc8175ef4a1 (diff)
Continues to implement automated testing.
... in a hacky sort of way.
-rw-r--r--Makefile1
-rw-r--r--data/test/Makefile42
-rw-r--r--sol-pretty-printer/Makefile7
3 files changed, 42 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 177bd88..80e587e 100644
--- a/Makefile
+++ b/Makefile
@@ -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)