]>
Commit | Line | Data |
---|---|---|
46f4442e A |
1 | #!/usr/bin/perl |
2 | # | |
3 | # Copyright (C) 2007-2007, International Business Machines | |
4 | # Corporation and others. All Rights Reserved. | |
5 | # | |
6 | ||
7 | if ($ARGV[0] eq '-h' || $ARGV[0] eq '--help') { | |
8 | print "Usage: tzone [year month day hour minute]\n"; | |
9 | exit(0); | |
10 | } | |
11 | ||
12 | my $LIBRARY = '../../lib'; | |
13 | ||
14 | my @TZONE_RAW = `locate zoneinfo | grep '^/usr/share/zoneinfo/' | grep -v 'tab\$' | grep -v '/right/' | grep -v '/posix/' | grep -v '/posixrules\$' | grep -v '/Factory\$'`; | |
15 | my @TZONE; | |
16 | my $index = 0; | |
17 | my $USECURRENT = 0; | |
18 | my $year = 0; | |
19 | my $month = 0; | |
20 | my $day = 0; | |
21 | my $hour = 0; | |
22 | my $minute = 0; | |
23 | ||
24 | ||
25 | if (scalar(@ARGV) == 5) { | |
26 | ($year, $month, $day, $hour, $minute) = @ARGV; | |
27 | print "The date we are using is: $month-$day-$year $hour:$minute.\n"; | |
28 | } else { | |
29 | print "We are using the current date.\n"; | |
30 | $USECURRENT = 1; | |
31 | } | |
32 | ||
33 | #filter out the time zones | |
34 | foreach my $tzone (@TZONE_RAW) { | |
35 | chomp($tzone); | |
36 | if (-e $tzone) { | |
37 | $TZONE[$index] = substr($tzone, 20); | |
38 | $index++; | |
39 | } | |
40 | } | |
41 | ||
42 | #go through each timezone and test | |
43 | $count = 0; | |
44 | $ENV{'LD_LIBRARY_PATH'} = $LIBRARY; | |
45 | ||
46 | print "The following time zones had wrong results.\n"; | |
47 | ||
48 | foreach my $tzone (@TZONE) { | |
49 | #set system time zone | |
50 | $ENV{'TZ'} = "$tzone"; | |
51 | ||
52 | my @result = `./tzdate $year $month $day $hour $minute $USECURRENT`; | |
53 | ||
54 | #if the result is wrong print the time zone information to a log file | |
55 | if (scalar(@result) > 0) { | |
56 | print "\nTIME ZONE: $tzone\n"; | |
57 | print "@result\n"; | |
58 | $count++; | |
59 | } | |
60 | } | |
61 | ||
62 | print "\nThe number of time zones with wrong results: $count out of $index\n"; | |
63 | ||
64 | print("\n\nGood Bye!\n"); | |
65 | exit(0); |