mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			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());
 | 
						|
      }
 | 
						|
  }
 | 
						|
}
 |