summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorpeter <peter@pmikkelsen.com>2026-10-02 20:04:59 +0000
committerpeter <peter@pmikkelsen.com>2026-10-02 20:04:59 +0000
commit8dcf2fab04ae0cb761b361d0cbc56faec83f285a (patch)
treefc32f5a78f779211e502243248b8800a3f2ee25f /tests
parent4c6ff102c89b0d18cdcca666927243190a42bf68 (diff)
Start adding some support for finding crashes using fuzzing.
As of this commits, a lot of tests will fail. FossilOrigin-Name: b69b0e75daaa2ac3959f7a474207ba786823d1a5f8147cfe280df729cb829713
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am6
-rw-r--r--tests/fuzz-crashes/1.fuzz2
-rw-r--r--tests/fuzz-crashes/10.fuzz3
-rw-r--r--tests/fuzz-crashes/11.fuzz7
-rw-r--r--tests/fuzz-crashes/12.fuzz8
-rw-r--r--tests/fuzz-crashes/13.fuzz5
-rw-r--r--tests/fuzz-crashes/14.fuzz5
-rw-r--r--tests/fuzz-crashes/15.fuzz5
-rw-r--r--tests/fuzz-crashes/16.fuzzbin0 -> 64 bytes
-rw-r--r--tests/fuzz-crashes/17.fuzz6
-rw-r--r--tests/fuzz-crashes/18.fuzz5
-rw-r--r--tests/fuzz-crashes/19.fuzz1
-rw-r--r--tests/fuzz-crashes/2.fuzz3
-rw-r--r--tests/fuzz-crashes/20.fuzz19
-rw-r--r--tests/fuzz-crashes/21.fuzz18
-rw-r--r--tests/fuzz-crashes/22.fuzz40
-rw-r--r--tests/fuzz-crashes/23.fuzz26
-rw-r--r--tests/fuzz-crashes/24.fuzzbin0 -> 101 bytes
-rw-r--r--tests/fuzz-crashes/25.fuzzbin0 -> 84 bytes
-rw-r--r--tests/fuzz-crashes/26.fuzz11
-rw-r--r--tests/fuzz-crashes/27.fuzz7
-rw-r--r--tests/fuzz-crashes/28.fuzzbin0 -> 105 bytes
-rw-r--r--tests/fuzz-crashes/29.fuzz1
-rw-r--r--tests/fuzz-crashes/3.fuzz3
-rw-r--r--tests/fuzz-crashes/30.fuzz42
-rw-r--r--tests/fuzz-crashes/31.fuzzbin0 -> 108 bytes
-rw-r--r--tests/fuzz-crashes/32.fuzzbin0 -> 97 bytes
-rw-r--r--tests/fuzz-crashes/33.fuzzbin0 -> 34 bytes
-rw-r--r--tests/fuzz-crashes/34.fuzzbin0 -> 95 bytes
-rw-r--r--tests/fuzz-crashes/35.fuzzbin0 -> 128 bytes
-rw-r--r--tests/fuzz-crashes/36.fuzzbin0 -> 90 bytes
-rw-r--r--tests/fuzz-crashes/37.fuzzbin0 -> 140 bytes
-rw-r--r--tests/fuzz-crashes/38.fuzz2
-rw-r--r--tests/fuzz-crashes/39.fuzz3
-rw-r--r--tests/fuzz-crashes/4.fuzz3
-rw-r--r--tests/fuzz-crashes/40.fuzz3
-rw-r--r--tests/fuzz-crashes/41.fuzz4
-rw-r--r--tests/fuzz-crashes/42.fuzzbin0 -> 39 bytes
-rw-r--r--tests/fuzz-crashes/43.fuzz5
-rw-r--r--tests/fuzz-crashes/44.fuzz3
-rw-r--r--tests/fuzz-crashes/45.fuzz1
-rw-r--r--tests/fuzz-crashes/46.fuzz1
-rw-r--r--tests/fuzz-crashes/47.fuzz3
-rw-r--r--tests/fuzz-crashes/48.fuzzbin0 -> 20 bytes
-rw-r--r--tests/fuzz-crashes/49.fuzz5
-rw-r--r--tests/fuzz-crashes/5.fuzz5
-rw-r--r--tests/fuzz-crashes/50.fuzz3
-rw-r--r--tests/fuzz-crashes/51.fuzz9
-rw-r--r--tests/fuzz-crashes/52.fuzz2
-rw-r--r--tests/fuzz-crashes/53.fuzz3
-rw-r--r--tests/fuzz-crashes/54.fuzzbin0 -> 67 bytes
-rw-r--r--tests/fuzz-crashes/55.fuzz1
-rw-r--r--tests/fuzz-crashes/56.fuzz3
-rw-r--r--tests/fuzz-crashes/57.fuzz2
-rw-r--r--tests/fuzz-crashes/58.fuzzbin0 -> 85 bytes
-rw-r--r--tests/fuzz-crashes/59.fuzzbin0 -> 69 bytes
-rw-r--r--tests/fuzz-crashes/6.fuzz5
-rw-r--r--tests/fuzz-crashes/60.fuzz30
-rw-r--r--tests/fuzz-crashes/61.fuzzbin0 -> 34 bytes
-rw-r--r--tests/fuzz-crashes/62.fuzz39
-rw-r--r--tests/fuzz-crashes/63.fuzz5
-rw-r--r--tests/fuzz-crashes/64.fuzzbin0 -> 139 bytes
-rw-r--r--tests/fuzz-crashes/65.fuzz32
-rw-r--r--tests/fuzz-crashes/66.fuzzbin0 -> 15 bytes
-rw-r--r--tests/fuzz-crashes/67.fuzzbin0 -> 188 bytes
-rw-r--r--tests/fuzz-crashes/68.fuzz40
-rw-r--r--tests/fuzz-crashes/69.fuzz7
-rw-r--r--tests/fuzz-crashes/7.fuzz7
-rw-r--r--tests/fuzz-crashes/70.fuzz4
-rw-r--r--tests/fuzz-crashes/71.fuzz1
-rw-r--r--tests/fuzz-crashes/72.fuzzbin0 -> 133 bytes
-rw-r--r--tests/fuzz-crashes/73.fuzz7
-rw-r--r--tests/fuzz-crashes/74.fuzzbin0 -> 162 bytes
-rw-r--r--tests/fuzz-crashes/75.fuzz23
-rw-r--r--tests/fuzz-crashes/76.fuzz15
-rw-r--r--tests/fuzz-crashes/77.fuzz34
-rw-r--r--tests/fuzz-crashes/8.fuzzbin0 -> 20 bytes
-rw-r--r--tests/fuzz-crashes/9.fuzz5
-rw-r--r--tests/fuzz-crashes/Makefile.am1
-rwxr-xr-xtests/run_fuzz_test.sh11
80 files changed, 550 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bea1bac..27fd83f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -80,3 +80,9 @@ TEST_SCRIPTS_APLWC += \
tests/scripts/bad/11.aplwc \
tests/scripts/bad/12.aplwc \
tests/scripts/bad/13.aplwc
+
+TEST_EXTENSIONS += .fuzz
+FUZZ_LOG_COMPILER = $(top_srcdir)/tests/run_fuzz_test.sh
+EXTRA_DIST += $(FUZZ_LOG_COMPILER)
+
+include tests/fuzz-crashes/Makefile.am
diff --git a/tests/fuzz-crashes/1.fuzz b/tests/fuzz-crashes/1.fuzz
new file mode 100644
index 0000000..b3f468a
--- /dev/null
+++ b/tests/fuzz-crashes/1.fuzz
@@ -0,0 +1,2 @@
+#!00000000000000
+:'
diff --git a/tests/fuzz-crashes/10.fuzz b/tests/fuzz-crashes/10.fuzz
new file mode 100644
index 0000000..0b5460a
--- /dev/null
+++ b/tests/fuzz-crashes/10.fuzz
@@ -0,0 +1,3 @@
+ f00 0+00∇
+
+∇:f
diff --git a/tests/fuzz-crashes/11.fuzz b/tests/fuzz-crashes/11.fuzz
new file mode 100644
index 0000000..6133ee7
--- /dev/null
+++ b/tests/fuzz-crashes/11.fuzz
@@ -0,0 +1,7 @@
+#:00000000000000
+ f00 x
+ ⎕←x+x
+∇00
+
+'
+'
diff --git a/tests/fuzz-crashes/12.fuzz b/tests/fuzz-crashes/12.fuzz
new file mode 100644
index 0000000..bef576e
--- /dev/null
+++ b/tests/fuzz-crashes/12.fuzz
@@ -0,0 +1,8 @@
+#!000000000000000
+
+:exp000000000000
+
+:module
+ort plu æs 00
+
+'
diff --git a/tests/fuzz-crashes/13.fuzz b/tests/fuzz-crashes/13.fuzz
new file mode 100644
index 0000000..0006719
--- /dev/null
+++ b/tests/fuzz-crashes/13.fuzz
@@ -0,0 +1,5 @@
+#0000
+
+::::::::::us dxport plus 00
+
+'
diff --git a/tests/fuzz-crashes/14.fuzz b/tests/fuzz-crashes/14.fuzz
new file mode 100644
index 0000000..2233b0d
--- /dev/null
+++ b/tests/fuzz-crashes/14.fuzz
@@ -0,0 +1,5 @@
+#!00000000-000000
+:exp.0000
+ort plus 00
+
+'
diff --git a/tests/fuzz-crashes/15.fuzz b/tests/fuzz-crashes/15.fuzz
new file mode 100644
index 0000000..1978d4f
--- /dev/null
+++ b/tests/fuzz-crashes/15.fuzz
@@ -0,0 +1,5 @@
+#!000000000000000
+
+::::::!00000000000000
+
+'''''''.
diff --git a/tests/fuzz-crashes/16.fuzz b/tests/fuzz-crashes/16.fuzz
new file mode 100644
index 0000000..330570d
--- /dev/null
+++ b/tests/fuzz-crashes/16.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/17.fuzz b/tests/fuzz-crashes/17.fuzz
new file mode 100644
index 0000000..8e7d484
--- /dev/null
+++ b/tests/fuzz-crashes/17.fuzz
@@ -0,0 +1,6 @@
+#!000000000000000
+
+:expo######"
+####!0###########!0####################rt plus 00
+
+'
diff --git a/tests/fuzz-crashes/18.fuzz b/tests/fuzz-crashes/18.fuzz
new file mode 100644
index 0000000..0c3ff83
--- /dev/null
+++ b/tests/fuzz-crashes/18.fuzz
@@ -0,0 +1,5 @@
+#9000 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@000000000000
+
+:expoqt p@@@@@@@@@@@@@@@@@@@@lus 00
+
+'
diff --git a/tests/fuzz-crashes/19.fuzz b/tests/fuzz-crashes/19.fuzz
new file mode 100644
index 0000000..e47c9e4
--- /dev/null
+++ b/tests/fuzz-crashes/19.fuzz
@@ -0,0 +1 @@
+ 0000000000000%000000000000000:1'0 \ No newline at end of file
diff --git a/tests/fuzz-crashes/2.fuzz b/tests/fuzz-crashes/2.fuzz
new file mode 100644
index 0000000..334fe5f
--- /dev/null
+++ b/tests/fuzz-crashes/2.fuzz
@@ -0,0 +1,3 @@
+:!00000000000000
+
+'
diff --git a/tests/fuzz-crashes/20.fuzz b/tests/fuzz-crashes/20.fuzz
new file mode 100644
index 0000000..2010544
--- /dev/null
+++ b/tests/fuzz-crashes/20.fuzz
@@ -0,0 +1,19 @@
+#!000000000000000
+
+:export pXus 0000
+
+pp\ppppppppp'
+00
+
+0000
+
+!000000000
+
+:symbol plus
+00
+
+0000
+
+!r)))0000000000
+
+:symbo'
diff --git a/tests/fuzz-crashes/21.fuzz b/tests/fuzz-crashes/21.fuzz
new file mode 100644
index 0000000..feedbd6
--- /dev/null
+++ b/tests/fuzz-crashes/21.fuzz
@@ -0,0 +1,18 @@
+#!000
+
+:export pt #!00000000000000
+
+'
+#!s 000"
+
+pp\pppppppp0
+
+:e00p'
+00
+
+000
+
+
+!r)F)000000000000
+
+'
diff --git a/tests/fuzz-crashes/22.fuzz b/tests/fuzz-crashes/22.fuzz
new file mode 100644
index 0000000..8f73ef9
--- /dev/null
+++ b/tests/fuzz-crashes/22.fuzz
@@ -0,0 +1,40 @@
+#!000000000000000
+
+:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+
+
+
+
+
+
+
+
+
+export pXus 0000
+
+pp\pppppp]pp'
+00
+
+000000
+
+'
diff --git a/tests/fuzz-crashes/23.fuzz b/tests/fuzz-crashes/23.fuzz
new file mode 100644
index 0000000..08fb8ef
--- /dev/null
+++ b/tests/fuzz-crashes/23.fuzz
@@ -0,0 +1,26 @@
+#!0000000000
+
+
+
+
+
+00000
+
+:exp00000000))
+0000
+
+!r0000
+ort prt p#########<<<<<Xus >000
+
+pp\ppppppppp600
+
+!r)))000
+00
+
+0/
+
+▇ 000000▇ 0
+'
+0
+
+'
diff --git a/tests/fuzz-crashes/24.fuzz b/tests/fuzz-crashes/24.fuzz
new file mode 100644
index 0000000..9cd485a
--- /dev/null
+++ b/tests/fuzz-crashes/24.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/25.fuzz b/tests/fuzz-crashes/25.fuzz
new file mode 100644
index 0000000..91146cb
--- /dev/null
+++ b/tests/fuzz-crashes/25.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/26.fuzz b/tests/fuzz-crashes/26.fuzz
new file mode 100644
index 0000000..daba95c
--- /dev/null
+++ b/tests/fuzz-crashes/26.fuzz
@@ -0,0 +1,11 @@
+#!000000000000000
+
+:export pre p#<<000000
+
+:ex00
+
+:expvrt prt p#########<<@0
+
+!r)))000000000@00
+
+'
diff --git a/tests/fuzz-crashes/27.fuzz b/tests/fuzz-crashes/27.fuzz
new file mode 100644
index 0000000..fb7a5fc
--- /dev/null
+++ b/tests/fuzz-crashes/27.fuzz
@@ -0,0 +1,7 @@
+E!OOOO000000000
+
+:e_porOOOOO%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00000
+
+:expo%%%%%us 00
+
+'
diff --git a/tests/fuzz-crashes/28.fuzz b/tests/fuzz-crashes/28.fuzz
new file mode 100644
index 0000000..971b014
--- /dev/null
+++ b/tests/fuzz-crashes/28.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/29.fuzz b/tests/fuzz-crashes/29.fuzz
new file mode 100644
index 0000000..970ccc6
--- /dev/null
+++ b/tests/fuzz-crashes/29.fuzz
@@ -0,0 +1 @@
+:: \ No newline at end of file
diff --git a/tests/fuzz-crashes/3.fuzz b/tests/fuzz-crashes/3.fuzz
new file mode 100644
index 0000000..aafbf74
--- /dev/null
+++ b/tests/fuzz-crashes/3.fuzz
@@ -0,0 +1,3 @@
+#:00000000000000
+
+'
diff --git a/tests/fuzz-crashes/30.fuzz b/tests/fuzz-crashes/30.fuzz
new file mode 100644
index 0000000..48c3b16
--- /dev/null
+++ b/tests/fuzz-crashes/30.fuzz
@@ -0,0 +1,42 @@
+#!000000000000001
+
+:e0000000010000000000001
+
+:e0000000
+
+:exporN!000
+
+
+
+
+
+
+
+
+
+
+
+exc!000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0000
+
+!r)))000000000000
+
+'
diff --git a/tests/fuzz-crashes/31.fuzz b/tests/fuzz-crashes/31.fuzz
new file mode 100644
index 0000000..c49d136
--- /dev/null
+++ b/tests/fuzz-crashes/31.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/32.fuzz b/tests/fuzz-crashes/32.fuzz
new file mode 100644
index 0000000..e352b4f
--- /dev/null
+++ b/tests/fuzz-crashes/32.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/33.fuzz b/tests/fuzz-crashes/33.fuzz
new file mode 100644
index 0000000..e16c989
--- /dev/null
+++ b/tests/fuzz-crashes/33.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/34.fuzz b/tests/fuzz-crashes/34.fuzz
new file mode 100644
index 0000000..fb4f1fd
--- /dev/null
+++ b/tests/fuzz-crashes/34.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/35.fuzz b/tests/fuzz-crashes/35.fuzz
new file mode 100644
index 0000000..95546ec
--- /dev/null
+++ b/tests/fuzz-crashes/35.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/36.fuzz b/tests/fuzz-crashes/36.fuzz
new file mode 100644
index 0000000..5c6db57
--- /dev/null
+++ b/tests/fuzz-crashes/36.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/37.fuzz b/tests/fuzz-crashes/37.fuzz
new file mode 100644
index 0000000..aa7efbe
--- /dev/null
+++ b/tests/fuzz-crashes/37.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/38.fuzz b/tests/fuzz-crashes/38.fuzz
new file mode 100644
index 0000000..b3f468a
--- /dev/null
+++ b/tests/fuzz-crashes/38.fuzz
@@ -0,0 +1,2 @@
+#!00000000000000
+:'
diff --git a/tests/fuzz-crashes/39.fuzz b/tests/fuzz-crashes/39.fuzz
new file mode 100644
index 0000000..334fe5f
--- /dev/null
+++ b/tests/fuzz-crashes/39.fuzz
@@ -0,0 +1,3 @@
+:!00000000000000
+
+'
diff --git a/tests/fuzz-crashes/4.fuzz b/tests/fuzz-crashes/4.fuzz
new file mode 100644
index 0000000..f3104fc
--- /dev/null
+++ b/tests/fuzz-crashes/4.fuzz
@@ -0,0 +1,3 @@
+!00000000000000
+
+:sy \ No newline at end of file
diff --git a/tests/fuzz-crashes/40.fuzz b/tests/fuzz-crashes/40.fuzz
new file mode 100644
index 0000000..aafbf74
--- /dev/null
+++ b/tests/fuzz-crashes/40.fuzz
@@ -0,0 +1,3 @@
+#:00000000000000
+
+'
diff --git a/tests/fuzz-crashes/41.fuzz b/tests/fuzz-crashes/41.fuzz
new file mode 100644
index 0000000..3ad884c
--- /dev/null
+++ b/tests/fuzz-crashes/41.fuzz
@@ -0,0 +1,4 @@
+#000000
+0
+:s@mbol
+' \ No newline at end of file
diff --git a/tests/fuzz-crashes/42.fuzz b/tests/fuzz-crashes/42.fuzz
new file mode 100644
index 0000000..82f171d
--- /dev/null
+++ b/tests/fuzz-crashes/42.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/43.fuzz b/tests/fuzz-crashes/43.fuzz
new file mode 100644
index 0000000..35e153b
--- /dev/null
+++ b/tests/fuzz-crashes/43.fuzz
@@ -0,0 +1,5 @@
+#!00000000#!00000000000000
+
+:module000000
+
+'
diff --git a/tests/fuzz-crashes/44.fuzz b/tests/fuzz-crashes/44.fuzz
new file mode 100644
index 0000000..60c14dd
--- /dev/null
+++ b/tests/fuzz-crashes/44.fuzz
@@ -0,0 +1,3 @@
+0:000000000/000
+
+''
diff --git a/tests/fuzz-crashes/45.fuzz b/tests/fuzz-crashes/45.fuzz
new file mode 100644
index 0000000..46a17b8
--- /dev/null
+++ b/tests/fuzz-crashes/45.fuzz
@@ -0,0 +1 @@
+#!00!0000000000000:0 \ No newline at end of file
diff --git a/tests/fuzz-crashes/46.fuzz b/tests/fuzz-crashes/46.fuzz
new file mode 100644
index 0000000..397db75
--- /dev/null
+++ b/tests/fuzz-crashes/46.fuzz
@@ -0,0 +1 @@
+:
diff --git a/tests/fuzz-crashes/47.fuzz b/tests/fuzz-crashes/47.fuzz
new file mode 100644
index 0000000..932bb92
--- /dev/null
+++ b/tests/fuzz-crashes/47.fuzz
@@ -0,0 +1,3 @@
+}}}}}}}}}}}}}}}}}}}}}}}}}00#!00000000:00000
+
+'
diff --git a/tests/fuzz-crashes/48.fuzz b/tests/fuzz-crashes/48.fuzz
new file mode 100644
index 0000000..acdba91
--- /dev/null
+++ b/tests/fuzz-crashes/48.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/49.fuzz b/tests/fuzz-crashes/49.fuzz
new file mode 100644
index 0000000..01fdf9e
--- /dev/null
+++ b/tests/fuzz-crashes/49.fuzz
@@ -0,0 +1,5 @@
+#!por00000.*0000000
+
+:expor00000.*00000
+
+'
diff --git a/tests/fuzz-crashes/5.fuzz b/tests/fuzz-crashes/5.fuzz
new file mode 100644
index 0000000..d8e8a18
--- /dev/null
+++ b/tests/fuzz-crashes/5.fuzz
@@ -0,0 +1,5 @@
+00000000
+
+:expo0
+
+'% \ No newline at end of file
diff --git a/tests/fuzz-crashes/50.fuzz b/tests/fuzz-crashes/50.fuzz
new file mode 100644
index 0000000..4df9cbd
--- /dev/null
+++ b/tests/fuzz-crashes/50.fuzz
@@ -0,0 +1,3 @@
+#!0000%0#!00000000000000
+
+:modøå \ No newline at end of file
diff --git a/tests/fuzz-crashes/51.fuzz b/tests/fuzz-crashes/51.fuzz
new file mode 100644
index 0000000..cd4f48a
--- /dev/null
+++ b/tests/fuzz-crashes/51.fuzz
@@ -0,0 +1,9 @@
+#!00000000000#!00000000000000
+
+:symb000
+
+.0000/00
+
+
+
+'
diff --git a/tests/fuzz-crashes/52.fuzz b/tests/fuzz-crashes/52.fuzz
new file mode 100644
index 0000000..ef6d0c4
--- /dev/null
+++ b/tests/fuzz-crashes/52.fuzz
@@ -0,0 +1,2 @@
+"
+:: \ No newline at end of file
diff --git a/tests/fuzz-crashes/53.fuzz b/tests/fuzz-crashes/53.fuzz
new file mode 100644
index 0000000..97efc04
--- /dev/null
+++ b/tests/fuzz-crashes/53.fuzz
@@ -0,0 +1,3 @@
+##ⱕ←000010000
+
+###'000000:00000
diff --git a/tests/fuzz-crashes/54.fuzz b/tests/fuzz-crashes/54.fuzz
new file mode 100644
index 0000000..091f1d0
--- /dev/null
+++ b/tests/fuzz-crashes/54.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/55.fuzz b/tests/fuzz-crashes/55.fuzz
new file mode 100644
index 0000000..73e4266
--- /dev/null
+++ b/tests/fuzz-crashes/55.fuzz
@@ -0,0 +1 @@
+#+++*++:$$$$$$$$$$$$$$$++!++$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++!++++8+ \ No newline at end of file
diff --git a/tests/fuzz-crashes/56.fuzz b/tests/fuzz-crashes/56.fuzz
new file mode 100644
index 0000000..05a158f
--- /dev/null
+++ b/tests/fuzz-crashes/56.fuzz
@@ -0,0 +1,3 @@
+#+++*++$$$$000:0000'0:::::00008000
+
+$$$$$$$$$$$$$$$$$$$$$$$$++!++++8+ \ No newline at end of file
diff --git a/tests/fuzz-crashes/57.fuzz b/tests/fuzz-crashes/57.fuzz
new file mode 100644
index 0000000..72535f9
--- /dev/null
+++ b/tests/fuzz-crashes/57.fuzz
@@ -0,0 +1,2 @@
+#+++*++$$$$$$$$$$$$$$$$++!++$$$$$$$$$$$
+:#!0000000000:0000'0:::::++8+ \ No newline at end of file
diff --git a/tests/fuzz-crashes/58.fuzz b/tests/fuzz-crashes/58.fuzz
new file mode 100644
index 0000000..0cb1005
--- /dev/null
+++ b/tests/fuzz-crashes/58.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/59.fuzz b/tests/fuzz-crashes/59.fuzz
new file mode 100644
index 0000000..9da9975
--- /dev/null
+++ b/tests/fuzz-crashes/59.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/6.fuzz b/tests/fuzz-crashes/6.fuzz
new file mode 100644
index 0000000..e6d0382
--- /dev/null
+++ b/tests/fuzz-crashes/6.fuzz
@@ -0,0 +1,5 @@
+#!00000000000000000
+
+:symbol00K00000
+
+'
diff --git a/tests/fuzz-crashes/60.fuzz b/tests/fuzz-crashes/60.fuzz
new file mode 100644
index 0000000..3362a4a
--- /dev/null
+++ b/tests/fuzz-crashes/60.fuzz
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+#
+
+
+
+
+
+:ex
+
+
+
+
+
+
+
+
+
+
+
+:exportport plportport plus minu plus mirtport plus minu plus mi
+
+
+
+
diff --git a/tests/fuzz-crashes/61.fuzz b/tests/fuzz-crashes/61.fuzz
new file mode 100644
index 0000000..a11470e
--- /dev/null
+++ b/tests/fuzz-crashes/61.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/62.fuzz b/tests/fuzz-crashes/62.fuzz
new file mode 100644
index 0000000..a1bae13
--- /dev/null
+++ b/tests/fuzz-crashes/62.fuzz
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:export plus minus f00 æs f0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:e minus f00 plus minsxport
+
+
+:export pluus
+
+
+
+
+
diff --git a/tests/fuzz-crashes/63.fuzz b/tests/fuzz-crashes/63.fuzz
new file mode 100644
index 0000000..17e8ae3
--- /dev/null
+++ b/tests/fuzz-crashes/63.fuzz
@@ -0,0 +1,5 @@
+#!00000000000000
+
+∇ r0
+⎕←00:, 0
+∇
diff --git a/tests/fuzz-crashes/64.fuzz b/tests/fuzz-crashes/64.fuzz
new file mode 100644
index 0000000..14d5120
--- /dev/null
+++ b/tests/fuzz-crashes/64.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/65.fuzz b/tests/fuzz-crashes/65.fuzz
new file mode 100644
index 0000000..d0219bd
--- /dev/null
+++ b/tests/fuzz-crashes/65.fuzz
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:e
+
+
+
+$$$$$sZZZZZZZZZZZZZZXZZZZZZjZZZZ minus f00"æs f0
+
+
+
+
+
+
+s
+
+
+
+
+
+$$8$$
diff --git a/tests/fuzz-crashes/66.fuzz b/tests/fuzz-crashes/66.fuzz
new file mode 100644
index 0000000..ddbd662
--- /dev/null
+++ b/tests/fuzz-crashes/66.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/67.fuzz b/tests/fuzz-crashes/67.fuzz
new file mode 100644
index 0000000..ca54d42
--- /dev/null
+++ b/tests/fuzz-crashes/67.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/68.fuzz b/tests/fuzz-crashes/68.fuzz
new file mode 100644
index 0000000..9f9bcea
--- /dev/null
+++ b/tests/fuzz-crashes/68.fuzz
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:export plus minus f00
+
+
+
+
+
+:export plus minus æs f
+
+
+
+
+:export pl++++us minus:f00
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/fuzz-crashes/69.fuzz b/tests/fuzz-crashes/69.fuzz
new file mode 100644
index 0000000..e295d5e
--- /dev/null
+++ b/tests/fuzz-crashes/69.fuzz
@@ -0,0 +1,7 @@
+
+
+
+:export plus mi\us f00 æs f$+$$$$$$$$$$
+$$$$$$$$$$$$$$$$$$$$${{n{{p0000@l$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$++!++$$$$$%$$$@#$$$$$$$$$$$$$$$$$$$$$$$$$${{{[{p0000@l$inus f00 æ$$$$$$$00000
+
+':$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$++←00$$$$$++8+ \ No newline at end of file
diff --git a/tests/fuzz-crashes/7.fuzz b/tests/fuzz-crashes/7.fuzz
new file mode 100644
index 0000000..1cae677
--- /dev/null
+++ b/tests/fuzz-crashes/7.fuzz
@@ -0,0 +1,7 @@
+00000000
+
+:s00
+
+'00'#!00000000000000
+
+'
diff --git a/tests/fuzz-crashes/70.fuzz b/tests/fuzz-crashes/70.fuzz
new file mode 100644
index 0000000..183ca85
--- /dev/null
+++ b/tests/fuzz-crashes/70.fuzz
@@ -0,0 +1,4 @@
+
+
+
+:export plus minus f00 æs f$+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$${{n{{p0000@lus mi$$:#$$$$$#$$+$$$$$$$$$$$$$$$$++!++$$$$$%$$$@#$$$$$$$$$$$$$$$$$$$$$$$$$$${{{{p0000@l$inus f00 æ$$$$$$$$$$$$@$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$${$$$$$$$$$$$$$$$$$$#$$$$$$$$$++←00$$$$$++8+ \ No newline at end of file
diff --git a/tests/fuzz-crashes/71.fuzz b/tests/fuzz-crashes/71.fuzz
new file mode 100644
index 0000000..14f2ae6
--- /dev/null
+++ b/tests/fuzz-crashes/71.fuzz
@@ -0,0 +1 @@
+:p,u𱱱s/m$$$$$$$$$$$$$$$$$$$$$4$$ \ No newline at end of file
diff --git a/tests/fuzz-crashes/72.fuzz b/tests/fuzz-crashes/72.fuzz
new file mode 100644
index 0000000..1a826eb
--- /dev/null
+++ b/tests/fuzz-crashes/72.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/73.fuzz b/tests/fuzz-crashes/73.fuzz
new file mode 100644
index 0000000..a2deac1
--- /dev/null
+++ b/tests/fuzz-crashes/73.fuzz
@@ -0,0 +1,7 @@
+
+
+
+:export plus mi\us f00 æs f$+$$$$$$$$$$
+$$$$$$$$$$$$$$$$$$$$vvvvvvvvvvvvvvv mi$$$#$$$$$#$$+$$$$$$$$$%$$$$$$++!++$$$$$%$$$@#$$$$$$$$$$$$$$$$$$$$$$$$$${{{{{Q0000@l$inus f00 æ$$$$$$$00000
+
+':$$$$$$$$$$$$$$$$$$$$$$$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$EEE$$$$$#$$$$$$$$$++←00$$$$$++8+ \ No newline at end of file
diff --git a/tests/fuzz-crashes/74.fuzz b/tests/fuzz-crashes/74.fuzz
new file mode 100644
index 0000000..9f4aa7f
--- /dev/null
+++ b/tests/fuzz-crashes/74.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/75.fuzz b/tests/fuzz-crashes/75.fuzz
new file mode 100644
index 0000000..151a3e8
--- /dev/null
+++ b/tests/fuzz-crashes/75.fuzz
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:export p,us minus f00"æsssssssssssssssssss%f0
+
+
+
+
+
+
+
+:eyport $$$
diff --git a/tests/fuzz-crashes/76.fuzz b/tests/fuzz-crashes/76.fuzz
new file mode 100644
index 0000000..3c62449
--- /dev/null
+++ b/tests/fuzz-crashes/76.fuzz
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:export p,us $$$$$$$$$$$$$$$$$$$$$$:$$ \ No newline at end of file
diff --git a/tests/fuzz-crashes/77.fuzz b/tests/fuzz-crashes/77.fuzz
new file mode 100644
index 0000000..171f0c2
--- /dev/null
+++ b/tests/fuzz-crashes/77.fuzz
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+æs f0
+
+
+
+
+
+
+
+
+
+
+
+
+
+$$$$$
+ZZZZZZZZZZZZZZZZZZZZ mjnus f00"
+
+
+
+
+
+
+
+:e
+
+
+
+$$$$$sZZZZZZ \ No newline at end of file
diff --git a/tests/fuzz-crashes/8.fuzz b/tests/fuzz-crashes/8.fuzz
new file mode 100644
index 0000000..7dc1be2
--- /dev/null
+++ b/tests/fuzz-crashes/8.fuzz
Binary files differ
diff --git a/tests/fuzz-crashes/9.fuzz b/tests/fuzz-crashes/9.fuzz
new file mode 100644
index 0000000..466e317
--- /dev/null
+++ b/tests/fuzz-crashes/9.fuzz
@@ -0,0 +1,5 @@
+#!000000000000000
+
+:symbol000080000000
+
+'
diff --git a/tests/fuzz-crashes/Makefile.am b/tests/fuzz-crashes/Makefile.am
new file mode 100644
index 0000000..288d4e0
--- /dev/null
+++ b/tests/fuzz-crashes/Makefile.am
@@ -0,0 +1 @@
+TEST_INPUTS += tests/fuzz-crashes/1.fuzz tests/fuzz-crashes/10.fuzz tests/fuzz-crashes/11.fuzz tests/fuzz-crashes/12.fuzz tests/fuzz-crashes/13.fuzz tests/fuzz-crashes/14.fuzz tests/fuzz-crashes/15.fuzz tests/fuzz-crashes/16.fuzz tests/fuzz-crashes/17.fuzz tests/fuzz-crashes/18.fuzz tests/fuzz-crashes/19.fuzz tests/fuzz-crashes/2.fuzz tests/fuzz-crashes/20.fuzz tests/fuzz-crashes/21.fuzz tests/fuzz-crashes/22.fuzz tests/fuzz-crashes/23.fuzz tests/fuzz-crashes/24.fuzz tests/fuzz-crashes/25.fuzz tests/fuzz-crashes/26.fuzz tests/fuzz-crashes/27.fuzz tests/fuzz-crashes/28.fuzz tests/fuzz-crashes/29.fuzz tests/fuzz-crashes/3.fuzz tests/fuzz-crashes/30.fuzz tests/fuzz-crashes/31.fuzz tests/fuzz-crashes/32.fuzz tests/fuzz-crashes/33.fuzz tests/fuzz-crashes/34.fuzz tests/fuzz-crashes/35.fuzz tests/fuzz-crashes/36.fuzz tests/fuzz-crashes/37.fuzz tests/fuzz-crashes/38.fuzz tests/fuzz-crashes/39.fuzz tests/fuzz-crashes/4.fuzz tests/fuzz-crashes/40.fuzz tests/fuzz-crashes/41.fuzz tests/fuzz-crashes/42.fuzz tests/fuzz-crashes/43.fuzz tests/fuzz-crashes/44.fuzz tests/fuzz-crashes/45.fuzz tests/fuzz-crashes/46.fuzz tests/fuzz-crashes/47.fuzz tests/fuzz-crashes/48.fuzz tests/fuzz-crashes/49.fuzz tests/fuzz-crashes/5.fuzz tests/fuzz-crashes/50.fuzz tests/fuzz-crashes/51.fuzz tests/fuzz-crashes/52.fuzz tests/fuzz-crashes/53.fuzz tests/fuzz-crashes/54.fuzz tests/fuzz-crashes/55.fuzz tests/fuzz-crashes/56.fuzz tests/fuzz-crashes/57.fuzz tests/fuzz-crashes/58.fuzz tests/fuzz-crashes/59.fuzz tests/fuzz-crashes/6.fuzz tests/fuzz-crashes/60.fuzz tests/fuzz-crashes/61.fuzz tests/fuzz-crashes/62.fuzz tests/fuzz-crashes/63.fuzz tests/fuzz-crashes/64.fuzz tests/fuzz-crashes/65.fuzz tests/fuzz-crashes/66.fuzz tests/fuzz-crashes/67.fuzz tests/fuzz-crashes/68.fuzz tests/fuzz-crashes/69.fuzz tests/fuzz-crashes/7.fuzz tests/fuzz-crashes/70.fuzz tests/fuzz-crashes/71.fuzz tests/fuzz-crashes/72.fuzz tests/fuzz-crashes/73.fuzz tests/fuzz-crashes/74.fuzz tests/fuzz-crashes/75.fuzz tests/fuzz-crashes/76.fuzz tests/fuzz-crashes/77.fuzz tests/fuzz-crashes/8.fuzz tests/fuzz-crashes/9.fuzz
diff --git a/tests/run_fuzz_test.sh b/tests/run_fuzz_test.sh
new file mode 100755
index 0000000..482f045
--- /dev/null
+++ b/tests/run_fuzz_test.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+aplwc "$1"
+case $? in
+ 0|1)
+ exit 0
+ ;;
+ *)
+ exit 1
+ ;;
+esac