mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-16 06:18:47 +02:00
195 lines
5.4 KiB
Bash
Executable File
195 lines
5.4 KiB
Bash
Executable File
#!/bin/sh
|
|
DIR=`dirname $0`
|
|
cd $DIR
|
|
if test $? != 0 ; then
|
|
echo ""
|
|
echo "Unable to cd $DIR" >&2
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
if test `id -u` = 0 ; then
|
|
echo ""
|
|
echo "*** Please do not run the test suite as root; it will fail."
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
# We alias "remind" here so that we don't inadvertently add code that
|
|
# runs the system-installed verion of Remind rather than
|
|
# ../src/remind. This trick was suggested by Jochen Sprickerhof
|
|
alias remind="echo You should be using ../src/remind explicitly in test-rem >&2; exit 1"
|
|
|
|
REMIND="../src/remind -h -q --flush"
|
|
OUT=../tests/tz.out
|
|
CMP=../tests/tz.cmp
|
|
|
|
echo "Running timezone tests"
|
|
echo -n "" > $OUT 2>&1
|
|
|
|
TZ=Europe/Amsterdam $REMIND - 2025-09-03@14:00 <<'EOF' >> $OUT 2>&1
|
|
SET $AddBlankLines=0
|
|
BANNER %
|
|
REM Fri AT 23:30 TZ America/Toronto +1000 SATISFY [$Td == 13] MSG Fri 13th @23:30 Eastern is %a %2 here
|
|
DEBUG +x
|
|
SET a $T
|
|
SET b $Tt
|
|
SET c trigtz()
|
|
SET d trigtime()
|
|
SET e trigtimetz()
|
|
SET f trigeventstart()
|
|
SET g trigeventstarttz()
|
|
DEBUG -x
|
|
EOF
|
|
|
|
TZ=Europe/Amsterdam $REMIND - 2026-02-14@14:00 <<'EOF' >> $OUT 2>&1
|
|
SET $AddBlankLines=0
|
|
BANNER %
|
|
REM Fri AT 23:30 TZ America/Toronto +1000 SATISFY [$Td == 13] MSG Fri 13th @23:30 Eastern is %a %2 here
|
|
DEBUG +x
|
|
SET a $T
|
|
SET b $Tt
|
|
SET c trigtz()
|
|
SET d trigtime()
|
|
SET e trigtimetz()
|
|
SET f trigeventstart()
|
|
SET g trigeventstarttz()
|
|
DEBUG -x
|
|
EOF
|
|
|
|
TZ=Europe/Amsterdam $REMIND - 2026-02-15@14:00 <<'EOF' >> $OUT 2>&1
|
|
SET $AddBlankLines=0
|
|
BANNER %
|
|
REM Fri AT 23:30 TZ America/Toronto +1000 SATISFY [$Td == 13] MSG Fri 13th @23:30 Eastern is %a %2 here
|
|
SET a $T
|
|
SET b $Tt
|
|
SET c trigtz()
|
|
SET d trigtime()
|
|
SET e trigtimetz()
|
|
SET f trigeventstart()
|
|
SET g trigeventstarttz()
|
|
EOF
|
|
|
|
TZ=America/Toronto $REMIND -p12 - 2025-01-01 <<'EOF' 2>&1 | grep Locally >> $OUT 2>&1
|
|
REM Second Thursday AT 15:00 TZ Europe/Amsterdam MSG Locally: %3
|
|
EOF
|
|
|
|
TZ=America/Toronto $REMIND -g - 2026-01-01 <<'EOF' >> $OUT 2>&1
|
|
BANNER %
|
|
SET $AddBlankLines 0
|
|
SET new '2026-01-18@14:53'
|
|
SET first '2026-01-25@23:48'
|
|
SET full '2026-01-03@05:04'
|
|
SET last '2026-01-10@10:49'
|
|
|
|
REM [new] +100 MSG New Moon %*l %3.
|
|
|
|
SET a trigtz()
|
|
SET b trigtime()
|
|
SET c trigtimetz()
|
|
SET d trigeventstart()
|
|
SET e trigeventstarttz()
|
|
|
|
REM MSG trigtz = [a], trigtime = [b], trigtimetz = [c], trigeventstart = [d], trigeventstarttz = [e]
|
|
|
|
REM [first] +100 MSG First Quarter %*l %3.
|
|
REM [full] +100 MSG Full Moon %*l %3.
|
|
REM [last] +100 MSG Last Quarter %*l %3.
|
|
|
|
SET new tzconvert(new, "America/Toronto", "Australia/Sydney")
|
|
SET first tzconvert(first, "America/Toronto", "Australia/Sydney")
|
|
SET full tzconvert(full, "America/Toronto", "Australia/Sydney")
|
|
SET last tzconvert(last, "America/Toronto", "Australia/Sydney")
|
|
|
|
REM [new] +100 TZ Australia/Sydney MSG New Moon %*l %3. (*)
|
|
|
|
SET a trigtz()
|
|
SET b trigtime()
|
|
SET c trigtimetz()
|
|
SET d trigeventstart()
|
|
SET e trigeventstarttz()
|
|
|
|
REM MSG trigtz = [a], trigtime = [b], trigtimetz = [c], trigeventstart = [d], trigeventstarttz = [e]
|
|
|
|
REM [first] +100 TZ Australia/Sydney MSG First Quarter %*l %3. (*)
|
|
REM [full] +100 TZ Australia/Sydney MSG Full Moon %*l %3. (*)
|
|
REM [last] +100 TZ Australia/Sydney MSG Last Quarter %*l %3. (*)
|
|
|
|
REM MSG new=[new] first=[first] full=[full] last=[last]
|
|
|
|
EOF
|
|
|
|
TZ=America/Los_Angeles $REMIND - 2026-01-01 <<'EOF' >> $OUT 2>&1
|
|
BANNER %
|
|
SET $AddBlankLines 0
|
|
|
|
REM AT 13:33 MSG Whatsup? %*l %3.
|
|
REM AT 13:33 TZ "" MSG Whatsup? %*l %3.
|
|
EOF
|
|
|
|
TZ=America/Los_Angeles $REMIND - 2026-01-01 <<'EOF' >> $OUT 2>&1
|
|
BANNER %
|
|
SET $AddBlankLines 0
|
|
|
|
REM AT 13:33 TZ America/Los_Angeles TZ Universal MSG Whatsup? %*l %3.
|
|
REM AT 13:33 TZ "" TZ America/Los_Angeles MSG Whatsup? %*l %3.
|
|
REM TZ Universal MSG Borked
|
|
EOF
|
|
|
|
TZ=America/Toronto $REMIND -dx - 2025-09-01@01:00 <<'EOF' >> $OUT 2>&1
|
|
SET a tzconvert('2025-09-01@14:44', "", "Europe/Berlin")
|
|
SET a tzconvert('2025-09-01@14:44', "America/Toronto", "Europe/Berlin")
|
|
SET a tzconvert('2025-09-01@14:44', "Europe/Berlin", "")
|
|
SET a tzconvert('2025-09-01@14:44', "Europe/Berlin")
|
|
SET a tzconvert('2025-09-01@14:44', "", "")
|
|
SET a tzconvert('2025-09-01@14:44', "")
|
|
|
|
SET b evaltrig("Wednesday at 23:00 TZ Australia/Sydney")
|
|
SET b evaltrig("Wednesday at 23:00 TZ Europe/Amsterdam")
|
|
SET b evaltrig("Wednesday at 23:00 TZ America/Los_Angeles")
|
|
set b evaltrig("Wednesday TZ Europe/Amsterdam")
|
|
|
|
debug +t
|
|
set c trig("Mon at 00:00 TZ Australia/Sydney",\
|
|
"Tue at 00:00 TZ America/Toronto",\
|
|
"Wed at 00:00 TZ Europe/Amsterdam",\
|
|
"Thu at 00:00 TZ America/Los_Angeles",\
|
|
"Fri at 00:00 TZ Australia/Sydney",\
|
|
"Sat at 00:00 TZ Australia/Sydney",\
|
|
"Sun at 00:00 TZ Australia/Sydney", \
|
|
"at 14:42")
|
|
debug -t
|
|
|
|
EOF
|
|
|
|
TZ=America/Toronto $REMIND -s - 2025-09-01@00:00 <<'EOF' >> $OUT 2>&1
|
|
REM 2025-09-24 AT 09:00 TZ America/Denver MSG Dr. Smith
|
|
EOF
|
|
|
|
echo "" >> $OUT
|
|
# Bug reported by Jin Chen
|
|
TZ=Australia/Sydney $REMIND -s - 2025-10-01 <<'EOF' >> $OUT 2>&1
|
|
REM Wednesday AT 14:00 TZ America/Toronto MSG 2PM Eastern
|
|
EOF
|
|
|
|
echo "" >> $OUT
|
|
# And the inverse...
|
|
TZ=America/Toronto $REMIND -s - 2025-10-01 <<'EOF' >> $OUT 2>&1
|
|
REM Wednesday AT 14:00 TZ Australia/Sydney MSG 2PM Sydney
|
|
EOF
|
|
|
|
cmp -s $OUT $CMP
|
|
if [ "$?" = "0" ] ; then
|
|
echo "Remind: Time zone test PASSED"
|
|
exit 0
|
|
else
|
|
echo "Remind: Time zone test FAILED"
|
|
echo "Examine the file tz.out to see where it differs from the"
|
|
echo "reference file tz.cmp. Here are the first 200 lines of"
|
|
echo "diff -u tz.out tz.cmp"
|
|
echo ""
|
|
diff -u $OUT $CMP | head -n 200
|
|
echo ""
|
|
exit 1
|
|
fi
|