README
1#
2# This file and its contents are supplied under the terms of the
3# Common Development and Distribution License ("CDDL"), version 1.0.
4# You may only use this file in accordance with the terms of version
5# 1.0 of the CDDL.
6#
7# A full copy of the text of the CDDL should have accompanied this
8# source. A copy of the CDDL is also available via the Internet at
9# http://www.illumos.org/license/CDDL.
10#
11
12#
13# Copyright 2025 Oxide Computer Company
14#
15
16TZ Code and Data Related Tests
17------------------------------
18
19This suite contains programs that are intended to help verify the
20behavior of code and data updates to time zone related information.
21The programs included here are not on their own sufficient to validate
22information, but should be useful when making updates and comparisons.
23
24The tzdata files that come from the upstream IANA source are kept in
25$SRC/data/zoneinfo. These data files are compiled by zic(8), a copy of
26which is kept in the tools build, and then installed into the proto area
27where it is consumed by:
28
29- libc's time implementation (e.g. localtime(3C))
30- libzoneinfo
31- various third party software
32
33The data format is standardized in various RFCs. As of 2025, the latest
34RFC that documents the data format is RFC 9636.
35
36When using these tests, we assume the only thing that is changing is the
37tzcode files related to zic and zdump. Specifically, if you are changing
38the tzdata, then some bets are off. Most programs are designed to take
39an output directory and write out information on a per timezone or
40related structure basis. It is then up to the person using these tests
41to compare old and new versions of these.
42
43Because of this construction, there is no runfile that is provided. All
44of the resultant files are installed in /opt/tz-tests/tests.
45
46We generally provide 32-bit and 64-bit variants of a subset of the
47dumping programs to allow that to be chosen. When there is no specific
48need, we only provide a 64-bit program.
49
50Some of these programs embed implementation details of how the data is
51laid out privately in libc. This may mean that changes to libc will
52cause these programs to not work as expected.
53