home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / t / op / exec.t < prev    next >
Text File  |  2000-02-25  |  1KB  |  49 lines

  1. #!./perl
  2.  
  3. $| = 1;                # flush stdout
  4.  
  5. $ENV{LC_ALL}   = 'C';        # Forge English error messages.
  6. $ENV{LANGUAGE} = 'C';        # Ditto in GNU.
  7.  
  8. if ($^O eq 'MSWin32') {
  9.     # XXX the system tests could be written to use ./perl and so work on Win32
  10.     print "1..0 # Skip: shh, win32\n";
  11.     exit(0);
  12. }
  13.  
  14. print "1..8\n";
  15.  
  16. if ($^O ne 'os2') {
  17.   print "not ok 1\n" if system "echo ok \\1";    # shell interpreted
  18. else {
  19.   print "ok 1 # skipped: bug/feature of pdksh\n"; # shell interpreted
  20. }
  21. print "not ok 2\n" if system "echo ok 2";    # split and directly called
  22. print "not ok 3\n" if system "echo", "ok", "3"; # directly called
  23.  
  24. # these should probably be rewritten to match the examples in perlfunc.pod
  25. if (system "true") {print "not ok 4\n";} else {print "ok 4\n";}
  26.  
  27. if ($^O eq 'mpeix') {
  28.     print "ok 5 # skipped: status broken on MPE/iX\n";
  29. } else {
  30.     if ((system "/bin/sh -c 'exit 1'") != 256) { print "not "; }
  31.     print "ok 5\n";
  32. }
  33.  
  34. $rc = system "lskdfj";
  35. if ($rc == 255 << 8 or $rc == -1 and
  36.      (
  37.       $! == 2 or
  38.       $! =~ /\bno\b.*\bfile/i or
  39.       $! == 13 or
  40.       $! =~ /permission denied/i
  41.      )
  42.    )
  43.  {print "ok 6\n";} else {print "not ok 6\n";}
  44.  
  45. unless (exec "lskdjfalksdjfdjfkls") {print "ok 7\n";} else {print "not ok 7\n";}
  46.  
  47. exec "echo","ok","8";
  48.