Files
tmux/regress/format-time-range.sh
2026-09-29 15:00:09 +01:00

46 lines
1.3 KiB
Bash

#!/bin/sh
# time modifiers with a value outside the range the system can convert
PATH=/bin:/usr/bin
TERM=screen
TZ=UTC
export TZ
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
$TMUX kill-server 2>/dev/null
TMP=$(mktemp)
trap "rm -f $TMP; $TMUX kill-server 2>/dev/null" 0 1 15
$TMUX new -d
$TMUX set -g @ok 1700000000
$TMUX set -g @huge 3093527980800
$TMUX set -g @bad 9223372036854775807
# A convertible time still formats, so an empty result below means the value
# was rejected and not that the modifier stopped working.
$TMUX display -p '[#{t:@ok}]' >$TMP
(echo "[Tue Nov 14 22:13:20 2023]"|cmp -s - $TMP) || exit 1
$TMUX display -p '[#{t/f/zz:@ok}]' >$TMP
(echo "[zz]"|cmp -s - $TMP) || exit 1
$TMUX display -p '[#{t/p:@ok}]' >$TMP
(echo "[Nov23]"|cmp -s - $TMP) || exit 1
# A year with more digits than ctime has room for must not be printed cut
# short, but other modifiers can still format it.
$TMUX display -p '[#{t:@huge}]' >$TMP
grep -Eqx '\[\]|\[Sat Jan 1 00:00:00 100000\]' $TMP || exit 1
$TMUX display -p '[#{t/f/zz:@huge}]' >$TMP
(echo "[zz]"|cmp -s - $TMP) || exit 1
$TMUX display -p '[#{t:@bad}]' >$TMP
(echo "[]"|cmp -s - $TMP) || exit 1
$TMUX display -p '[#{t/p:@bad}]' >$TMP
(echo "[]"|cmp -s - $TMP) || exit 1
$TMUX display -p '[#{t/f/zz:@bad}]' >$TMP
(echo "[]"|cmp -s - $TMP) || exit 1
exit 0