1*d35c3d74SRobert Mustacchi#!/usr/bin/ksh 2*d35c3d74SRobert Mustacchi# 3*d35c3d74SRobert Mustacchi# This file and its contents are supplied under the terms of the 4*d35c3d74SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0. 5*d35c3d74SRobert Mustacchi# You may only use this file in accordance with the terms of version 6*d35c3d74SRobert Mustacchi# 1.0 of the CDDL. 7*d35c3d74SRobert Mustacchi# 8*d35c3d74SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this 9*d35c3d74SRobert Mustacchi# source. A copy of the CDDL is also available via the Internet at 10*d35c3d74SRobert Mustacchi# http://www.illumos.org/license/CDDL. 11*d35c3d74SRobert Mustacchi# 12*d35c3d74SRobert Mustacchi 13*d35c3d74SRobert Mustacchi# 14*d35c3d74SRobert Mustacchi# Copyright 2025 Oxide Computer Company 15*d35c3d74SRobert Mustacchi# 16*d35c3d74SRobert Mustacchi 17*d35c3d74SRobert Mustacchi# 18*d35c3d74SRobert Mustacchi# This test serves as a basic regression test for #17947 where we were 19*d35c3d74SRobert Mustacchi# incorrectly determining the value of tzname[] for various POSIX-style 20*d35c3d74SRobert Mustacchi# timezones due to how we had updated the data and incorrect assumptions made 21*d35c3d74SRobert Mustacchi# around indexes that were thrown off with the addition of LMT. 22*d35c3d74SRobert Mustacchi# 23*d35c3d74SRobert Mustacchi 24*d35c3d74SRobert Mustacchiunalias -a 25*d35c3d74SRobert Mustacchiset -o pipefail 26*d35c3d74SRobert Mustacchiexport LANG=C.UTF-8 27*d35c3d74SRobert Mustacchi 28*d35c3d74SRobert Mustacchitz_dir=$(dirname $0) 29*d35c3d74SRobert Mustacchitz_n32="$tz_dir/tznames.32" 30*d35c3d74SRobert Mustacchitz_n64="$tz_dir/tznames.64" 31*d35c3d74SRobert Mustacchitz_exit=0 32*d35c3d74SRobert Mustacchi 33*d35c3d74SRobert Mustacchi# 34*d35c3d74SRobert Mustacchi# When there is no DST style time zone, then the following empty string is used. 35*d35c3d74SRobert Mustacchi# 36*d35c3d74SRobert Mustacchitz_none=" " 37*d35c3d74SRobert Mustacchi 38*d35c3d74SRobert Mustacchitest_one() 39*d35c3d74SRobert Mustacchi{ 40*d35c3d74SRobert Mustacchi if ! $tz_n32 "$1" "$2" "$3"; then 41*d35c3d74SRobert Mustacchi tz_exit=1 42*d35c3d74SRobert Mustacchi fi 43*d35c3d74SRobert Mustacchi 44*d35c3d74SRobert Mustacchi if ! $tz_n64 "$1" "$2" "$3"; then 45*d35c3d74SRobert Mustacchi tz_exit=1 46*d35c3d74SRobert Mustacchi fi 47*d35c3d74SRobert Mustacchi} 48*d35c3d74SRobert Mustacchi 49*d35c3d74SRobert Mustacchitest_one UTC UTC "$tz_none" 50*d35c3d74SRobert Mustacchitest_one UTC0UTC UTC UTC 51*d35c3d74SRobert Mustacchitest_one GMT0GMT GMT GMT 52*d35c3d74SRobert Mustacchitest_one FOO0BAR FOO BAR 53*d35c3d74SRobert Mustacchitest_one America/New_York EST EDT 54*d35c3d74SRobert Mustacchitest_one CET0 CET "$tz_none" 55*d35c3d74SRobert Mustacchitest_one CET0CET CET CET 56*d35c3d74SRobert Mustacchitest_one CET0CEST CET CEST 57*d35c3d74SRobert Mustacchitest_one Asia/Tokyo JST JDT 58*d35c3d74SRobert Mustacchitest_one Europe/Rome CET CEST 59*d35c3d74SRobert Mustacchitest_one Australia/Brisbane AEST AEDT 60*d35c3d74SRobert Mustacchi 61*d35c3d74SRobert Mustacchiif (( tz_exit == 0 )); then 62*d35c3d74SRobert Mustacchi printf "All tests passed successfully!\n" 63*d35c3d74SRobert Mustacchifi 64*d35c3d74SRobert Mustacchi 65*d35c3d74SRobert Mustacchiexit $tz_exit 66