summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-08-21 16:18:14 +0000
committerpeter <peter@pmikkelsen.com>2026-08-21 16:18:14 +0000
commitfabbd7590258478f4304ac6cdd9996d4a86eafd9 (patch)
tree6665ee5971e2f2e3b49032427b66c2894cefd716 /tests
parent8af7b7fc0a8dbe3502a7cd43c6a10fdcc6013677 (diff)
More work on the scanner and tests for it
FossilOrigin-Name: 037c88ce86e1ba3a399c03a27d4c7252b52c2f500bc13f449e19e497b0607880
Diffstat (limited to 'tests')
-rw-r--r--tests/aplwc_read.c48
-rw-r--r--tests/aplwc_read/bad/1.txt2
-rw-r--r--tests/aplwc_read/bad/2.txt1
-rw-r--r--tests/aplwc_read/good/1.txt1
-rw-r--r--tests/aplwc_read/good/2.txt4
-rw-r--r--tests/aplwc_read/good/3.txt1
-rw-r--r--tests/aplwc_read/good/4.txt1
-rw-r--r--tests/aplwc_read/good/5.txt1
8 files changed, 59 insertions, 0 deletions
diff --git a/tests/aplwc_read.c b/tests/aplwc_read.c
new file mode 100644
index 0000000..b011151
--- /dev/null
+++ b/tests/aplwc_read.c
@@ -0,0 +1,48 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <aplwc.h>
+
+int
+main(int argc, char *argv[])
+{
+ uint8_t data[APLWC_MIN_MEM+100];
+ char *input;
+ struct aplwc *aplwc;
+ struct aplwc_line *line;
+ enum aplwc_rc ret;
+ FILE *f;
+ long input_size;
+
+ if(argc != 2)
+ return 1;
+
+ f = fopen(argv[1], "r");
+ if(f == NULL)
+ return 1;
+ if(fseek(f, 0, SEEK_END))
+ return 1;
+ input_size = ftell(f);
+ if(input_size < 0)
+ return 1;
+ rewind(f);
+
+ input = malloc(input_size+1);
+ if(input == NULL)
+ return 1;
+ if(fread(input, 1, input_size, f) < (size_t)input_size)
+ return 1;
+ input[input_size] = 0;
+
+ ret = aplwc_new(&aplwc, data, sizeof(data));
+ if(ret)
+ return 1;
+
+ line = aplwc_read(aplwc, input);
+ if((line == NULL) && (aplwc_last_error(aplwc) != APLWC_OUT_OF_MEMORY))
+ return 1;
+ aplwc_free_line(line);
+ aplwc_destroy(aplwc);
+ free(input);
+
+ return 0;
+}
diff --git a/tests/aplwc_read/bad/1.txt b/tests/aplwc_read/bad/1.txt
new file mode 100644
index 0000000..422c2b7
--- /dev/null
+++ b/tests/aplwc_read/bad/1.txt
@@ -0,0 +1,2 @@
+a
+b
diff --git a/tests/aplwc_read/bad/2.txt b/tests/aplwc_read/bad/2.txt
new file mode 100644
index 0000000..94226da
--- /dev/null
+++ b/tests/aplwc_read/bad/2.txt
@@ -0,0 +1 @@
+2a
diff --git a/tests/aplwc_read/good/1.txt b/tests/aplwc_read/good/1.txt
new file mode 100644
index 0000000..7898192
--- /dev/null
+++ b/tests/aplwc_read/good/1.txt
@@ -0,0 +1 @@
+a
diff --git a/tests/aplwc_read/good/2.txt b/tests/aplwc_read/good/2.txt
new file mode 100644
index 0000000..ce63f2c
--- /dev/null
+++ b/tests/aplwc_read/good/2.txt
@@ -0,0 +1,4 @@
+a
+
+
+
diff --git a/tests/aplwc_read/good/3.txt b/tests/aplwc_read/good/3.txt
new file mode 100644
index 0000000..73c6204
--- /dev/null
+++ b/tests/aplwc_read/good/3.txt
@@ -0,0 +1 @@
+a1 b_2 cd_ef3
diff --git a/tests/aplwc_read/good/4.txt b/tests/aplwc_read/good/4.txt
new file mode 100644
index 0000000..1d7510c
--- /dev/null
+++ b/tests/aplwc_read/good/4.txt
@@ -0,0 +1 @@
+a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
diff --git a/tests/aplwc_read/good/5.txt b/tests/aplwc_read/good/5.txt
new file mode 100644
index 0000000..4a873df
--- /dev/null
+++ b/tests/aplwc_read/good/5.txt
@@ -0,0 +1 @@
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa