1 /*
2  *  Licensed to the Apache Software Foundation (ASF) under one or more
3  *  contributor license agreements.  See the NOTICE file distributed with
4  *  this work for additional information regarding copyright ownership.
5  *  The ASF licenses this file to You under the Apache License, Version 2.0
6  *  (the "License"); you may not use this file except in compliance with
7  *  the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  */
17 
18 package org.apache.harmony.luni.tests.internal.process;
19 
20 import java.io.OutputStream;
21 
22 import junit.framework.TestCase;
23 import tests.support.Support_Exec;
24 
25 public class SystemProcessTest extends TestCase {
26 
test_interrupt()27     public void test_interrupt() throws Exception {
28         Object[] execArgs = null;
29         Process process = null;
30         try {
31             Thread.currentThread().interrupt();
32             execArgs = Support_Exec.execJava2(
33                     new String[] { "tests.support.Support_AvailTest" }, null,
34                     true);
35             process = (Process) execArgs[0];
36             OutputStream os = process.getOutputStream();
37             os.write("10 5 abcde".getBytes());
38             os.close();
39             process.waitFor();
40             fail("Should throw InterruptedException");
41         } catch (InterruptedException e) {
42             // Expected
43         }
44 
45         try {
46             Thread.sleep(1000);
47         } catch (InterruptedException e) {
48             // Ignored
49         }
50         process.waitFor();
51         Support_Exec.checkStderr(execArgs);
52         process.destroy();
53     }
54 }
55