Fix most shell hygiene issues found by shellcheck

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
Anders Kaseorg
2016-10-30 02:05:31 -04:00
committed by John Hood
parent 3b21cd2425
commit 8a8f2b29ca
20 changed files with 144 additions and 115 deletions
+3 -3
View File
@@ -88,11 +88,11 @@ done
# Build fat binaries # Build fat binaries
# XXX will break with spaces in pathname # XXX will break with spaces in pathname
for prog in local/bin/mosh-client local/bin/mosh-server; do for prog in local/bin/mosh-client local/bin/mosh-server; do
archprogs= archprogs=()
for arch in $BUILT_ARCHS; do for arch in $BUILT_ARCHS; do
archprogs="$archprogs ${PREFIX}_${arch}/$prog" archprogs+=("${PREFIX}_${arch}/$prog")
done done
lipo -create $archprogs -output "${PREFIX}/$prog" lipo -create "${archprogs[@]}" -output "${PREFIX}/$prog"
done done
perl -wlpi -e 's{#!/usr/bin/env perl}{#!/usr/bin/perl}' "$PREFIX/local/bin/mosh" perl -wlpi -e 's{#!/usr/bin/env perl}{#!/usr/bin/perl}' "$PREFIX/local/bin/mosh"
+1 -1
View File
@@ -7,7 +7,7 @@
# Ideally the search string would also include 'clang: ' but this output might # Ideally the search string would also include 'clang: ' but this output might
# depend on clang's argv[0]. # depend on clang's argv[0].
if out=`"$@" 2>&1`; then if out=$("$@" 2>&1); then
echo "$out" echo "$out"
if echo "$out" | grep 'warning: argument unused' >/dev/null; then if echo "$out" | grep 'warning: argument unused' >/dev/null; then
echo "$0: found clang warning" echo "$0: found clang warning"
+4 -3
View File
@@ -1,10 +1,11 @@
#!/bin/sh #!/bin/sh
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline variant different e2e-test "$0" baseline variant different
exit exit
fi fi
@@ -22,5 +23,5 @@ case $1 in
baseline|variant) baseline|variant)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+4 -3
View File
@@ -1,10 +1,11 @@
#!/bin/sh #!/bin/sh
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline direct variant verify same e2e-test "$0" baseline direct variant verify same
exit exit
fi fi
@@ -22,5 +23,5 @@ case $1 in
baseline|direct|variant) baseline|direct|variant)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+28 -19
View File
@@ -19,11 +19,11 @@ dump_logs()
{ {
dir=$1 dir=$1
shift shift
testname=$(basename $dir .d) testname=$(basename "$dir" .d)
for logfile in $dir/*.tmux.log; do for logfile in $dir/*.tmux.log; do
printf "travis_fold:start:%s-%s\n" $testname $(basename $logfile) printf "travis_fold:start:%s-%s\n" "$testname" "$(basename "$logfile")"
cat $logfile cat "$logfile"
printf "travis_fold:end:%s-%s\n" $testname $(basename $logfile) printf "travis_fold:end:%s-%s\n" "$testname" "$(basename "$logfile")"
done done
} }
@@ -51,7 +51,7 @@ test_exitstatus()
status=$1 status=$1
shift shift
error "$@" error "$@"
exit $status exit "$status"
} }
@@ -67,8 +67,8 @@ tmux_check()
version_major=${version%%.*} version_major=${version%%.*}
version_minor=${version##*.} version_minor=${version##*.}
# need version 1.8 for capture-pane # need version 1.8 for capture-pane
if [ $version_major -lt 1 ] || if [ "$version_major" -lt 1 ] ||
[ $version_major -eq 1 -a $version_minor -lt 8 ]; then { [ "$version_major" -eq 1 ] && [ "$version_minor" -lt 8 ]; }; then
error "tmux version %s too old\n" "$version" error "tmux version %s too old\n" "$version"
return 1 return 1
fi fi
@@ -89,7 +89,7 @@ ssh_localhost_check()
# on verbosity and log stderr. # on verbosity and log stderr.
mosh_client() mosh_client()
{ {
if [ -z "$MOSH_CLIENT" -o -z "$MOSH_E2E_TEST" ]; then if [ -z "$MOSH_CLIENT" ] || [ -z "$MOSH_E2E_TEST" ]; then
test_error "mosh_client: variables missing\n" test_error "mosh_client: variables missing\n"
fi fi
exec 2> "${MOSH_E2E_TEST}.client.stderr" exec 2> "${MOSH_E2E_TEST}.client.stderr"
@@ -98,7 +98,7 @@ mosh_client()
mosh_server() mosh_server()
{ {
if [ -z "$MOSH_SERVER" -o -z "$MOSH_E2E_TEST" ]; then if [ -z "$MOSH_SERVER" ] || [ -z "$MOSH_E2E_TEST" ]; then
test_error "mosh_server: variables missing\n" test_error "mosh_server: variables missing\n"
fi fi
exec 2> "${MOSH_E2E_TEST}.server.stderr" exec 2> "${MOSH_E2E_TEST}.server.stderr"
@@ -109,9 +109,9 @@ mosh_server()
# Set up environment # Set up environment
if [ -z "$srcdir" ]; then if [ -z "$srcdir" ]; then
: ${srcdir:=$PWD} srcdir=$PWD
else else
srcdir="$(cd $srcdir && pwd)" srcdir="$(cd "$srcdir" && pwd)"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
error "can't cd to srcdir: %s\n" "$srcdir" error "can't cd to srcdir: %s\n" "$srcdir"
exit 99 exit 99
@@ -119,7 +119,7 @@ else
fi fi
# Wrappers. # Wrappers.
case "$(basename $0)" in case "$(basename "$0")" in
mosh-client) mosh-client)
mosh_client "$@" mosh_client "$@"
exit exit
@@ -145,14 +145,21 @@ test_name=$1
shift shift
test_args=$@ test_args=$@
# XXX could use AM testsubdir macro instead # XXX could use AM testsubdir macro instead
test_dir=$(basename ${test_name}).d test_dir=$(basename "${test_name}").d
test_script="${test_name}" test_script="${test_name}"
rm -rf "${test_dir}" rm -rf "${test_dir}"
mkdir "${test_dir}" mkdir "${test_dir}"
trap 'rv=$?; if test $rv -ne 0; then dump_logs '"$test_dir $test_args"'; fi; exit $rv' EXIT on_exit() {
rv=$?
if test $rv -ne 0; then
dump_logs "$test_dir" $test_args
fi
exit $rv
}
trap on_exit EXIT
# Set up tests to run. # Set up tests to run.
server_tests= server_tests=
@@ -170,13 +177,15 @@ for i in $test_args; do
post) post)
post=1;; post=1;;
mosh-args) mosh-args)
mosh_args=$(${test_script} mosh-args);; mosh_args=$("${test_script}" mosh-args);;
client-args) client-args)
export MOSH_CLIENT_ARGS=$(${test_script} client-args);; MOSH_CLIENT_ARGS=$("${test_script}" client-args)
export MOSH_CLIENT_ARGS;;
server-args) server-args)
export MOSH_SERVER_ARGS=$(${test_script} server-args);; MOSH_SERVER_ARGS=$("${test_script}" server-args)
export MOSH_SERVER_ARGS;;
*) *)
error "unknown test type argument %s", $i error "unknown test type argument %s", "$i"
exit 99 exit 99
;; ;;
esac esac
@@ -225,7 +234,7 @@ for run in $server_tests; do
|| [ ! -s "${test_dir}/${run}.exitstatus" ]; then || [ ! -s "${test_dir}/${run}.exitstatus" ]; then
test_error "server harness failure on test %s\n" "$run" test_error "server harness failure on test %s\n" "$run"
fi fi
read server_rv < "${test_dir}/${run}.exitstatus" read -r server_rv < "${test_dir}/${run}.exitstatus"
if [ "$server_rv" -ne 0 ]; then if [ "$server_rv" -ne 0 ]; then
test_error "server harness exited with status %s\n" "$server_rv" test_error "server harness exited with status %s\n" "$server_rv"
fi fi
+10 -5
View File
@@ -13,9 +13,14 @@ if [ $# -lt 2 ]; then
fi fi
testname=$1 testname=$1
shift shift
rm -f $testname.capture $testname.exitstatus rm -f "$testname.capture" "$testname.exitstatus"
trap ":" TERM HUP QUIT # If the session closes on us, let the test we're running drive. trap ":" TERM HUP QUIT # If the session closes on us, let the test we're running drive.
trap 'rv=$?; echo $rv > $testname.exitstatus; exit $rv' EXIT on_exit() {
rv=$?
echo $rv > "$testname.exitstatus"
exit $rv
}
trap on_exit EXIT
# check for tmux # check for tmux
if [ -z "$TMUX_PANE" ]; then if [ -z "$TMUX_PANE" ]; then
printf "not running under tmux\n" >&2 printf "not running under tmux\n" >&2
@@ -29,7 +34,7 @@ sleep 1
printf "@@@ server complete @@@" >&2 printf "@@@ server complete @@@" >&2
i=0 i=0
while [ $i -lt 60 ]; do while [ $i -lt 60 ]; do
if grep -q "@@@ server complete @@@" $testname.tmux.log; then if grep -q "@@@ server complete @@@" "$testname.tmux.log"; then
break break
fi fi
i=$((i+1)) i=$((i+1))
@@ -40,11 +45,11 @@ if [ $i -ge 60 ]; then
exit 99 exit 99
fi fi
# capture screen # capture screen
if ! tmux capture-pane -et $TMUX_PANE; then if ! tmux capture-pane -et "$TMUX_PANE"; then
printf "tmux capture-pane failed, erroring test\n" >&2 printf "tmux capture-pane failed, erroring test\n" >&2
exit 99 exit 99
fi fi
if ! tmux save-buffer $testname.capture; then if ! tmux save-buffer "$testname.capture"; then
printf "tmux save-buffer failed, erroring test\n" >&2 printf "tmux save-buffer failed, erroring test\n" >&2
exit 99 exit 99
fi fi
+4 -4
View File
@@ -17,7 +17,7 @@ sleepf()
seq_function() seq_function()
{ {
if [ $# -lt 1 -o $# -gt 3 ]; then if [ $# -lt 1 ] || [ $# -gt 3 ]; then
echo "bad args" >&2 echo "bad args" >&2
fi fi
first=$1 first=$1
@@ -35,9 +35,9 @@ seq_function()
;; ;;
esac esac
while :; do while :; do
printf '%d\n' $first printf '%d\n' "$first"
first=$(( first + incr )) first=$(( first + incr ))
if [ $first -gt $last ]; then if [ "$first" -gt "$last" ]; then
break break
fi fi
done done
@@ -52,5 +52,5 @@ fi
chr() chr()
{ {
printf "\\$(printf %03o $1)" printf '%b' "\\0$(printf %03o "$1")"
} }
+6 -5
View File
@@ -8,11 +8,12 @@
# line). # line).
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline post e2e-test "$0" baseline post
exit exit
fi fi
@@ -25,7 +26,7 @@ baseline()
{ {
# We need to control CR and LF individually for this test. # We need to control CR and LF individually for this test.
TERMIO=$(stty -g) TERMIO=$(stty -g)
trap "stty $TERMIO" EXIT trap 'stty "$TERMIO"' EXIT
stty raw stty raw
printf '\033[H\033[J' printf '\033[H\033[J'
for lines in $(seq 1 25); do for lines in $(seq 1 25); do
@@ -41,7 +42,7 @@ post()
# If hidden 80th column is working properly, then the lines # If hidden 80th column is working properly, then the lines
# will have no blank lines in between and we should see 23 # will have no blank lines in between and we should see 23
# of them. # of them.
if [ $(grep -c "EEEEEEEEEE" $(basename $0).d/baseline.capture) -ne 23 ]; then if [ "$(grep -c "EEEEEEEEEE" "$(basename "$0").d/baseline.capture")" -ne 23 ]; then
exit 1 exit 1
fi fi
} }
@@ -52,5 +53,5 @@ case $1 in
post) post)
post;; post;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+4 -3
View File
@@ -4,11 +4,12 @@
# This validates display of ASCII and ISO-8859-1 characters. # This validates display of ASCII and ISO-8859-1 characters.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline direct verify e2e-test "$0" baseline direct verify
exit exit
fi fi
@@ -41,5 +42,5 @@ case $1 in
baseline|direct) baseline|direct)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+12 -11
View File
@@ -10,11 +10,12 @@
# compares on these values fail though they are visually identical. # compares on these values fail though they are visually identical.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline direct verify e2e-test "$0" baseline direct verify
exit exit
fi fi
@@ -26,7 +27,7 @@ fi
baseline() baseline()
{ {
# Strip our name to the last dash-separated word before the .test suffix. # Strip our name to the last dash-separated word before the .test suffix.
testname=$(basename $1) testname=$(basename "$1")
testname=${testname%%.test} testname=${testname%%.test}
testname=${testname##*-} testname=${testname##*-}
@@ -44,35 +45,35 @@ baseline()
# 16-color attributes. # 16-color attributes.
16color) 16color)
for attr in $(seq 30 37) $(seq 39 47) 49; do for attr in $(seq 30 37) $(seq 39 47) 49; do
printf '\033[%dmE\033[m ' $attr printf '\033[%dmE\033[m ' "$attr"
done done
printf '\n' printf '\n'
;; ;;
# First 8 256-color attributes. Comparing mosh and tmux fails. # First 8 256-color attributes. Comparing mosh and tmux fails.
256color8) 256color8)
for attr in $(seq 0 7); do for attr in $(seq 0 7); do
printf '\033[38;5;%dmE\033[m ' $attr printf '\033[38;5;%dmE\033[m ' "$attr"
printf '\033[48;5;%dmM\033[m ' $attr printf '\033[48;5;%dmM\033[m ' "$attr"
done done
printf '\n' printf '\n'
;; ;;
# Last 248 256-color attributes. # Last 248 256-color attributes.
256color248) 256color248)
for attr in $(seq 8 255); do for attr in $(seq 8 255); do
printf '\033[38;5;%dmE\033[m ' $attr printf '\033[38;5;%dmE\033[m ' "$attr"
printf '\033[48;5;%dmM\033[m ' $attr printf '\033[48;5;%dmM\033[m ' "$attr"
done done
printf '\n' printf '\n'
;; ;;
*) *)
fail "unknown test name %s\n" $1 fail "unknown test name %s\n" "$1"
;; ;;
esac esac
} }
case $1 in case $1 in
baseline|direct) baseline|direct)
baseline $0;; baseline "$0";;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+10 -9
View File
@@ -4,11 +4,12 @@
# This test is for issue 539 on github. # This test is for issue 539 on github.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline post e2e-test "$0" baseline post
exit exit
fi fi
@@ -29,17 +30,17 @@ baseline()
post() post()
{ {
# Basic previously-failing case. # Basic previously-failing case.
if grep -q 'hello, wurldo' $(basename $0).d/baseline.capture; then if grep -q 'hello, wurldo' "$(basename "$0").d/baseline.capture"; then
exit 1 exit 1
fi fi
if ! grep -q 'hello, world' $(basename $0).d/baseline.capture; then if ! grep -q 'hello, world' "$(basename "$0").d/baseline.capture"; then
exit 99 exit 99
fi fi
# New test cases for new code. # New test cases for new code.
if ! grep -q 'oello, wurld' $(basename $0).d/baseline.capture || if ! grep -q 'oello, wurld' "$(basename "$0").d/baseline.capture" ||
! grep -q '9ello, wurld' $(basename $0).d/baseline.capture || ! grep -q '9ello, wurld' "$(basename "$0").d/baseline.capture" ||
! grep -q 'hello, wurld t' $(basename $0).d/baseline.capture || ! grep -q 'hello, wurld t' "$(basename "$0").d/baseline.capture" ||
! grep -E -q '^ {79}#$' $(basename $0).d/baseline.capture; then ! grep -E -q '^ {79}#$' "$(basename "$0").d/baseline.capture"; then
exit 1 exit 1
fi fi
exit 0 exit 0
@@ -51,5 +52,5 @@ case $1 in
post) post)
post;; post;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+6 -5
View File
@@ -5,11 +5,12 @@
# motions in Mosh. # motions in Mosh.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline direct verify e2e-test "$0" baseline direct verify
exit exit
fi fi
@@ -22,8 +23,8 @@ baseline()
{ {
printf '\033[H\033[J' printf '\033[H\033[J'
while read x y text; do while read -r x y text; do
printf '\033[%d;%dH%s' $y $x $text printf '\033[%d;%dH%s' "$y" "$x" "$text"
sleepf sleepf
done <<EOF done <<EOF
1 1 A 1 1 A
@@ -53,5 +54,5 @@ case $1 in
baseline|direct) baseline|direct)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+6 -5
View File
@@ -7,11 +7,12 @@
# 24 in this test environment). # 24 in this test environment).
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline e2e-test "$0" baseline
exit exit
fi fi
@@ -25,8 +26,8 @@ baseline()
printf '\033[H\033[J' printf '\033[H\033[J'
for dir in L M; do for dir in L M; do
for i in $(seq 0 2) $(seq 22 26); do for i in $(seq 0 2) $(seq 22 26); do
printf '%d\r' $i printf '%d\r' "$i"
printf '\033[%d%s' $i $dir printf '\033[%d%s' "$i" "$dir"
# On the one hand, we'd like to test that this works # On the one hand, we'd like to test that this works
# properly on both client and server, which requires # properly on both client and server, which requires
# delays so that each iteration percolates to the client # delays so that each iteration percolates to the client
@@ -41,5 +42,5 @@ case $1 in
baseline) baseline)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+4 -3
View File
@@ -9,11 +9,12 @@
# sense. # sense.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline direct verify e2e-test "$0" baseline direct verify
exit exit
fi fi
@@ -39,5 +40,5 @@ case $1 in
baseline|direct) baseline|direct)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+5 -4
View File
@@ -25,11 +25,12 @@
# correct character. # correct character.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 tmux baseline mosh-args post e2e-test "$0" tmux baseline mosh-args post
exit exit
fi fi
@@ -71,7 +72,7 @@ baseline()
post() post()
{ {
# Look for bad output: ')' or \374 # Look for bad output: ')' or \374
if [ -n "$(env -u LC_ALL -u LC_CTYPE -u LANGUAGE LANG=C egrep "%output %0 (\)|$(printf \\374))" $(basename $0).d/baseline.tmux.log)" ]; then if [ -n "$(env -u LC_ALL -u LC_CTYPE -u LANGUAGE LANG=C egrep "%output %0 (\)|$(printf \\374))" "$(basename "$0").d/baseline.tmux.log")" ]; then
exit 1 exit 1
fi fi
exit 0 exit 0
@@ -88,5 +89,5 @@ case $1 in
post) post)
post;; post;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+8 -7
View File
@@ -11,11 +11,12 @@
# cleanup with kill -9. # cleanup with kill -9.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 tmux baseline post e2e-test "$0" tmux baseline post
exit exit
fi fi
@@ -53,14 +54,14 @@ baseline()
blat=$(for i in $(seq 1 100); do blat=$(for i in $(seq 1 100); do
printf 'a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n' printf 'a\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n'
done) done)
read x read -r x
while true; do while true; do
printf "$blat" printf '%s' "$blat"
done & done &
printpid=$! printpid=$!
(sleep 120; kill $$ $printpid) & (sleep 120; kill $$ $printpid) &
killpid=$! killpid=$!
read x read -r x
kill $printpid kill $printpid
# Try and make sure the printer stops writing before the following printf # Try and make sure the printer stops writing before the following printf
sleep 1 sleep 1
@@ -74,7 +75,7 @@ baseline()
post() post()
{ {
if grep -q '=== normal exit ===' $(basename $0).d/baseline.capture; then if grep -q '=== normal exit ===' "$(basename "$0").d/baseline.capture"; then
exit 0 exit 0
fi fi
exit 1 exit 1
@@ -89,5 +90,5 @@ case $1 in
post) post)
post;; post;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+13 -12
View File
@@ -14,11 +14,12 @@
TIMEOUT=10 TIMEOUT=10
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 client baseline e2e-test "$0" client baseline
exit exit
fi fi
@@ -47,7 +48,7 @@ client()
fail "mosh-client had a normal exit\n";; # test condition failed fail "mosh-client had a normal exit\n";; # test condition failed
9|137|265) 9|137|265)
# Aha, signal 9. Wait. # Aha, signal 9. Wait.
sleep $(( $TIMEOUT + 12 )) sleep $(( TIMEOUT + 12 ))
exit 0 exit 0
;; ;;
*) *)
@@ -59,7 +60,7 @@ client()
baseline() baseline()
{ {
# check for our wonderful variable # check for our wonderful variable
if [ -z "$MOSH_SERVER_NETWORK_TMOUT" -a -z "$MOSH_SERVER_SIGNAL_TMOUT" ]; then if [ -z "$MOSH_SERVER_NETWORK_TMOUT" ] && [ -z "$MOSH_SERVER_SIGNAL_TMOUT" ]; then
env env
fail "Variable unset\n" fail "Variable unset\n"
fi fi
@@ -68,7 +69,7 @@ baseline()
env env
fail "Client pid unavailable\n" fail "Client pid unavailable\n"
fi fi
if ! kill -0 $MOSH_CLIENT_PID; then if ! kill -0 "$MOSH_CLIENT_PID"; then
fail "mosh client is unexpectedly missing\n" fail "mosh client is unexpectedly missing\n"
fi fi
@@ -77,17 +78,17 @@ baseline()
sleep 1 sleep 1
# Kill the client, to stop network traffic. # Kill the client, to stop network traffic.
kill -KILL $MOSH_CLIENT_PID kill -KILL "$MOSH_CLIENT_PID"
case "$myname" in case "$myname" in
server-network-timeout) server-network-timeout)
# Just wait. This is the hardest part. # Just wait. This is the hardest part.
sleep $(( $TIMEOUT + 7 )) sleep $(( TIMEOUT + 7 ))
;; ;;
server-signal-timeout) server-signal-timeout)
# Wait for the timeout to expire. # Wait for the timeout to expire.
sleep $(( $TIMEOUT + 2 )) sleep $(( TIMEOUT + 2 ))
# Tell the server to go away. # Tell the server to go away.
kill -USR1 $MOSH_SERVER_PID kill -USR1 "$MOSH_SERVER_PID"
sleep 5 sleep 5
;; ;;
*) *)
@@ -97,11 +98,11 @@ baseline()
# XXX the server is getting killed and we're getting here anyway. # XXX the server is getting killed and we're getting here anyway.
# Exit with error only if server is still around. # Exit with error only if server is still around.
sleep 1 sleep 1
! kill -0 $MOSH_SERVER_PID ! kill -0 "$MOSH_SERVER_PID"
exit exit
} }
myname="$(basename $0 .test)" myname="$(basename "$0" .test)"
case $1 in case $1 in
baseline|variant) baseline|variant)
@@ -109,5 +110,5 @@ case $1 in
client) client)
client "$@";; client "$@";;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
@@ -8,11 +8,12 @@
# #
# It just sends the offending output to mosh and expects it to not die. # It just sends the offending output to mosh and expects it to not die.
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline e2e-test "$0" baseline
exit exit
fi fi
@@ -30,5 +31,5 @@ case $1 in
baseline) baseline)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+5 -4
View File
@@ -10,11 +10,12 @@
# that are visually identical. The variant test is not run or validated. # that are visually identical. The variant test is not run or validated.
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 baseline post e2e-test "$0" baseline post
exit exit
fi fi
@@ -36,7 +37,7 @@ variant()
post() post()
{ {
export LANG=C export LANG=C
if grep -q "$(printf '^\302\240\314\202$')" $(basename $0).d/baseline.capture; then if grep -q "$(printf '^\302\240\314\202$')" "$(basename "$0").d/baseline.capture"; then
exit 0 exit 0
fi fi
exit 1 exit 1
@@ -50,5 +51,5 @@ case $1 in
post) post)
post;; post;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac
+7 -6
View File
@@ -6,11 +6,12 @@
# resize them. But it works! # resize them. But it works!
# #
. $(dirname $0)/e2e-test-subrs # shellcheck source=e2e-test-subrs
. "$(dirname "$0")/e2e-test-subrs"
PATH=$PATH:.:$srcdir PATH=$PATH:.:$srcdir
# Top-level wrapper. # Top-level wrapper.
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
e2e-test $0 tmux baseline e2e-test "$0" tmux baseline
exit exit
fi fi
@@ -20,16 +21,16 @@ tmux_resize_commands()
shrink=$2 shrink=$2
grow=$3 grow=$3
# Split the window into two panes. # Split the window into two panes.
printf "split-window -${hv}\n" printf "split-window -%s\n" "${hv}"
# Shrink the pane we created # Shrink the pane we created
for i in $(seq 1 10); do for i in $(seq 1 10); do
sleepf sleepf
printf "resize-pane -${shrink}\n" printf "resize-pane -%s\n" "${shrink}"
done done
# And grow it # And grow it
for i in $(seq 1 10); do for i in $(seq 1 10); do
sleepf sleepf
printf "resize-pane -${grow}\n" printf "resize-pane -%s\n" "${grow}"
done done
sleep 1 sleep 1
# Remove the pane we created. # Remove the pane we created.
@@ -78,5 +79,5 @@ case $1 in
baseline) baseline)
baseline;; baseline;;
*) *)
fail "unknown test argument %s\n" $1;; fail "unknown test argument %s\n" "$1";;
esac esac