From: Groepaz (groepaz_at_gmx.net)
Date: 2003-03-03 05:29:24
hyho!
as another "cleaning out the closet" project i have worked a little on making
that testsuite (which was in my earlier clumsy snapshot) somewhat useful in
practice....
1) it now builds without the need of "external" files, except for what comes
with cc65, plus pucrunch to pack the files and the "c1541" tool to generate
the final .d81 image (unfortunatly they wont fit on a d64 image even when
packed :/)
2) the complete testsuite runs in "one shot". each program tries to load and
execute the next file on disc. the only manual interaction needed atm is
loading the first test (a bug in vice makes autorun fail :/) and run it...and
closing the emulator window when all tests are finished. all tests write
their output to disc instead of printing it out.
3) i have written some little script that will take care of building the
testsuite, launching emulator, grabbing the written output from the d81
image, and generating a somewhat pretty (or not :=P) report in html format.
(oh this uses petcat, but you have that if you have c1541 :=P)...i'm
currently generating a brief overview page which basically tells which tests
passed and which didnt, plus a page with detailed info for each file
tjam...so if you got any ideas/wishes/wild dreams let me know before i upload,
coz i probably will never touch it again after that :=P
however, what i can already tell are two bugs which the testsuite reports: (oh
i have upgraded to latest snapshot two or three days ago)...
1) in section "strings"
if( ".\"."[1] != '"' )
{
printf("shouldnt come here\n");
}
ok its not the type of code everyone writes, but still... :O)
2) in section "bitwise/logical operators"
long list of errors here actually....for example:
if(((char)12 | (short)10) != 14) {
printf("shouldnt come here\n");
}
if(((char)12 ^ (short)10) != 6) {
printf("shouldnt come here\n");
}
if(((char)12 | (int)10) != 14) {
printf("shouldnt come here\n");
}
if(((char)12 ^ (int)10) != 6) {
printf("shouldnt come here\n");
}
if(((short)12 | (char)10) != 14) {
printf("shouldnt come here\n");
}
if(((short)12 ^ (char)10) != 6) {
printf("shouldnt come here\n");
}
...etc, a bunch more of that kind.
this might however be a problem with typecasting and not the
operators....maybe both :=P
anyway, its nice to see that the compiler passes all other test (of which some
contain quite screwed code :=P) fine (this wasnt the case last time i checked
:=))...well except some minor problems caused by some characters missing on
c64 (i will try to work around this so these tests report "passed" aswell).
its also cool to see that the compiler _compiles_ all tests, since that kinda
proofs that it can do what the standard says (except some features which are
explicitly defined out...basically struct limitations,no bitfields,no
floats).
so long,
gpz
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-03-03 05:24:51 CET