mirror of
https://github.com/forth-ev/VolksForth.git
synced 2025-08-15 06:27:40 +00:00
First properly evaluated CPM test: log-test, with golden file,
evaluate script and script to cut off CPM text files at ctrl-z (EOF)
This commit is contained in:
@@ -12,7 +12,7 @@ cpmfilesdir = cpmfiles
|
|||||||
fth: $(fthfiles)
|
fth: $(fthfiles)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.log
|
rm -f *.log *.golden *.result
|
||||||
rm -rf $(runcpmdir)
|
rm -rf $(runcpmdir)
|
||||||
rm -f msdos
|
rm -f msdos
|
||||||
|
|
||||||
@@ -54,10 +54,19 @@ logtest.log: $(patsubst %, $(cpmfilesdir)/%, volks4th.com) \
|
|||||||
echo "exit" >> $(runcpmdir)/input.script
|
echo "exit" >> $(runcpmdir)/input.script
|
||||||
./emulator/run-in-runcpm.sh volks4th
|
./emulator/run-in-runcpm.sh volks4th
|
||||||
cp $(runcpmdir)/output.log output.log
|
cp $(runcpmdir)/output.log output.log
|
||||||
cp $(runcpmdir)/A/0/LOGFILE.TXT $@
|
../../tools/trunc-ctrl-z.py $(runcpmdir)/A/0/LOGFILE.TXT \
|
||||||
|
$(runcpmdir)/logfile.txt
|
||||||
|
dos2unix -n $(runcpmdir)/logfile.txt $@
|
||||||
|
|
||||||
emu: $(runcpmdir)/RunCPM
|
emu: $(runcpmdir)/RunCPM
|
||||||
|
|
||||||
|
%.golden: tests/golden/%.golden
|
||||||
|
cp -p $< $@
|
||||||
|
|
||||||
|
%.result: %.log %.golden tests/evaluate-test.sh
|
||||||
|
rm -f $@
|
||||||
|
tests/evaluate-test.sh $(basename $@)
|
||||||
|
|
||||||
$(runcpmdir)/RunCPM: $(whitch_runcpm)
|
$(runcpmdir)/RunCPM: $(whitch_runcpm)
|
||||||
test -d $(runcpmdir) || mkdir -p $(runcpmdir)
|
test -d $(runcpmdir) || mkdir -p $(runcpmdir)
|
||||||
cp $< $@
|
cp $< $@
|
||||||
|
16
8080/CPM/tests/evaluate-test.sh
Executable file
16
8080/CPM/tests/evaluate-test.sh
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
testsdir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")"
|
||||||
|
basedir="$(realpath --relative-to="$PWD" "${testsdir}/..")"
|
||||||
|
|
||||||
|
testname="$1"
|
||||||
|
|
||||||
|
diff --ignore-trailing-space "${basedir}/${testname}.golden" \
|
||||||
|
"${basedir}/${testname}.log" > tmp.result
|
||||||
|
exitcode=$?
|
||||||
|
test $exitcode -eq 0 \
|
||||||
|
&& echo "PASS: ${testname}" >> tmp.result \
|
||||||
|
|| echo "FAIL: ${testname}" >> tmp.result
|
||||||
|
cat tmp.result
|
||||||
|
mv tmp.result "${basedir}/${testname}.result"
|
||||||
|
exit $exitcode
|
4
8080/CPM/tests/golden/logtest.golden
Normal file
4
8080/CPM/tests/golden/logtest.golden
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
ok
|
||||||
|
.( hello world) cr hello world
|
||||||
|
ok
|
||||||
|
logclose
|
File diff suppressed because one or more lines are too long
@@ -86,7 +86,7 @@ Output: alsologtofile
|
|||||||
alsologtofile ;
|
alsologtofile ;
|
||||||
|
|
||||||
: logclose ( -- )
|
: logclose ( -- )
|
||||||
cr display logflush logfile closefile ;
|
cr display &26 logc! logflush logfile closefile ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
15
tools/trunc-ctrl-z.py
Executable file
15
tools/trunc-ctrl-z.py
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
inFileName, outFileName = sys.argv[1], sys.argv[2]
|
||||||
|
inFile = open(inFileName, "rb")
|
||||||
|
source = inFile.read()
|
||||||
|
destination = bytearray()
|
||||||
|
for b in source:
|
||||||
|
if b == 26:
|
||||||
|
break
|
||||||
|
destination.append(b)
|
||||||
|
# result.append('')
|
||||||
|
outFile = open(outFileName, "wb")
|
||||||
|
outFile.write(destination)
|
Reference in New Issue
Block a user