#!/usr/bin/perl # # Copyright (C) 2007-2007, International Business Machines # Corporation and others. All Rights Reserved. # if ($ARGV[0] eq '-h' || $ARGV[0] eq '--help') { print "Usage: tzone [year month day hour minute]\n"; exit(0); } my $LIBRARY = '../../lib'; my @TZONE_RAW = `locate zoneinfo | grep '^/usr/share/zoneinfo/' | grep -v 'tab\$' | grep -v '/right/' | grep -v '/posix/' | grep -v '/posixrules\$' | grep -v '/Factory\$'`; my @TZONE; my $index = 0; my $USECURRENT = 0; my $year = 0; my $month = 0; my $day = 0; my $hour = 0; my $minute = 0; if (scalar(@ARGV) == 5) { ($year, $month, $day, $hour, $minute) = @ARGV; print "The date we are using is: $month-$day-$year $hour:$minute.\n"; } else { print "We are using the current date.\n"; $USECURRENT = 1; } #filter out the time zones foreach my $tzone (@TZONE_RAW) { chomp($tzone); if (-e $tzone) { $TZONE[$index] = substr($tzone, 20); $index++; } } #go through each timezone and test $count = 0; $ENV{'LD_LIBRARY_PATH'} = $LIBRARY; print "The following time zones had wrong results.\n"; foreach my $tzone (@TZONE) { #set system time zone $ENV{'TZ'} = "$tzone"; my @result = `./tzdate $year $month $day $hour $minute $USECURRENT`; #if the result is wrong print the time zone information to a log file if (scalar(@result) > 0) { print "\nTIME ZONE: $tzone\n"; print "@result\n"; $count++; } } print "\nThe number of time zones with wrong results: $count out of $index\n"; print("\n\nGood Bye!\n"); exit(0);