]> diplodocus.org Git - nmh/blobdiff - test/scan/test-header-parsing
get_file_info(): Don't dereference out of scope char array.
[nmh] / test / scan / test-header-parsing
index 752fdb9e76a79f8c7e2aa476bc6c54f62c251109..25bf7d4a9d154df11719312a28deee46712aadd9 100755 (executable)
@@ -1,5 +1,9 @@
 #!/bin/sh
 
 #!/bin/sh
 
+# Test short headers and short bodies.
+# One-character long headers used to sometimes be missed;  see commit
+# 41a82a7ecba04be5b27b3ffc813e2f34d2786a38.
+
 set -e
 
 if test -z "${MH_OBJ_DIR}"; then
 set -e
 
 if test -z "${MH_OBJ_DIR}"; then
@@ -14,17 +18,20 @@ setup_test
 mail="$MH_TEST_DIR/$$.mail"
 expected="$MH_TEST_DIR/$$.expected"
 actual="$MH_TEST_DIR/$$.actual"
 mail="$MH_TEST_DIR/$$.mail"
 expected="$MH_TEST_DIR/$$.expected"
 actual="$MH_TEST_DIR/$$.actual"
+format="$MH_TEST_DIR/$$.format"
 
 
-cat >"$mail" <<\E
-a:b
-cd:ef
-ghi:jkl
-mnop:rstu
-E
-sed 's/.*://' "$mail" >"$expected"
-f="`sed 's/:.*/}/; s/^/%{/' "$mail"`"
-run_prog scan -forma "$f" -file "$mail" >"$actual" ||
-exit 1
-check "$expected" "$actual" expectfail
+for a in a: a:1 aa: aa:1; do
+    for b in b: b:1 bb: bb:1; do
+        for c in c: c:1 cc: cc:1; do
+            printf '%s\n%s\n%s\n' $a $b $c >"$mail"
+            sed 's/.*://' "$mail" >"$expected"
+            sed 's/:.*/}/; s/^/%{/' "$mail" >"$format"
+            run_prog scan -form "$format" -file "$mail" >"$actual" ||
+            exit 1
+            check "$expected" "$actual"
+            rm -f "$mail" "$format"
+        done
+    done
+done
 
 exit $failed
 
 exit $failed