Merge pull request #7 from pzembrod/master

Make c64/c16 test fully automated
This commit is contained in:
Carsten Strotmann 2020-07-02 20:30:26 +00:00 committed by GitHub
commit 521d5c04cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 313 additions and 18 deletions

View File

@ -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 cbmfiles/*.log *.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

BIN
6502/C64/cbmfiles/devenv Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

1
6502/C64/disks/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
empty.fth

Binary file not shown.

View File

@ -281,7 +281,7 @@
\ *** Block No. 10, Hexblock a
\ include loadscreen 14jun20pz
\ include loadscreen 30jun20pz
: i/o-status? $90 c@ ;
@ -300,9 +300,9 @@
1 4 +thru
: .filename 2dup cr type ;
' .filename IS on-fload
@ -337,16 +337,16 @@
\ *** Block No. 12, Hexblock c
\ fload-open fload-close 09jun20pz
\ fload-open fload-close 30jun20pz
| : i/o-status?abort i/o-status? IF cr
fload-dev @ dos-error abort THEN ;
defer on-fload ' noop is on-fload
| : fload-open ( addr c -- )
fload-dev @
on-fload fload-dev @
fload-2nd @ 1- dup fload-2nd !
busopen
2dup cr type bustype
busopen bustype
" ,s,r" count bustype busoff
i/o-status?abort ;

15
6502/C64/tests/evaluate-test.sh Executable file
View File

@ -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

View File

@ -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 ;

View File

@ -1,4 +1,8 @@
include logtofile.fth
logopen" test.log"
: \vf [compile] \ ; immediate
include ans-shim.fth
@ -13,11 +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

View File

@ -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

View File

@ -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
---------------------------