setup_test
-expected=$MH_TEST_DIR/$$.expected
-actual=$MH_TEST_DIR/$$.actual
+check_exit '-eq 1' scan -
-cat > $expected <<EOF
+expected="$MH_TEST_DIR/$$.expected"
+actual="$MH_TEST_DIR/$$.actual"
+
+
+# check -width
+start_test '-width'
+cat >"$expected" <<EOF
1 09/29 Test1 Testing message 1<<This is message number 1 >>
2 09/29 Test2 Testing message 2<<This is message number 2 >>
3 09/29 Test3 Testing message 3<<This is message number 3 >>
10 09/29 Test10 Testing message 10<<This is message number 10 >>
EOF
-scan +inbox -width 80 > $actual || exit 1
-
+run_prog scan +inbox -width 80 >"$actual" || exit 1
check "$expected" "$actual"
+
+# check full output device, if one exists
+if test -c /dev/full; then
+ start_test 'full output device'
+ printf 'scan: failed to fflush stdout: No space left on device\n' >"$expected"
+ scan last >/dev/full 2>"$actual" && false
+ check "$expected" "$actual"
+fi
+
+
# check highlighting
-cat > $expected <<EOF
+start_test 'highlighting'
+cat >"$expected" <<EOF
1 09/29 Test1 Testing message 1<<This is message number 1 >>\e[m
2 09/29 Test2 Testing message 2<<This is message number 2 >>\e[m
3 09/29 Test3 Testing message 3<<This is message number 3 >>\e[m
4 09/29 Test4 Testing message 4<<This is message number 4 >>\e[m
-\e[33m 5+ 09/29 Test5 Testing message 5<<This is message number 5 >>\e[m
+\e[33;40m 5+ 09/29 Test5 Testing message 5<<This is message number 5 >>\e[m
6 09/29 Test6 Testing message 6<<This is message number 6 >>\e[m
7 09/29 Test7 Testing message 7<<This is message number 7 >>\e[m
8 09/29 Test8 Testing message 8<<This is message number 8 >>\e[m
9 09/29 Test9 Testing message 9<<This is message number 9 >>\e[m
-\e[36m 10 09/29 Test10 Testing message 10<<This is message number 10 >>\e[m
+\e[36;40m 10 09/29 Test10 Testing message 10<<This is message number 10 >>\e[m
EOF
printf 'Unseen-Sequence: unseen\n' >> $MH
mark -sequence cur 5
mark -sequence unseen 10
-scan -form scan.highlighted -width 80 > $actual || exit 1
-
+run_prog scan -form scan.highlighted -width 80 >"$actual" || exit 1
check "$expected" "$actual"
+# check null input
+start_test 'null input'
+run_test 'scan -format "" -file /dev/null' ''
+
+
+finish_test
exit $failed