X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=test%2Funit%2Fcerrtest%2Fcerrtest.c;h=8e3ea7200b84239be3c9bcdb3521d1e1ad63cf71;hp=ed8d0ae19158d5005bf40efc9349d200b56f2ad9;hb=4ee27a568fb9222907a566e59aaefe248f08a8e4;hpb=d2638d2dd5f2437cabbf752c89042ca49347a248 diff --git a/test/unit/cerrtest/cerrtest.c b/test/unit/cerrtest/cerrtest.c index ed8d0ae..8e3ea72 100644 --- a/test/unit/cerrtest/cerrtest.c +++ b/test/unit/cerrtest/cerrtest.c @@ -1,6 +1,41 @@ #include #include "casl2.h" +static CERR cerr_utest[] = { + { 101, "label already defined" }, + { 102, "label table is full" }, + { 103, "label not found" }, + { 104, "label length is too long" }, + { 105, "no command in the line" }, + { 106, "operand count mismatch" }, + { 107, "no label in START" }, + { 108, "not command of operand \"r\"" }, + { 109, "not command of operand \"r1,r2\"" }, + { 110, "not command of operand \"r,adr[,x]\"" }, + { 111, "not command of operand \"adr[,x]\"" }, + { 112, "not command of no operand" }, + { 113, "command not defined" }, + { 114, "not integer" }, + { 115, "not hex" }, + { 116, "out of hex range" }, + { 117, "operand is too many" }, + { 118, "operand length is too long" }, + { 119, "out of COMET II memory" }, + { 120, "GR0 in operand x" }, + { 121, "cannot get operand token" }, + { 122, "cannot create hash table" }, + { 123, "unclosed quote" }, + { 124, "more than one character in literal" }, + { 125, "not GR in operand x" }, + { 201, "execute - out of COMET II memory" }, + { 202, "SVC input - out of Input memory" }, + { 203, "SVC output - out of COMET II memory" }, + { 204, "Program Register (PR) - out of COMET II memory" }, + { 205, "Stack Pointer (SP) - cannot allocate stack buffer" }, + { 206, "Address - out of COMET II memory" }, + { 207, "Stack Pointer (SP) - out of COMET II memory" }, +}; + int main(){ int i, j; int code[] = { @@ -9,15 +44,15 @@ int main(){ 121, 122, 123, 124, 201, 202, 203, 204, 205, 206, 207, 999 }; const char *str[] = {NULL, "foobar"}; - - for(i = 0; i < sizeof(str)/sizeof(str[0]); i++) { - for(j = 0; j < sizeof(code)/sizeof(code[0]); j++) { + addcerrlist(ARRAYSIZE(cerr_utest), cerr_utest); + /* エラーの初期化 */ + cerr = malloc_chk(sizeof(CERR), "cerr"); + for(i = 0; i < ARRAYSIZE(str); i++) { + for(j = 0; j < ARRAYSIZE(code); j++) { setcerr(code[j], str[i]); - printf("%d: %s - %d\t%s\n", code[j], str[i], cerrno, cerrmsg); - if(cerrno != 0) { - freecerr(); - } + printf("%d: %s - %d\t%s\n", code[j], str[i], cerr->num, cerr->msg); } } + freecerr(); return 0; }