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