blob: 4cd2d7b3a093ff7668c8d7e6a830680efbb6cf0a [file] [log] [blame]
##===- TEST.pnacl.Makefile -------------------------------*- Makefile -*--===##
# This is mostly a copy of TEST.simple.Makefile, but using different names
# to avoid collisions.
# TODO(dschuff): fix the naming to be arch-specific so we don't have to clobber
# between runs.
#
##===----------------------------------------------------------------------===##
CURDIR := $(shell cd .; pwd)
PROGDIR := $(PROJ_SRC_ROOT)
RELDIR := $(subst $(PROGDIR),,$(CURDIR))
REPORTS_TO_GEN := compile exec
REPORTS_SUFFIX := $(addsuffix .report.txt, $(REPORTS_TO_GEN))
# Yes, this commented-out code is present in TEST.simple.Makefile
#$(PROGRAMS_TO_TEST:%=Output/%.pnacl.compile.report.txt): \
#Output/%.pnacl.compile.report.txt: Output/%.out-pnacl
# @echo > $@
# @printf "TEST-RESULT-compile-time: " >> $@
# -grep "^program" Output/$*.pnacl.compile.time >> $@
$(PROGRAMS_TO_TEST:%=Output/%.pnacl.compile.report.txt): \
Output/%.pnacl.compile.report.txt: Output/%.out-pnacl
@echo > $@
@-if test -f Output/$*.nexe; then \
echo "TEST-PASS: compile $(RELDIR)/$*" >> $@; \
echo "TEST-RESULT-compile-success: pass" >> $@;\
else \
echo "TEST-FAIL: compile $(RELDIR)/$*" >> $@; \
fi
@-printf "TEST-RESULT-compile-time: " >> $@
@-grep "^program" Output/$*.pnacl.compile.time >> $@
$(PROGRAMS_TO_TEST:%=Output/%.pnacl.exec.report.txt): \
Output/%.pnacl.exec.report.txt: Output/%.exe-pnacl
@echo > $@
@-is_xfail=0; \
for i in $(EXEC_XFAILS); do \
if test "$*" == $$i; then \
is_xfail=1; \
fi; \
done; \
if test $$is_xfail == 1; then \
echo "TEST-XFAIL: exec $(RELDIR)/$*" >> $@;\
echo "TEST-RESULT-exec-success: xfail" >> $@;\
elif test -f Output/$*.exe-pnacl; then \
echo "TEST-PASS: exec $(RELDIR)/$*" >> $@;\
echo "TEST-RESULT-exec-success: pass" >> $@;\
else \
echo "TEST-FAIL: exec $(RELDIR)/$*" >> $@;\
fi
@-printf "TEST-RESULT-exec-time: " >> $@
@-grep "^program" Output/$*.out-pnacl.time >> $@
if test -f Output/$*.extra-results.txt; then \
$(PROGDIR)/ParseMultipleResults $(RELDIR)/$* Output/$*.extra-results.txt >> $@; \
fi
# Overall tests: just run subordinate tests
$(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \
Output/%.$(TEST).report.txt: $(addprefix Output/%.pnacl., $(REPORTS_SUFFIX))
$(VERB) $(RM) -f $@
@echo "---------------------------------------------------------------" >> $@
@echo ">>> ========= '$(RELDIR)/$*' Program" >> $@
@echo "---------------------------------------------------------------" >> $@
-cat $(addprefix Output/$*.pnacl., $(REPORTS_SUFFIX)) >> $@
$(PROGRAMS_TO_TEST:%=test.$(TEST).%): \
test.$(TEST).%: Output/%.$(TEST).report.txt
@-cat $<
$(PROGRAMS_TO_TEST:%=build.$(TEST).%): \
build.$(TEST).%: Output/%.nexe
@echo "Finished Building: $<"