X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/e107aac243dbd4021e57f4c455c7e3ffd82b819e..e7eda725fb69f5fe8ac2e17da308b3952b7fb39a:/test/whatnow/test-attach-detach?ds=sidebyside diff --git a/test/whatnow/test-attach-detach b/test/whatnow/test-attach-detach index a2972738..84b0487b 100755 --- a/test/whatnow/test-attach-detach +++ b/test/whatnow/test-attach-detach @@ -6,6 +6,8 @@ # ###################################################### +set -e + if test -z "${MH_OBJ_DIR}"; then srcdir=`dirname "$0"`/../.. MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR @@ -15,11 +17,13 @@ fi setup_test -set -e +# Set TERM to get consistent output. +TERM=dumb; export TERM cd "$MH_TEST_DIR" -rm -f "baz's boz" -touch "baz's boz" +testname="baz's boz" +testname_quoted="baz\'s\ boz" +touch "$testname" # whatnow's attach stuff needs a draft to work on cp "$MH_TEST_DIR/Mail/inbox/1" "$MH_TEST_DIR/Mail/draft" @@ -31,17 +35,169 @@ actual=$MH_TEST_DIR/$$.actual rm -f $expected $expectederr $actual $actualerr touch $expected $expectederr $actual $actualerr -cat > $expected <"$expected" <"$expected" <> $actualerr >> $actual -echo "alist" | whatnow -attach foo -noedit -prompt '' 2>> $actualerr >> $actual -echo "detach baz\\'s\\ boz" | whatnow -attach foo -noedit -prompt '' 2>> $actualerr >> $actual -echo "alist" | whatnow -attach foo -noedit -prompt '' 2>> $actualerr >> $actual +echo "attach $testname_quoted" | \ + run_prog whatnow -attach foo -noedit -prompt '' 2>>$actualerr >>$actual +echo "alist" | \ + run_prog whatnow -attach foo -noedit -prompt '' 2>>$actualerr >>$actual +echo "detach $testname_quoted" | \ + run_prog whatnow -attach foo -noedit -prompt '' 2>>$actualerr >>$actual +echo "alist" | \ + run_prog whatnow -attach foo -noedit -prompt '' 2>>$actualerr >>$actual +set -e + +check "$expectederr" "$actualerr" +check "$expected" "$actual" + +if [ "$readline" = 0 ]; then +cat >"$expected" < [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? whatnow: ingoring invalid attachformat value of 3 +#text/plain; name="context" <> [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? #text/plain; name="context" <> [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? #text/plain; name="context" <> [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? #text/plain; name="context"; x-unix-mode=0600 [ ASCII text ] ${MH_TEST_DIR}/Mail/context + +What now? +EOF +else +cat >"$expected" < [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? at -v -a 3 Mail/context +whatnow: ingoring invalid attachformat value of 3 +#text/plain; name="context" <> [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? at -v Mail/context +#text/plain; name="context" <> [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? at -v -a 1 Mail/context +#text/plain; name="context" <> [context]{attachment} ${MH_TEST_DIR}/Mail/context + +What now? at -v -a 0 Mail/context +#text/plain; name="context"; x-unix-mode=0600 [ ASCII text ] ${MH_TEST_DIR}/Mail/context + +What now? quit -delete +EOF +fi + +# Don't depend on the mode of Mail/context: +chmod 0600 ${MH_TEST_DIR}/Mail/context + +set +e +printf '%s\n' \ +'at' \ +'at -v' \ +'at -v -a' \ +'at -v -a 0' \ +'at -a' \ +'at -a -v' \ +'at -a 0 -v' \ +'at -a 0 Mail/context' \ +'at -v -a Mail/context' \ +'at -v -a 3 Mail/context' \ +'at -v Mail/context' \ +'at -v -a 1 Mail/context' \ +'at -v -a 0 Mail/context' \ +'quit -delete' | whatnow 2>&1 | \ + sed -e 's/; charset=us-ascii//' -e 's/ *ASCII text/ ASCII text/' \ + -e 's/ *ascii text/ ASCII text/' >"$actual" set -e -diff -u $expectederr $actualerr || exit 1 -diff -u $expected $actual +#### Without readline, need to add trailing newline. And the final +#### prompt that might have been lost. +if [ "$readline" = 0 ]; then + printf '\n' >>"$actual" + sed -e '32,32s/^$/What now? /' "$actual" >"$actual.tmp" + mv "$actual.tmp" "$actual" +fi + +check "$expected" "$actual" + +test ${failed:-0} -eq 0 && rm "$testname" + +exit $failed