1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  this work for additional information regarding copyright ownership.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  the License.  You may obtain a copy of the License at
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  See the License for the specific language governing permissions and
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *  limitations under the License.
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.lang;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
202f563a4590c4a0e54177906c47d50f4ef454eba5Jorg Pleumannimport dalvik.annotation.BrokenTest;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.OutputStream;
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Process.class)
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class ProcessTest extends junit.framework.TestCase {
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.Process#getInputStream()
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getInputStream",
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getInputStream() {
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Test for:
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //Object[] execArgs = Support_Exec.execJava2(
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //        new String[] { "tests.support.Support_AvailTest" }, null,
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //        true);
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //Process proc = (Process) execArgs[0];
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String[] commands = { "sleep", "1"};
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Process proc = Runtime.getRuntime().exec(commands, null, null);
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            OutputStream os = proc.getOutputStream();
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // first number indicates total stream length
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // second number indicates length of data after second space
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // this will allow us to verify length at start, middle, and end
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.write("10 5 abcde".getBytes());
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.close();
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InputStream is = proc.getInputStream();
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            StringBuffer msg = new StringBuffer("");
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            while (true) {
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                int c = is.read();
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                if (c == -1)
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    break;
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                msg.append((char) c);
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.close();
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            proc.waitFor();
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //Support_Exec.checkStderr(execArgs);
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            proc.destroy();
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("true", msg.toString(), msg.toString());
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException executing avail test: " + e);
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (InterruptedException e) {
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("InterruptedException executing avail test: " + e);
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.lang.Process#getOutputStream()
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getOutputStream",
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getOutputStream() {
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String[] commands = { "sleep", "1"};
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Process proc = Runtime.getRuntime().exec(commands, null, null);
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            OutputStream os = proc.getOutputStream();
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // send data, and check if it is echoed back correctly
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String str1 = "Some data for testing communication between processes\n";
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String str2 = "More data that serves the same purpose.\n";
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String str3 = "Here is some more data.\n";
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.write(str1.getBytes());
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Thread.sleep(2000);
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (InterruptedException e) {
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                e.printStackTrace();
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.close();
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InputStream is = proc.getInputStream();
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            StringBuffer msg = new StringBuffer("");
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            while (true) {
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                int c = is.read();
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                if (c == -1)
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    break;
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                msg.append((char) c);
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            is.close();
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            proc.waitFor();
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //Support_Exec.checkStderr(execArgs);
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            proc.destroy();
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String org = str1;
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String recvd = msg.toString();
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // Doesn't pass on RI
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // assertTrue("Data returned did not match data sent. Received: '"
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //        + recvd + "' sent: '" + org + "'", recvd.equals(org));
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException executing avail test: " + e);
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (InterruptedException e) {
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("InterruptedException executing avail test: " + e);
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "exitValue",
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_exitValue() {
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String[] commands = { "ls" };
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Process process = Runtime.getRuntime().exec(commands, null, null);
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Thread.sleep(5000);
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch(Exception e) {
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue(process.exitValue() == 0);
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            String[] commandsSleep = { "sleep", "3" };
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            process = Runtime.getRuntime().exec(commandsSleep, null, null);
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            process.destroy();
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Thread.sleep(5000);
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (Exception e) {}
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue(process.exitValue() != 0);
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            process = Runtime.getRuntime().exec(commandsSleep, null, null);
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                process.exitValue();
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("IllegalThreadStateException was not thrown.");
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch(IllegalThreadStateException itse) {
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project               //expected
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException was thrown.");
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "Process",
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor() {
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ProcessClass pc = new ProcessClass();
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(pc.exitValue() == 0);
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "destroy",
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1832f563a4590c4a0e54177906c47d50f4ef454eba5Jorg Pleumann    @BrokenTest("Sporadic timeouts in CTS, but not in CoreTestRunner")
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_destroy() {
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String[] commands = { "ls"};
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            Process process = Runtime.getRuntime().exec(commands, null, null);
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            process.destroy();
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IOException e) {
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IOException was thrown.");
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() {
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() {
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void doneSuite() {
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    class ProcessClass extends Process {
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ProcessClass() {
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super();
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public void destroy() {
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public int exitValue() {
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // TODO Auto-generated method stub
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return 0;
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public InputStream getErrorStream() {
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return null;
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public InputStream getInputStream() {
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return null;
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public OutputStream getOutputStream() {
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return null;
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public int waitFor() throws InterruptedException {
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // TODO Auto-generated method stub
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return 0;
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
243