Whamcloud - gitweb
Branch b1_4
[fs/lustre-release.git] / libsysio / tests / test_stats.pl
diff --git a/libsysio/tests/test_stats.pl b/libsysio/tests/test_stats.pl
deleted file mode 100755 (executable)
index fee6a32..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-#!/usr/bin/perl -w
-
-#
-# stats test: Verifies that the set of stat calls (stat, fstat, fstatvfs, and 
-#             statvfs) return the same items and that the calls return the
-#             same items as Perl's stat call (which would use a native library
-#             and not libsysio)
-#
-#
-
-use IPC::Open2;
-
-use strict;
-use FindBin;
-use lib "$FindBin::Bin";
-use helper;
-
-sub usage
-{
-  print "Usage ./test_stats.pl file : Verifies that the set of stat calls (stat, \n";
-  print "                           : fstat, fstatvfs, statvfs) return the same set\n";
-  print "                           : of stats for file and that the calls return \n";
-  print "                           : the same items as Perl's stat call (which \n";
-  print "                           : would use a native library and not libsysio)\n";
-  exit(-1);
-}
-
-# Compares the output of Perl's stat function with the output
-# from libsysio's stat
-sub cmp_stats
-{
-
-    my ( $cmdfh, $outfh, $is_alpha, $bits, @stats) = @_;
-
-
-    my ($iodev, $ioino, $iomode, $ionlink, $iouid, $iogid, $iordev, 
-       $iosize, $ioblksize, $ioblks, $ioatime, $iomtime, $ioctime, @pstats) =
-           @stats;
-
-    if ($is_alpha == 1) {
-       ($iodev, $ioino, $iomode, $ionlink, $iouid, $iogid, $iordev, 
-           $iosize, $ioatime, $iomtime, $ioctime, $ioblks, $ioblksize, @pstats) =
-               @stats;
-    }
-    if ($bits == 64) {
-       ($iodev, $ioino, $ionlink, $iomode,  $iouid, $iogid, $iordev, 
-           $iosize, $ioblksize, $ioblks, $ioatime, $iomtime, $ioctime,@pstats) =
-               @stats;
-    }
-    my ($pdev, $pino, $pmode, $pnlink, $puid, $pgid, $prdev,
-       $psize, $patime, $pmtime, $pctime, $pblksize, $pblks) = @pstats;
-
-#  helper::cmp_nums($cmdfh, $outfh, $iodev, $pdev, "device numbers");
-  helper::cmp_nums($cmdfh, $outfh, $ioino, $pino, "inode numbers");
-  helper::cmp_nums($cmdfh, $outfh, $iomode, $pmode, "file modes");
-  helper::cmp_nums($cmdfh, $outfh, $ionlink, $pnlink, "number of links");
-  helper::cmp_nums($cmdfh, $outfh, $iouid, $puid, "user ids");
-  helper::cmp_nums($cmdfh, $outfh, $iogid, $pgid, "group ids");
-  helper::cmp_nums($cmdfh, $outfh, $iordev, $prdev, "device ids");
-  helper::cmp_nums($cmdfh, $outfh, $iosize, $psize, "file sizes");
-  helper::cmp_nums($cmdfh, $outfh, $ioatime, $patime, "access times");
-  helper::cmp_nums($cmdfh, $outfh, $iomtime, $pmtime, "modification times");
-  helper::cmp_nums($cmdfh, $outfh, $ioctime, $pctime, "inode change times");
-  helper::cmp_nums($cmdfh, $outfh, $ioblksize, $pblksize, "block sizes");
-  helper::cmp_nums($cmdfh, $outfh, $ioblks, $pblks, "blocks allocated");
-}
-
-  
-# Prints out the stat buffer and verifies that it matches
-# Perl's output
-sub verify_stat
-{
-  my ($cmdfh, $outfh, $cmd, $is_alpha, $bits, @stats) = @_;
-  my $i=0;
-
-  my $cmdstr;
-  # Print out the stat buffer
-  if ($is_alpha == 1) {
-      $cmdstr = 'PRINT $buf 0 16 LONG 16 16 INT 32 8 LONG 40 4 INT 48 40 LONG'."\n";
-  } elsif ($bits == 32) {
-      $cmdstr = 'PRINT $buf 0 8 LONG 12 24 INT 44 8 LONG 48 8 INT 56 24 LONG'."\n";
-  } else {
-      $cmdstr = 'PRINT $buf 0 24 LONG 24 16 INT 48 32 LONG 88 8 LONG 104 8 LONG'."\n";     
-  }
-  helper::send_cmd($cmdfh, $outfh, "PRINT", $cmdstr);
-
-  my $res = <$outfh>;
-  chop($res);
-
-  my @iostats = split(' ', $res);
-  foreach my $iostat (@iostats) {
-    $iostats[$i] = oct($iostat);
-    $i++;
-  }
-
-  cmp_stats($cmdfh, $outfh, $is_alpha, $bits, @iostats, @stats);
-}
-
-sub process_cmd
-{
-  my ($file, $use_system, $is_alpha) = @_;
-  
-# Get tests directory
-  my $testdir = $FindBin::Bin;
-
-  eval {
-      if ($is_alpha == 0) {
-         open2(\*OUTFILE, \*CMDFILE, "$testdir/test_driver --np");
-      } else {
-         open2(\*OUTFILE, \*CMDFILE, 
-               "yod -batch -quiet -sz 1 $testdir/test_driver --np");
-      }
-  };
-
-  if ($@) {
-    if ($@ =~ /^open2/) {
-      warn "open2 failed: $!\n$@\n";
-      return;
-    }
-    die;
-
-  }
-
-  my $outfh = \*OUTFILE;
-  my $cmdfh = \*CMDFILE;
-
-  if ($is_alpha == 0) {
-    helper::send_cmd($cmdfh, $outfh, "init", "CALL init\n");
-  }
-
-  my @stats;
-  if ($use_system == 1) {
-      # Get stats for file
-      @stats = stat($file);
-  } 
-  # Allocate the buffer
-  my $cmdstr = '$buf = ALLOC ( $size = CALL sizeof stat )'."\n";
-  helper::send_cmd($cmdfh, $outfh, "alloc", $cmdstr);  
-
-
-  # Issue the stat command
-  $cmdstr = 'CALL stat '."$file ".'$buf'."\n";
-  helper::send_cmd($cmdfh, $outfh, "stat", $cmdstr);  
-  helper::verify_cmd($cmdfh, $outfh, "stat");
-
-  # Attempt to determine type
-  $cmdstr = 'PRINT $size'."\n";
-  helper::send_cmd($cmdfh, $outfh, "print", $cmdstr);  
-  my $statsize = <$outfh>;
-  chop($statsize);
-  $statsize = oct($statsize);
-  my $bits = 32;
-  if ($statsize == 144) {
-      $bits = 64;
-  }
-  
-  if ($use_system == 1) {
-      # Now print the buffer out and verify that it matches
-      # what Perl has
-      verify_stat($cmdfh, $outfh, "stat", $is_alpha, $bits, @stats);
-  }
-
-  # Open the file
-  $cmdstr = '$fd = CALL open '."$file O_RDONLY\n";
-  helper::send_cmd($cmdfh, $outfh, "open", $cmdstr);  
-  helper::verify_cmd($cmdfh, $outfh, "open");
-
-
-  # Now issue an fstat call
-  $cmdstr = 'CALL fstat $fd $buf'."\n";
-  helper::send_cmd($cmdfh, $outfh, "fstat", $cmdstr);  
-  helper::verify_cmd($cmdfh, $outfh, "fstat");
-
-  if ($use_system == 1) {
-      verify_stat($cmdfh, $outfh, "fstat", $is_alpha, $bits, @stats);
-  }
-
-  # Test lstat
-  if ($use_system == 1) {
-      @stats = lstat($file);
-  }
-  
-  $cmdstr = 'CALL lstat '."$file ".'$buf'."\n";
-  helper::send_cmd($cmdfh, $outfh, "lstat", $cmdstr);  
-  helper::verify_cmd($cmdfh, $outfh, "lstat");
-
-  if ($use_system == 1) {
-      verify_stat($cmdfh, $outfh, "lstat", $is_alpha, $bits, @stats);
-  }
-
-  if (0) {
-      # Now do statvfs functions
-      $cmdstr = '$buf2 = ALLOC ( $size2 = CALL sizeof statvfs )'."\n";
-      helper::send_cmd($cmdfh, $outfh, "alloc", $cmdstr);
-      
-      # Clear out the buffer
-      $cmdstr = 'CALL clear $buf2'."\n";
-      helper::send_cmd($cmdfh, $outfh, "CLEAR", $cmdstr);
-      
-      $cmdstr = 'CALL statvfs '."$file ".'$buf2'."\n";
-      helper::send_cmd($cmdfh, $outfh, "statvfs", $cmdstr);  
-      helper::verify_cmd($cmdfh, $outfh, "statvfs");
-               
-      # Print out the statvfs buffer
-      $cmdstr = 'PRINT $buf2 0 16 LONG 16 32 INT 48 16 LONG'."\n";
-      helper::send_cmd($cmdfh, $outfh, "PRINT", $cmdstr);
-      
-      my $res = <$outfh>;
-      chop($res);
-      my @vfsstats1 = split(' ', $res);
-               
-      # Clear out the buffer
-      $cmdstr = 'CALL clear $buf2'."\n";
-      helper::send_cmd($cmdfh, $outfh, "CLEAR", $cmdstr);
-               
-      # Now do fstatvfs
-      $cmdstr = 'CALL fstatvfs $fd $buf2'."\n";
-      helper::send_cmd($cmdfh, $outfh, "fstatvfs", $cmdstr);  
-      helper::verify_cmd($cmdfh, $outfh, "fstatvfs");
-      
-      # Print out the statvfs buffer
-      $cmdstr = 'PRINT $buf2 0 16 LONG 16 32 INT 48 16 LONG'."\n";
-      helper::send_cmd($cmdfh, $outfh, "PRINT", $cmdstr);
-      
-      $res = <$outfh>;
-      chop($res);
-      my @vfsstats2 = split(' ', $res);
-  
-      # Verify the two vfsstats arrays match
-      if (@vfsstats1 != @vfsstats2) {
-         helper::print_and_exit($cmdfh, $outfh, 1, "Two vfsstat arrays unequal lengths\n");
-       }
-      
-      my $i=0;
-
-      foreach my $stat1 (@vfsstats1) {
-         if ($stat1 ne $vfsstats2[$i++]) {
-             my $str = sprintf("vfsstats field %d are not equal (%s != %s)\n",
-                               $i-1, $stat1, $vfsstats2[$i-1]);
-             helper::print_and_exit($cmdfh, $outfh, 1, $str);
-      }
-      }
-  }
-  
-  helper::print_and_exit($cmdfh, $outfh, 0, "stat test successful\n");
-}
-
-
-
-
-my $currarg = 0;
-my $is_alpha = 0;
-if (@ARGV < 2) {
-  usage;
-} elsif (@ARGV > 2) {
-  if ($ARGV[$currarg++] eq "-alpha") {
-    $is_alpha = 1;
-  }
-}
-
-my $use_system= $ARGV[$currarg++];
-my $file = $ARGV[$currarg];
-
-process_cmd($file, $use_system, $is_alpha);
-