Files
asciinema/tests/integration.sh

96 lines
2.3 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -eExuo pipefail
2021-10-29 23:04:09 -04:00
if ! command -v "pkill" >/dev/null 2>&1; then
printf "error: pkill not installed\n"
exit 1
fi
python3 -V
2021-10-29 23:04:09 -04:00
ASCIINEMA_CONFIG_HOME="$(
mktemp -d 2>/dev/null || mktemp -d -t asciinema-config-home
)"
2021-10-29 23:04:09 -04:00
export ASCIINEMA_CONFIG_HOME
TMP_DATA_DIR="$(mktemp -d 2>/dev/null || mktemp -d -t asciinema-data-dir)"
trap 'rm -rf ${ASCIINEMA_CONFIG_HOME} ${TMP_DATA_DIR}' EXIT
asciinema() {
python3 -m asciinema "${@}"
2016-07-11 20:33:56 +02:00
}
2017-12-02 17:57:32 +01:00
## test help message
2016-07-11 20:33:56 +02:00
asciinema -h
2017-12-02 17:57:32 +01:00
## test version command
2016-07-11 20:33:56 +02:00
asciinema --version
2017-12-02 17:57:32 +01:00
## test auth command
2016-07-11 20:33:56 +02:00
asciinema auth
2017-12-02 17:57:32 +01:00
## test play command
# asciicast v1
asciinema play -s 5 tests/demo.json
asciinema play -s 5 -i 0.2 tests/demo.json
2021-10-29 23:04:09 -04:00
# shellcheck disable=SC2002
cat tests/demo.json | asciinema play -s 5 -
# asciicast v2
asciinema play -s 5 tests/demo.cast
asciinema play -s 5 -i 0.2 tests/demo.cast
2021-10-29 23:04:09 -04:00
# shellcheck disable=SC2002
cat tests/demo.cast | asciinema play -s 5 -
2017-12-02 17:57:32 +01:00
## test cat command
2017-11-18 16:57:13 +01:00
# asciicast v1
asciinema cat tests/demo.json
2021-10-29 23:04:09 -04:00
# shellcheck disable=SC2002
2017-11-18 16:57:13 +01:00
cat tests/demo.json | asciinema cat -
# asciicast v2
asciinema cat tests/demo.cast
2021-10-29 23:04:09 -04:00
# shellcheck disable=SC2002
2017-11-18 16:57:13 +01:00
cat tests/demo.cast | asciinema cat -
2017-12-02 17:57:32 +01:00
## test rec command
# normal program
2021-10-29 23:04:09 -04:00
asciinema rec -c 'bash -c "echo t3st; sleep 2; echo ok"' "${TMP_DATA_DIR}/1a.cast"
grep '"o",' "${TMP_DATA_DIR}/1a.cast"
# very quickly exiting program
asciinema rec -c whoami "${TMP_DATA_DIR}/1b.cast"
grep '"o",' "${TMP_DATA_DIR}/1b.cast"
2017-12-02 17:57:32 +01:00
# signal handling
2016-07-11 20:33:56 +02:00
bash -c "sleep 1; pkill -28 -n -f 'm asciinema'" &
2021-10-29 23:04:09 -04:00
asciinema rec -c 'bash -c "echo t3st; sleep 2; echo ok"' "${TMP_DATA_DIR}/2.cast"
2016-07-11 20:33:56 +02:00
bash -c "sleep 1; pkill -n -f 'bash -c echo t3st'" &
2021-10-29 23:04:09 -04:00
asciinema rec -c 'bash -c "echo t3st; sleep 2; echo ok"' "${TMP_DATA_DIR}/3.cast"
2016-07-11 20:33:56 +02:00
bash -c "sleep 1; pkill -9 -n -f 'bash -c echo t3st'" &
2021-10-29 23:04:09 -04:00
asciinema rec -c 'bash -c "echo t3st; sleep 2; echo ok"' "${TMP_DATA_DIR}/4.cast"
2017-09-22 22:21:35 +02:00
2017-12-02 17:57:32 +01:00
# with stdin recording
echo "ls" | asciinema rec --stdin -c 'bash -c "sleep 1"' "${TMP_DATA_DIR}/5.cast"
cat "${TMP_DATA_DIR}/5.cast"
grep '"i", "ls\\n"' "${TMP_DATA_DIR}/5.cast"
grep '"o",' "${TMP_DATA_DIR}/5.cast"
2017-11-18 16:21:35 +01:00
2017-12-02 17:57:32 +01:00
# raw output recording
2021-10-29 23:04:09 -04:00
asciinema rec --raw -c 'bash -c "echo t3st; sleep 1; echo ok"' "${TMP_DATA_DIR}/6.raw"
2017-12-02 17:57:32 +01:00
# appending to existing recording
2021-10-29 23:04:09 -04:00
asciinema rec -c 'echo allright!; sleep 0.1' "${TMP_DATA_DIR}/7.cast"
asciinema rec --append -c uptime "${TMP_DATA_DIR}/7.cast"