Home | History | Annotate | Download | only in compat
      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);
     66