mode tests (3)
authorLaurent Mazet <mazet@softndesign.org>
Mon, 24 Jun 2024 05:47:25 +0000 (07:47 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Mon, 24 Jun 2024 05:47:25 +0000 (07:47 +0200)
function.c
gameoflife.c

index c24b31921237d55ddb278a8e34d6f26f24ee6d0f..b554b5f25a706f3d9141feae80384c5b5679bbfc 100644 (file)
@@ -205,8 +205,6 @@ board_t *loadboard (char *str)
     if ((tab) && (strlen (tab) == (size_t)(xsize * ysize))) {
         board = initboard (xsize, ysize);
         memcpy (board->tab, tab, xsize * ysize);
-    } else if (xsize * ysize > 0) {
-        board = initboard (xsize, ysize);
     }
 
     return board;
index ef6b6afb15e07ce80f4735f8a04510e3d024fff1..03a96c2af4a17c1f6f53782e54e48b5c45226c0b 100644 (file)
@@ -151,6 +151,29 @@ int main (int argc, char *argv[])
         return 1;
     }
 
+    /* load data */
+    char *buffer = NULL;
+    board_t *element = NULL;
+    int xelement = 0;
+    int yelement = 0;
+    if (file) {
+        buffer = readdata (file);
+        if (buffer) {
+            element = loadboard (buffer);
+            if (element == NULL) {
+                VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", file));
+                return 1;
+            }
+            free (buffer);
+        } else {
+            VERBOSE (ERROR, fprintf (stderr, "can't read file (%s)\n", file));
+            return 1;
+        }
+    } else { /* mono cell */
+        element = initboard (1, 1);
+        element->tab[0] = 'X';
+    }
+
     /* init curses window */
     initscr ();
     noecho ();
@@ -171,34 +194,13 @@ int main (int argc, char *argv[])
     }
     board_t *board = initboard (xsize, ysize);
 
-    /* load data */
-    char *buffer = NULL;
-    board_t *element = NULL;
-    int xelement = 0;
-    int yelement = 0;
-    if (file) {
-        buffer = readdata (file);
-        if (buffer) {
-            element = loadboard (buffer);
-            free (buffer);
-        }
-        if (element == NULL) {
-            VERBOSE (ERROR, fprintf (stderr, "incorrect file (%s)\n", file));
-            endwin ();
-            return 1;
-        }
-        xelement = (xsize - element->xsize) / 2;
-        yelement = (ysize - element->ysize) / 2;
-    } else { /* mono cell */
-        element = initboard (1, 1);
-        element->tab[0] = 'X';
-    }
-
     /* window positions */
     int xboard = xoffset + 1;
     int yboard = xoffset + 1;
     int xhelp = xboard + xoffset + 1 + board->xsize;
     int yhelp = yboard;
+    xelement = (xsize - element->xsize) / 2;
+    yelement = (ysize - element->ysize) / 2;
 
     /* init windows */
     helpwindow (help, xhelp, yhelp);
@@ -310,7 +312,8 @@ int main (int argc, char *argv[])
 }
 
 /* test: gameoflife.exe -e 2>&1 | grep 'no board' */
-/* test: gameoflife.exe -e gameoflife.c 2>&1 | grep 'incorrect file' */
+/* test: gameoflife.exe -e nofile.gol 2>&1 | grep "can't read file" */
+/* test: gameoflife.exe -e bogus.gol 2>&1 | grep 'incorrect file' */
 /* test: gameoflife.exe -h | grep usage */
 /* test--: gameoflife.exe -p file.gol 2>&1 | grep 'not found' */
 /* test: gameoflife.exe -s 2>&1 | grep 'no speed' */
@@ -320,6 +323,8 @@ int main (int argc, char *argv[])
 /* test: gameoflife.exe -y 2>&1 | grep 'no height' */
 /* test: gameoflife.exe _ 2>&1 | grep invalid */
 /* test: echo -n q | gameoflife.exe -e glider.gol */
-/* test: { echo clllldc; sleep 2; echo -n q; } | gameoflife.exe -e glider.gol */
+/* test: { echo clllldckkkrcjjjjcxfcilililecs; sleep 5; echo -n q; } | gameoflife.exe -e glider.gol -v 2 -s 2 */
+/* test: { echo icklckcjcjckjs; sleep 2; echo; sleep 1; echo -n q; } | gameoflife.exe -x 5 -y 5 */
+/* test: { echo cllllrckkkkjjd; sleep 3; echo -n q; } | gameoflife.exe -e beehive.gol -s 1 */
 
 /* vim: set ts=4 sw=4 et: */