変数名の整理
[YACASL2.git] / test / unit / cerrtest / cerrtest.c
index ed8d0ae..8e3ea72 100644 (file)
@@ -1,6 +1,41 @@
 #include <stdio.h>
 #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;
 }