1*d35c3d74SRobert Mustacchi /*
2*d35c3d74SRobert Mustacchi * This file and its contents are supplied under the terms of the
3*d35c3d74SRobert Mustacchi * Common Development and Distribution License ("CDDL"), version 1.0.
4*d35c3d74SRobert Mustacchi * You may only use this file in accordance with the terms of version
5*d35c3d74SRobert Mustacchi * 1.0 of the CDDL.
6*d35c3d74SRobert Mustacchi *
7*d35c3d74SRobert Mustacchi * A full copy of the text of the CDDL should have accompanied this
8*d35c3d74SRobert Mustacchi * source. A copy of the CDDL is also available via the Internet at
9*d35c3d74SRobert Mustacchi * http://www.illumos.org/license/CDDL.
10*d35c3d74SRobert Mustacchi */
11*d35c3d74SRobert Mustacchi
12*d35c3d74SRobert Mustacchi /*
13*d35c3d74SRobert Mustacchi * Copyright 2025 Oxide Computer Company
14*d35c3d74SRobert Mustacchi */
15*d35c3d74SRobert Mustacchi
16*d35c3d74SRobert Mustacchi /*
17*d35c3d74SRobert Mustacchi * This file tests that the parsed tzname is equal to what was passed in as
18*d35c3d74SRobert Mustacchi * args. We use the arguments as TZ=arg0, name0=arg1, name1=arg2.
19*d35c3d74SRobert Mustacchi */
20*d35c3d74SRobert Mustacchi
21*d35c3d74SRobert Mustacchi #include <time.h>
22*d35c3d74SRobert Mustacchi #include <stdio.h>
23*d35c3d74SRobert Mustacchi #include <stdlib.h>
24*d35c3d74SRobert Mustacchi #include <string.h>
25*d35c3d74SRobert Mustacchi #include <err.h>
26*d35c3d74SRobert Mustacchi
27*d35c3d74SRobert Mustacchi int
main(int argc,char * argv[])28*d35c3d74SRobert Mustacchi main(int argc, char *argv[])
29*d35c3d74SRobert Mustacchi {
30*d35c3d74SRobert Mustacchi int ret = EXIT_SUCCESS;
31*d35c3d74SRobert Mustacchi
32*d35c3d74SRobert Mustacchi if (argc != 4) {
33*d35c3d74SRobert Mustacchi (void) fprintf(stderr, "Usage: tznames <TZ> <tzname0> "
34*d35c3d74SRobert Mustacchi "<tzname1>\n");
35*d35c3d74SRobert Mustacchi exit(EXIT_FAILURE);
36*d35c3d74SRobert Mustacchi }
37*d35c3d74SRobert Mustacchi
38*d35c3d74SRobert Mustacchi if (setenv("TZ", argv[1], 1) != 0) {
39*d35c3d74SRobert Mustacchi err(EXIT_FAILURE, "failed to set TZ to %s", argv[1]);
40*d35c3d74SRobert Mustacchi }
41*d35c3d74SRobert Mustacchi
42*d35c3d74SRobert Mustacchi tzset();
43*d35c3d74SRobert Mustacchi
44*d35c3d74SRobert Mustacchi if (strcmp(tzname[0], argv[2]) != 0) {
45*d35c3d74SRobert Mustacchi warnx("TEST FAILED: TZ %s: found tzname[0] %s, expected %s",
46*d35c3d74SRobert Mustacchi argv[1], tzname[0], argv[2]);
47*d35c3d74SRobert Mustacchi ret = EXIT_FAILURE;
48*d35c3d74SRobert Mustacchi }
49*d35c3d74SRobert Mustacchi
50*d35c3d74SRobert Mustacchi if (strcmp(tzname[1], argv[3]) != 0) {
51*d35c3d74SRobert Mustacchi warnx("TEST FAILED: TZ %s: found tzname[1] %s, expected %s",
52*d35c3d74SRobert Mustacchi argv[1], tzname[1], argv[3]);
53*d35c3d74SRobert Mustacchi ret = EXIT_FAILURE;
54*d35c3d74SRobert Mustacchi }
55*d35c3d74SRobert Mustacchi
56*d35c3d74SRobert Mustacchi return (ret);
57*d35c3d74SRobert Mustacchi }
58