2014-01-11 10:16:25 +01:00
|
|
|
#!/bin/sh
|
|
|
|
FAILED=0
|
2014-01-11 10:31:57 +01:00
|
|
|
|
2014-01-11 10:16:25 +01:00
|
|
|
if [ "$(echo '\e')" != '\e' ] ; then
|
|
|
|
safe_echo() {
|
|
|
|
echo -E "$@"
|
|
|
|
}
|
|
|
|
else
|
|
|
|
safe_echo() {
|
|
|
|
echo "$@"
|
|
|
|
}
|
|
|
|
fi
|
2014-01-11 10:31:57 +01:00
|
|
|
|
2014-01-12 21:53:38 +01:00
|
|
|
run_test() {
|
2014-01-12 22:07:13 +01:00
|
|
|
SH="$1"
|
2014-01-12 21:53:38 +01:00
|
|
|
SESNAME="powerline-shell-test-$$"
|
2014-01-12 22:07:13 +01:00
|
|
|
screen -L -c tests/test_shells/screenrc -d -m -S "$SESNAME" \
|
2014-01-13 16:47:58 +01:00
|
|
|
env LANG=en_US.UTF-8 BINDFILE="$BINDFILE" "$@"
|
2014-01-12 22:07:13 +01:00
|
|
|
screen -S "$SESNAME" -X readreg a tests/test_shells/input.$SH
|
2014-01-13 21:18:34 +01:00
|
|
|
sleep 0.3s
|
2014-01-12 21:53:38 +01:00
|
|
|
screen -S "$SESNAME" -p 0 -X width 300 1
|
|
|
|
screen -S "$SESNAME" -p 0 -X logfile tests/shell/screen.log
|
|
|
|
screen -S "$SESNAME" -p 0 -X paste a
|
|
|
|
while screen -S "$SESNAME" -X blankerprg "" > /dev/null ; do
|
|
|
|
sleep 1s
|
|
|
|
done
|
2014-01-13 19:37:33 +01:00
|
|
|
./tests/test_shells/postproc.py tests/shell/screen.log
|
|
|
|
if ! diff -u tests/test_shells/${SH}.ok tests/shell/screen.log | cat -v ; then
|
2014-01-12 21:53:38 +01:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
return 0
|
2014-01-11 10:36:02 +01:00
|
|
|
}
|
|
|
|
|
2014-01-11 10:16:25 +01:00
|
|
|
mkdir tests/shell
|
2014-01-11 10:31:57 +01:00
|
|
|
git init tests/shell/3rd
|
|
|
|
git --git-dir=tests/shell/3rd/.git checkout -b BRANCH
|
|
|
|
|
2014-01-12 21:53:38 +01:00
|
|
|
if ! run_test bash --norc --noprofile -i ; then
|
|
|
|
echo "Failed bash"
|
2014-01-11 10:16:25 +01:00
|
|
|
FAILED=1
|
|
|
|
fi
|
2014-01-13 21:18:34 +01:00
|
|
|
cp tests/shell/screen.log tests/bash.log
|
2014-01-12 22:07:13 +01:00
|
|
|
rm tests/shell/screen.log
|
|
|
|
|
2014-01-13 16:47:58 +01:00
|
|
|
if ! run_test zsh -f -i ; then
|
|
|
|
echo "Failed zsh"
|
|
|
|
FAILED=1
|
|
|
|
fi
|
2014-01-13 21:18:34 +01:00
|
|
|
cp tests/shell/screen.log tests/zsh.log
|
2014-01-13 16:47:58 +01:00
|
|
|
rm tests/shell/screen.log
|
|
|
|
|
2014-01-11 10:16:25 +01:00
|
|
|
rm -r tests/shell
|
|
|
|
exit $FAILED
|