test/java/lang/Runtime/exec/ExitValue.java

Print this page




  51         Process proc = Runtime.getRuntime().exec(commandArgs);
  52         int val;
  53         byte[] buf = new byte[4096];
  54         int n = proc.getErrorStream().read(buf);
  55         if (n > 0)
  56             throw new Exception
  57                 ("Unexpected stderr: "
  58                  + new String(buf, 0, n, "ASCII"));
  59         if ((val = proc.waitFor()) != expectedExitValue)
  60             throw new Exception
  61                 ("waitFor() returned unexpected value " + val);
  62         if ((val = proc.exitValue()) != expectedExitValue)
  63             throw new Exception
  64                 ("exitValue() returned unexpected value " + val);
  65     }
  66 
  67     public static void checkPosixShellExitValue(String posixShellProgram,
  68                                                 int expectedExitValue)
  69         throws Exception
  70     {
  71         checkExitValue(new String[] { "/bin/sh", "-c", posixShellProgram },
  72                        expectedExitValue);
  73     }
  74 
  75     final static int EXIT_CODE = 5;
  76 
  77     public static void main(String[] args) throws Exception {
  78 
  79         String java = join(File.separator, new String []
  80             { System.getProperty("java.home"), "bin", "java" });
  81 
  82         checkExitValue(new String[]
  83             { java,
  84               "-classpath", System.getProperty("test.classes", "."),
  85               "ExitValue$Run", String.valueOf(EXIT_CODE)
  86             }, EXIT_CODE);
  87 
  88         checkExitValue(new String[] { "/bin/true" }, 0);
  89 
  90         checkPosixShellExitValue("exit", 0);
  91 
  92         checkPosixShellExitValue("exit 7", 7);
  93 
  94         if (new File("/bin/kill").exists()) {
  95             int sigoffset =
  96                 System.getProperty("os.name").equals("SunOS") ? 0 : 128;
  97             checkPosixShellExitValue("/bin/kill -9 $$", sigoffset+9);
  98         }
  99     }
 100 
 101     public static class Run {
 102         public static void main (String[] argv) {
 103             System.exit(Integer.parseInt(argv[0]));
 104         }
 105     }
 106 }


  51         Process proc = Runtime.getRuntime().exec(commandArgs);
  52         int val;
  53         byte[] buf = new byte[4096];
  54         int n = proc.getErrorStream().read(buf);
  55         if (n > 0)
  56             throw new Exception
  57                 ("Unexpected stderr: "
  58                  + new String(buf, 0, n, "ASCII"));
  59         if ((val = proc.waitFor()) != expectedExitValue)
  60             throw new Exception
  61                 ("waitFor() returned unexpected value " + val);
  62         if ((val = proc.exitValue()) != expectedExitValue)
  63             throw new Exception
  64                 ("exitValue() returned unexpected value " + val);
  65     }
  66 
  67     public static void checkPosixShellExitValue(String posixShellProgram,
  68                                                 int expectedExitValue)
  69         throws Exception
  70     {
  71         checkExitValue(new String[] { UnixCommands.sh(), "-c", posixShellProgram },
  72                        expectedExitValue);
  73     }
  74 
  75     final static int EXIT_CODE = 5;
  76 
  77     public static void main(String[] args) throws Exception {
  78 
  79         String java = join(File.separator, new String []
  80             { System.getProperty("java.home"), "bin", "java" });
  81 
  82         checkExitValue(new String[]
  83             { java,
  84               "-classpath", System.getProperty("test.classes", "."),
  85               "ExitValue$Run", String.valueOf(EXIT_CODE)
  86             }, EXIT_CODE);
  87 
  88         checkExitValue(new String[] { UnixCommands.true_() }, 0);
  89 
  90         checkPosixShellExitValue("exit", 0);
  91 
  92         checkPosixShellExitValue("exit 7", 7);
  93 
  94         if (new File(UnixCommands.kill()).exists()) {
  95             int sigoffset =
  96                 System.getProperty("os.name").equals("SunOS") ? 0 : 128;
  97             checkPosixShellExitValue(UnixCommands.kill() + " -9 $$", sigoffset+9);
  98         }
  99     }
 100 
 101     public static class Run {
 102         public static void main (String[] argv) {
 103             System.exit(Integer.parseInt(argv[0]));
 104         }
 105     }
 106 }