From 9b179ac97d6738b2311b9327917a1bf9f93fcac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szymon=20Karpi=C5=84ski?= Date: Mon, 27 Jul 2020 17:06:51 +0200 Subject: [PATCH] Python & multicharacter test IDs - Support for python programs - Multicharacter test IDs are now fully working --- makefile.main | 10 +++++----- makefile.prog | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/makefile.main b/makefile.main index ecd3e98..bc2b4e3 100644 --- a/makefile.main +++ b/makefile.main @@ -44,13 +44,13 @@ MD5SUMS = in/.md5sums INGEN = $(shell if [ `find prog -name "$(ID)ingen.*" | wc -l` -gt 0 ] ; then echo 1 ; else echo 0 ; fi) INWER = $(shell if [ `find prog -name "$(ID)inwer.*" | wc -l` -gt 0 ] ; then echo 1 ; else echo 0 ; fi) CHECKER = $(shell if [ `find prog -name "$(ID)chk.*" | wc -l` -gt 0 ] ; then echo 1 ; else echo 0 ; fi) -PROGS_OPT= $(shell find prog -regex "prog/$(ID)[0-9]*\.\(c\|cpp\|pas\|ml\)" | sort -n -k 1.`echo "prog/$(ID)"| wc -c`) -PROGS_SLW= $(shell find prog -regex "prog/$(ID)s[0-9]*\.\(c\|cpp\|pas\|ml\)" | sort -n -k 1.`echo "prog/$(ID)s"| wc -c`) -PROGS_BAD= $(shell find prog -regex "prog/$(ID)b[0-9]*\.\(c\|cpp\|pas\|ml\)" | sort -n -k 1.`echo "prog/$(ID)b"| wc -c`) +PROGS_OPT= $(shell find prog -regex "prog/$(ID)[0-9]*\.\(c\|cpp\|pas\|ml\|py\)" | sort -n -k 1.`echo "prog/$(ID)"| wc -c`) +PROGS_SLW= $(shell find prog -regex "prog/$(ID)s[0-9]*\.\(c\|cpp\|pas\|ml\|py\)" | sort -n -k 1.`echo "prog/$(ID)s"| wc -c`) +PROGS_BAD= $(shell find prog -regex "prog/$(ID)b[0-9]*\.\(c\|cpp\|pas\|ml\|py\)" | sort -n -k 1.`echo "prog/$(ID)b"| wc -c`) PROGS_JAVA= $(shell find prog -regex "prog/$(ID)[0-9]*\.java" | sort -n -k 1.`echo "prog/$(ID)"| wc -c`) PROGS_JAVA_SLW= $(shell find prog -regex "prog/$(ID)s[0-9]*\.java" | sort -n -k 1.`echo "prog/$(ID)"| wc -c`) -TESTS += $(shell find in -regex "in/$(ID)[0-9]*[a-z]?ocen.in" | sort -n -k 1.`echo "in/$(ID)"| wc -c` ) -TESTS += $(shell find in -regex "in/$(ID)[0-9]*[a-z]?.in" | sort -n -k 1.`echo "in/$(ID)"| wc -c` ) +TESTS += $(shell find in -regex "in/$(ID)[0-9]*[a-z]*ocen.in" | sort -n -k 1.`echo "in/$(ID)"| wc -c` ) +TESTS += $(shell find in -regex "in/$(ID)[0-9]*[a-z]*.in" | sort -n -k 1.`echo "in/$(ID)"| wc -c` ) B_PROGS_WER= $(shell find prog -regex "prog/$(ID)[0-9]*wer[0-9]*\.\(c\|cpp\|pas\|ml\|java\)" | sort -n -k 1.`echo "prog/$(ID)"| wc -c`) B_PROGS_SLW= $(shell find prog -regex "prog/$(ID)[0-9]*s\.\(c\|cpp\|pas\|ml\|java\)" | sort -n -k 1.`echo "prog/$(ID)"| wc -c`) diff --git a/makefile.prog b/makefile.prog index ecd6366..ef06651 100644 --- a/makefile.prog +++ b/makefile.prog @@ -16,14 +16,16 @@ PRG_CPP = $(wildcard *.cpp) PRG_JAVA = $(wildcard *.java) PRG_PAS = $(wildcard *.pas) PRG_ML = $(wildcard *.ml) -PRG = $(PRG_C) $(PRG_CPP) $(PRG_PAS) $(PRG_ML) +PRG_PY = $(wildcard *.py) +PRG = $(PRG_C) $(PRG_CPP) $(PRG_PAS) $(PRG_ML) $(PRG_PY) EXE_C = $(patsubst %.c,%.e,$(PRG_C)) EXE_CPP = $(patsubst %.cpp,%.e,$(PRG_CPP)) EXE_JAVA = $(patsubst %.java,%.e,$(PRG_JAVA)) EXE_PAS = $(patsubst %.pas,%.e,$(PRG_PAS)) EXE_ML = $(patsubst %.ml,%.e,$(PRG_ML)) -EXE = $(EXE_C) $(EXE_CPP) $(EXE_JAVA) $(EXE_PAS) $(EXE_ML) +EXE_PY = $(patsubst %.py,%.e,$(PRG_PY)) +EXE = $(EXE_C) $(EXE_CPP) $(EXE_JAVA) $(EXE_PAS) $(EXE_ML) $(EXE_PY) all: $(EXE) ${ID}.valgrind @@ -49,6 +51,11 @@ all: $(EXE) ${ID}.valgrind rm -f *.cmi rm -f *.cmo +%.e: %.py + echo "#!/usr/bin/env python3" > $*.e; \ + cat $^ >> $*.e; \ + chmod 755 $*.e + %.valgrind: %.c gcc -O2 ${CFLAGS} -g -lm $^ -o $*.valgrind ${C_LDFLAGS} @@ -58,6 +65,9 @@ all: $(EXE) ${ID}.valgrind %.valgrind: %.pas %.e cp $*.e $*.valgrind +%.valgrind: %.py %.e + cp $*.e $*.valgrind + clean: rm -f *.o rm -f *.e