44 lines
878 B
Java
44 lines
878 B
Java
// Create a long running process and verify that the exitValue is not
|
|
// immediately available. Then destroy() it and verify that it
|
|
// terminates quickly with a non-zero exitValue.
|
|
public class Process_5
|
|
{
|
|
public static void main(String[] args)
|
|
{
|
|
try
|
|
{
|
|
int c;
|
|
long startTime = System.currentTimeMillis();
|
|
Runtime r = Runtime.getRuntime();
|
|
String[] a = { "sleep", "120" };
|
|
Process p = r.exec(a);
|
|
|
|
try
|
|
{
|
|
c = p.exitValue();
|
|
System.out.println("bad 1");
|
|
return;
|
|
}
|
|
catch (IllegalThreadStateException itse)
|
|
{
|
|
// Ignore as this is good here.
|
|
}
|
|
|
|
p.destroy();
|
|
|
|
c = p.waitFor();
|
|
|
|
long endTime = System.currentTimeMillis();
|
|
|
|
if (endTime - startTime > 110000L)
|
|
System.out.println("bad 2");
|
|
|
|
System.out.println(c != 0 ? "ok" : "bad 3");
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
System.out.println(ex.toString());
|
|
}
|
|
}
|
|
}
|