dotfiles/dot_tmux/plugins/tmux-mighty-scroll/executable_test.sh
Anton Volnuhin 842b7ea7ba tmux plugins
2023-05-31 12:36:56 +03:00

60 lines
1.1 KiB
Bash

set -e
case "$OSTYPE" in
"darwin"*)
echo "macOS is not supported"
exit 1
;;
esac
cd "$(dirname "$0")"
TARGET_PID=$$ # PID of benchmark.sh
clean() {
if [ ! -z $SCREEN_PID ]; then
kill $SCREEN_PID
fi
}
trap clean 0 1 2 3 6 15
run_test() {
EXPECTED_EXIT_CODE=$1; shift
echo -n Running: \"$@\"
(
set +e
eval "$@" >/dev/null
EXIT_CODE=$?
if [ "$EXIT_CODE" != "$EXPECTED_EXIT_CODE" ]; then
echo " : exit code $EXIT_CODE != $EXPECTED_EXIT_CODE"
exit 1
fi
echo " : passed, exit code $EXIT_CODE"
)
}
run_suit() {
EXPECTED_EXIT_CODE=$1; shift
echo Pager command: \"$@\"
echo Expected exit code: $EXPECTED_EXIT_CODE
screen -Dm "$@" &
SCREEN_PID=$!
sleep 1 # give processes time to start
echo Process tree:
pstree -g $TARGET_PID
echo
run_test $EXPECTED_EXIT_CODE "pstree $TARGET_PID | grep 'man\|less\|pager'"
run_test $EXPECTED_EXIT_CODE "./pscheck.sh $TARGET_PID 'man' 'less' 'pager'"
run_test $EXPECTED_EXIT_CODE "./pscheck $TARGET_PID 'man' 'less' 'pager'"
kill $SCREEN_PID
SCREEN_PID=
echo
}
run_suit 0 man ascii
run_suit 1 bash