From 6dbe30064d1d58b21cbddb3f36a0cf597478d54d Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Tue, 30 Jun 2020 23:35:18 +0200 Subject: [PATCH 1/7] Fix include so that printing the file name is outside the file open flow. Else include doesn't work if cr and type log to a file themselves. --- 6502/C64/disks/file-words.d64 | Bin 174848 -> 174848 bytes 6502/C64/disks/file-words.fth | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/6502/C64/disks/file-words.d64 b/6502/C64/disks/file-words.d64 index 29af1f0eabff64f4787c39868db241c2fda38c07..682dfd199d240496435dca38bad7eb3d55e03caa 100644 GIT binary patch delta 165 zcmZp;#?^3*YlFN7ld-{OMU6L1l2!_OZk|4_evZDb3JOLpp#cicK?)&}0j`q+H7&)} zkz`L^R`B=Jb@TCebeX(Rt80^vJPXj2$%+PRCU3B2QE+n&g3Bu?s4MvS`v)j^2E)ZB opD@tpfE)1DKyk8yq2XkvAd$&-8obT34cliMGH#!3$dp x-~zJQCi@#|Pd3s} Date: Tue, 30 Jun 2020 23:35:57 +0200 Subject: [PATCH 2/7] Log test output to file --- 6502/C64/tests/logtofile.fth | 27 +++++++++++++++++++++++++++ 6502/C64/tests/run-vf-tests.fth | 6 ++++++ 2 files changed, 33 insertions(+) create mode 100644 6502/C64/tests/logtofile.fth diff --git a/6502/C64/tests/logtofile.fth b/6502/C64/tests/logtofile.fth new file mode 100644 index 0000000..37a5ebd --- /dev/null +++ b/6502/C64/tests/logtofile.fth @@ -0,0 +1,27 @@ + +create log-dev 8 , +create log-2nd 2 , +: log-dev-2nd@ log-dev @ log-2nd @ ; + +: log-emit + dup c64emit log-dev-2nd@ busout bus! busoff ; + +: log-cr + c64cr log-dev-2nd@ busout #cr bus! busoff ; + +: log-type + 2dup c64type log-dev-2nd@ busout bustype busoff ; + +Output: alsologtofile + log-emit log-cr log-type c64del c64page + c64at c64at? ; + +: logopen" + ascii " parse log-dev-2nd@ busopen + 2dup type + bustype " ,s,w" count bustype busoff + i/o-status? IF c64cr log-dev @ dos-error abort THEN + alsologtofile ; + +: logclose + log-dev-2nd@ busclose display ; diff --git a/6502/C64/tests/run-vf-tests.fth b/6502/C64/tests/run-vf-tests.fth index a52fa64..f6b8d6c 100644 --- a/6502/C64/tests/run-vf-tests.fth +++ b/6502/C64/tests/run-vf-tests.fth @@ -1,4 +1,8 @@ +include logtofile.fth + +logopen" test.log" + : \vf [compile] \ ; immediate include ans-shim.fth @@ -21,3 +25,5 @@ include coreexttest.fth include doubletest.fth REPORT-ERRORS + +logclose From 7d8f24690caa9711ee72230d0034656824b3549a Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Tue, 30 Jun 2020 23:38:45 +0200 Subject: [PATCH 3/7] check in updated testbase and testbase16 saved systems --- 6502/C64/cbmfiles/testbase | Bin 16370 -> 16408 bytes 6502/C64/cbmfiles/testbase16 | Bin 16441 -> 16478 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/6502/C64/cbmfiles/testbase b/6502/C64/cbmfiles/testbase index 1af77eaceb5ae5663dd9254eed1b48d01e2bf2b0..4eca2cb44e596d5dd46b5e446cdb84da037595ab 100644 GIT binary patch delta 331 zcmexVKcj(hf+~}^$42!kSr$eQMvu))W&IR1cz76iTsh94(>-?P{J|rCHF!OiD>Jwy zx#;nf0C6$@5g_f(v(a`kubsC3S67Z>2M=F4dF`nEa%GUbm;nDnfedaQ23I$JumQS< z&z!$}RQKSSGs~3&Ca2qJGR9AyXeTQ?*NxNe%E?2z=P#W+9;K8c$;+^N@Q7;0BLugjkaHT^USNv zCrjIDOY^vL96NaU%E@a-?UyTqREY`jKNQH|=3y|OoM7KuI@_3X|jwCO`+R5kb3>o)NX0+F2{p5PtO@6Yzy{OnnH|8TJFD+Nrc3;cC z(N;`AMc(eIjrQayd-Hsd&`H}2ZaxN6cjhDKFE3Xv)_EdbA@P!Dg0L`ywmZ=F*|w%Y z<$30L!Ym9uJlgKeE+FMS?#zb|URkc3XRhsj31})r8%X6nSC9ygU5MQ`t2fRQgn#@8 KS_TvWSpxvH_)X}S!VYD_svUW&14w+Hs7|4XHn;22=?VTe@^$Q*vX1K_T#j>a`KSw`Aa8{M``6K@-i^`Pv*2YU=*HgWv^-A<)`jn>=&)b zEO7*gGlZ9GgRILC=3{X6XFhWB(sJ#3|Fz=JUBx6+Qry0})K8vlZ(a`)VsHZ~>I5n} ze|fofvB?wV3Wb*<6QqS1>ixwe_%FIP0F~$2=Sj0L^oZ2^d-;HrKk#QheDKP0?L7N> z|4TqqA=*GHRsBFBfo}8N-Z~lkOpyNZA7~j+1Y`{t1AhRg-m#Nsj-ESs_ULkLj<2G5 J_Eq*7!T|p)fY$&3 delta 320 zcmccDz__!4ae^wN#YVMiS!SjHrp-%a&14uoH{Z65XOUX2z0yZdWH%5Oiyr~f?jp}! zzl!GBSJ_Waw9{q^_MO~kCm~wr$A9e1`GZGv51%=I`Ka!}GiR1-cTV1Ir)f09&oO4X z_60>fkqOdl3=FCP!qGtX5k+^A3}Ie|Ykr(|S56+%J%8!s@hGhvMP7z4ev`%Q4H(%b zyW49TSo%r%r};%IGD{o*;tXMkV={#K7%cpmkDR=;T)W7Bt@v|SF$t9vx34ZmlNZ>V z=Yxb8+(3$IfQrsvUanni@ Date: Wed, 1 Jul 2020 21:20:49 +0200 Subject: [PATCH 4/7] Check in updated devenv binary after include was fixed --- 6502/C64/cbmfiles/devenv | Bin 0 -> 21425 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 6502/C64/cbmfiles/devenv diff --git a/6502/C64/cbmfiles/devenv b/6502/C64/cbmfiles/devenv new file mode 100644 index 0000000000000000000000000000000000000000..d3fed125061e64487acfd4f41ba72ea9a1c5f69e GIT binary patch literal 21425 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 Date: Wed, 1 Jul 2020 21:22:41 +0200 Subject: [PATCH 5/7] Add C64/disks/.gitignore containing ascii version of empty disk image. --- 6502/C64/disks/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 6502/C64/disks/.gitignore diff --git a/6502/C64/disks/.gitignore b/6502/C64/disks/.gitignore new file mode 100644 index 0000000..73508a6 --- /dev/null +++ b/6502/C64/disks/.gitignore @@ -0,0 +1 @@ +empty.fth From ecbcd52f8f8ef14b5a01f979323d28526a711c56 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Thu, 2 Jul 2020 22:02:39 +0200 Subject: [PATCH 6/7] Make C64/C16 tests completely automated. --- 6502/C64/Makefile | 31 +++++-- 6502/C64/tests/evaluate-test.sh | 15 ++++ 6502/C64/tests/run-vf-tests.fth | 13 +-- 6502/C64/tests/test-c16.golden | 74 ++++++++++++++++ 6502/C64/tests/test-c64.golden | 150 ++++++++++++++++++++++++++++++++ 5 files changed, 272 insertions(+), 11 deletions(-) create mode 100755 6502/C64/tests/evaluate-test.sh create mode 100644 6502/C64/tests/test-c16.golden create mode 100644 6502/C64/tests/test-c64.golden diff --git a/6502/C64/Makefile b/6502/C64/Makefile index 876f8bd..199a314 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -14,24 +14,43 @@ test_files_petscii = $(patsubst tests/%, cbmfiles/%, $(test_files)) vf_blk_fth: $(vf_blk_fth_files) +clean: + rm -f cbmfiles/*.fr cbmfiles/%.fth *.log *.result + + # Convenience targets +test: test-c64.result test-c16.result + +test64: test-c64.result + run-devenv: emulator/devenv.T64 emulator/run-in-vice.sh devenv run-testbase: emulator/testbase.T64 emulator/run-in-vice.sh testbase -test: emulator/testbase.T64 $(test_files_petscii) - emulator/run-in-vice.sh testbase \ - "include run-vf-tests.fth\n" - run-testbase16: emulator/testbase16.T64 VICE=xplus4 emulator/run-in-vice.sh testbase16 -test16: emulator/testbase.T64 $(test_files_petscii) + +# Core test targets + +test-c64.result: emulator/testbase.T64 $(test_files_petscii) \ + emulator/run-in-vice.sh tests/evaluate-test.sh tests/test-c64.golden + rm -f test-c64.log test-c64.result + emulator/run-in-vice.sh testbase \ + "include run-vf-tests.fth\n1234567890\ndos s0:notdone\n" + petscii2ascii cbmfiles/test.log test-c64.log + tests/evaluate-test.sh test-c64 + +test-c16.result: emulator/testbase16.T64 $(test_files_petscii) \ + emulator/run-in-vice.sh tests/evaluate-test.sh tests/test-c16.golden + rm -f test-c16.log test-c16.result VICE=xplus4 emulator/run-in-vice.sh testbase16 \ - "include run-vf-tests.fth\n" + "include run-vf-tests.fth\n1234567890\ndos s0:notdone\n" + petscii2ascii cbmfiles/test.log test-c16.log + tests/evaluate-test.sh test-c16 # Rules for building Forth binaries on top of the plain vanilla diff --git a/6502/C64/tests/evaluate-test.sh b/6502/C64/tests/evaluate-test.sh new file mode 100755 index 0000000..f76fd8e --- /dev/null +++ b/6502/C64/tests/evaluate-test.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +testsdir="$(realpath --relative-to="$PWD" "$(dirname "${BASH_SOURCE[0]}")")" +basedir="$(realpath --relative-to="$PWD" "${testsdir}/..")" + +testname="$1" + +diff "${testsdir}/${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 diff --git a/6502/C64/tests/run-vf-tests.fth b/6502/C64/tests/run-vf-tests.fth index f6b8d6c..36c685f 100644 --- a/6502/C64/tests/run-vf-tests.fth +++ b/6502/C64/tests/run-vf-tests.fth @@ -17,13 +17,16 @@ include core.fr include coreplustest.fth -include utilities.fth -include errorreport.fth +\ The C16 VolksForth has LIMIT at $8000. +\ More tests than up to here fill the dictionary. -include coreexttest.fth +(64 include utilities.fth C) +(64 include errorreport.fth C) -include doubletest.fth +(64 include coreexttest.fth C) -REPORT-ERRORS +(64 include doubletest.fth C) + +(64 REPORT-ERRORS C) logclose diff --git a/6502/C64/tests/test-c16.golden b/6502/C64/tests/test-c16.golden new file mode 100644 index 0000000..09682a7 --- /dev/null +++ b/6502/C64/tests/test-c16.golden @@ -0,0 +1,74 @@ + +ans-shim.fth CHAR exists 0> exists + +prelimtest.fth + +CR CR SOURCE TYPE ( Preliminary test ) CR +SOURCE ( These lines test SOURCE, TYPE, CR and parenthetic comments ) TYPE CR +( The next line of output should be blank to test CR ) SOURCE TYPE CR CR + +( Pass #1: testing 0 >IN +! ) 0 >IN +! SOURCE TYPE CR +( Pass #2: testing 1 >IN +! ) 1 >IN +! xSOURCE TYPE CR +( Pass #3: testing 1+ ) 1 1+ >IN +! xxSOURCE TYPE CR +( Pass #4: testing @ ! BASE ) 0 1+ 1+ BASE ! BASE @ >IN +! xxSOURCE TYPE CR +( Pass #5: testing decimal BASE ) BASE @ >IN +! xxxxxxxxxxSOURCE TYPE CR +( Pass #6: testing : ; ) : .SRC SOURCE TYPE CR ; 6 >IN +! xxxxxx.SRC +( Pass #7: testing number input ) 19 >IN +! xxxxxxxxxxxxxxxxxxx.SRC +( Pass #8: testing VARIABLE ) VARIABLE Y 2 Y ! Y @ >IN +! xx.SRC +( Pass #9: testing WORD COUNT ) 5 MSG abcdef) Y ! Y ! >IN +! xxxxx.SRC +( Pass #10: testing WORD COUNT ) MSG ab) >IN +! xxY ! .SRC +Pass #11: testing WORD COUNT .MSG +Pass #12: testing = returns all 1's for true +Pass #13: testing = returns 0 for false +Pass #14: testing -1 interpreted correctly +Pass #15: testing 2* +Pass #16: testing 2* +Pass #17: testing AND +Pass #18: testing AND +Pass #19: testing AND +Pass #20: testing ?F~ ?~~ Pass Error +Pass #21: testing ?~ +Pass #22: testing EMIT +Pass #23: testing S" + +Results: + +Pass messages #1 to #23 should be displayed above +and no error messages + +0 tests failed out of 57 additional tests + + +--- End of Preliminary Tests --- + +tester.fth ERROR exists +core.fr +*********************YOU SHOULD SEE THE STANDARD GRAPHIC CHARACTERS: + !"#$%&'()*+,-./0123456789:;<=>?@ +abcdefghijklmnopqrstuvwxyz[\]^_` +ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ +YOU SHOULD SEE 0-9 SEPARATED BY A SPACE: +0 1 2 3 4 5 6 7 8 9 +YOU SHOULD SEE 0-9 (WITH NO SPACES): +0123456789 +YOU SHOULD SEE A-G SEPARATED BY A SPACE: +A B C D E F G +YOU SHOULD SEE 0-5 SEPARATED BY TWO SPACES: +0 1 2 3 4 5 +YOU SHOULD SEE TWO SEPARATE LINES: +LINE 1 +LINE 2 +YOU SHOULD SEE THE NUMBER RANGES OF SIGNED AND UNSIGNED NUMBERS: + SIGNED: -8000 7FFF +UNSIGNED: 0 FFFF +* +PLEASE TYPE UP TO 80 CHARACTERS: +1234567890 +RECEIVED: "1234567890" +* GDX exists +End of Core word set tests + +coreplustest.fth******** +You should see 2345: 2345 +***** +End of additional Core tests diff --git a/6502/C64/tests/test-c64.golden b/6502/C64/tests/test-c64.golden new file mode 100644 index 0000000..853418a --- /dev/null +++ b/6502/C64/tests/test-c64.golden @@ -0,0 +1,150 @@ + +ans-shim.fth CHAR exists 0> exists + +prelimtest.fth + +CR CR SOURCE TYPE ( Preliminary test ) CR +SOURCE ( These lines test SOURCE, TYPE, CR and parenthetic comments ) TYPE CR +( The next line of output should be blank to test CR ) SOURCE TYPE CR CR + +( Pass #1: testing 0 >IN +! ) 0 >IN +! SOURCE TYPE CR +( Pass #2: testing 1 >IN +! ) 1 >IN +! xSOURCE TYPE CR +( Pass #3: testing 1+ ) 1 1+ >IN +! xxSOURCE TYPE CR +( Pass #4: testing @ ! BASE ) 0 1+ 1+ BASE ! BASE @ >IN +! xxSOURCE TYPE CR +( Pass #5: testing decimal BASE ) BASE @ >IN +! xxxxxxxxxxSOURCE TYPE CR +( Pass #6: testing : ; ) : .SRC SOURCE TYPE CR ; 6 >IN +! xxxxxx.SRC +( Pass #7: testing number input ) 19 >IN +! xxxxxxxxxxxxxxxxxxx.SRC +( Pass #8: testing VARIABLE ) VARIABLE Y 2 Y ! Y @ >IN +! xx.SRC +( Pass #9: testing WORD COUNT ) 5 MSG abcdef) Y ! Y ! >IN +! xxxxx.SRC +( Pass #10: testing WORD COUNT ) MSG ab) >IN +! xxY ! .SRC +Pass #11: testing WORD COUNT .MSG +Pass #12: testing = returns all 1's for true +Pass #13: testing = returns 0 for false +Pass #14: testing -1 interpreted correctly +Pass #15: testing 2* +Pass #16: testing 2* +Pass #17: testing AND +Pass #18: testing AND +Pass #19: testing AND +Pass #20: testing ?F~ ?~~ Pass Error +Pass #21: testing ?~ +Pass #22: testing EMIT +Pass #23: testing S" + +Results: + +Pass messages #1 to #23 should be displayed above +and no error messages + +0 tests failed out of 57 additional tests + + +--- End of Preliminary Tests --- + +tester.fth ERROR exists +core.fr +*********************YOU SHOULD SEE THE STANDARD GRAPHIC CHARACTERS: + !"#$%&'()*+,-./0123456789:;<=>?@ +abcdefghijklmnopqrstuvwxyz[\]^_` +ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ +YOU SHOULD SEE 0-9 SEPARATED BY A SPACE: +0 1 2 3 4 5 6 7 8 9 +YOU SHOULD SEE 0-9 (WITH NO SPACES): +0123456789 +YOU SHOULD SEE A-G SEPARATED BY A SPACE: +A B C D E F G +YOU SHOULD SEE 0-5 SEPARATED BY TWO SPACES: +0 1 2 3 4 5 +YOU SHOULD SEE TWO SEPARATE LINES: +LINE 1 +LINE 2 +YOU SHOULD SEE THE NUMBER RANGES OF SIGNED AND UNSIGNED NUMBERS: + SIGNED: -8000 7FFF +UNSIGNED: 0 FFFF +* +PLEASE TYPE UP TO 80 CHARACTERS: +1234567890 +RECEIVED: "1234567890" +* GDX exists +End of Core word set tests + +coreplustest.fth******** +You should see 2345: 2345 +***** +End of additional Core tests + +utilities.fth ?DEFTEST1 exists +Test utilities loaded + +errorreport.fth +coreexttest.fth************** + +Output from .( +You should see -9876: -9876 +and again: -9876 + + +On the next 2 lines you should see First then Second messages: +First message via .( +Second message via ." + +* + +Output from .R and U.R +You should see lines duplicated: +indented by 0 spaces +30278 +30278 +-31871 +-31871 +30278 +30278 +33665 +33665 + +indented by 0 spaces +30278 +30278 +-31871 +-31871 +30278 +30278 +33665 +33665 + +indented by 5 spaces + 30278 + 30278 + -31871 + -31871 + 30278 + 30278 + 33665 + 33665 + +*** +End of Core Extension word tests + +doubletest.fth***************** +End of Double-Number word tests + +--------------------------- + Error Report +Word Set Errors +--------------------------- +Core 0 +Core extension 0 +Block - +Double number 0 +Exception - +Facility - +File-access - +Locals - +Memory-allocation - +Programming-tools - +Search-order - +String - +--------------------------- +Total 0 +--------------------------- + From de4d0cc474ed09c5c442a8e2773f1b4052e3c921 Mon Sep 17 00:00:00 2001 From: Philip Zembrod Date: Thu, 2 Jul 2020 22:04:55 +0200 Subject: [PATCH 7/7] Small fix to make clean rule --- 6502/C64/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6502/C64/Makefile b/6502/C64/Makefile index 199a314..f4f00cf 100644 --- a/6502/C64/Makefile +++ b/6502/C64/Makefile @@ -15,7 +15,7 @@ vf_blk_fth: $(vf_blk_fth_files) clean: - rm -f cbmfiles/*.fr cbmfiles/%.fth *.log *.result + rm -f cbmfiles/*.fr cbmfiles/*.fth cbmfiles/*.log *.log *.result # Convenience targets