test/zones.rc: Fix instability, read current time once.

The test just called date twice assuming they all
execute in the same second. This causes false positives
with the following errors (usually just 1 second
difference):

term% while(){./zones.rc}
/adm/timezone/US_Arizona Sun, 06 Oct 2024 09:09:12 -0700 1728230953 1728230952 are not equal
/adm/timezone/Uruguay Sun, 06 Oct 2024 14:09:17 -0200 1728230958 1728230957 are not equal
/adm/timezone/Japan Mon, 07 Oct 2024 01:09:19 +0900 1728230960 1728230959 are not equal
/adm/timezone/Iran Sun, 06 Oct 2024 19:39:25 +0330 1728230966 1728230965 are not equal
/adm/timezone/Australia_West Mon, 07 Oct 2024 00:09:27 +0800 1728230968 1728230967 are not equal
/adm/timezone/US_Eastern Sun, 06 Oct 2024 12:09:29 -0400 1728230970 1728230969 are not equal
/adm/timezone/GMT Sun, 06 Oct 2024 16:09:31 +0000 1728230972 1728230971 are not equal
/adm/timezone/local Sun, 06 Oct 2024 18:09:34 +0200 1728230975 1728230974 are not equal
/adm/timezone/Mexico_BajaSur Sun, 06 Oct 2024 09:09:36 -0700 1728230977 1728230976 are not equal

The fix is to get the current time once, with date -n
and then pass that to date to format the time and
then concert back and compare.
This commit is contained in:
cinap_lenrek 2024-10-06 16:14:29 +00:00
parent 96bf1d3ebd
commit addf2d55bf

View file

@ -6,8 +6,8 @@ msg=()
for(f in /adm/timezone/*){
if(! ~ $f /adm/timezone/README){
cat $f >/env/timezone
tm=`{../$O.date -f'WW, DD MMM YYYY hh:mm:ss Z'}
x=`{../$O.date -n}
tm=`{../$O.date -f'WW, DD MMM YYYY hh:mm:ss Z' $x}
y=`{../$O.seconds $"tm}
if(! ~ $x $y){
echo $f $tm $x $y are not equal