001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: /**
019: * @author Serguei S.Zapreyev
020: * @version $Revision$
021: */package java.lang;
022:
023: import java.io.File;
024: import java.io.BufferedReader;
025: import java.io.IOException;
026: import java.io.InputStreamReader;
027:
028: import junit.framework.TestCase;
029:
030: /*
031: * Created on March 29, 2006
032: *
033: * This RuntimeAdditionalTest class is used to test the Core API Runtime class
034: *
035: */
036:
037: /**
038: * ###############################################################################
039: * ###############################################################################
040: * TODO: 1.
041: * ###############################################################################
042: * ###############################################################################
043: */
044:
045: public class RuntimeAdditionalTest38 extends TestCase {
046: /**
047: * check possibility of big env array defining via exec(..., env, ...) and
048: * long file name via exec(..., file)
049: */
050: public void test_36() {
051: System.out.println("==test_36===");
052: String command = null;
053: if (RuntimeAdditionalTest0.os.equals("Win")) {
054: command = RuntimeAdditionalTest0.cm
055: + " /C \"echo %Z_S_S_2%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"";
056: } else if (RuntimeAdditionalTest0.os.equals("Lin")) {
057: //command = "sh -c \"echo $Z_S_S_2\"";
058: //command = "echo $Z_S_S_2";
059: command = "/usr/bin/env";
060: } else {
061: fail("WARNING (test_1): unknown operating system.");
062: }
063: String procValue = null;
064: try {
065: Process proc = Runtime.getRuntime().exec(command,
066: new String[] { "Z_S_S_2=S_O_M_E_T_H_I_N_G" });
067: BufferedReader br = new BufferedReader(
068: new InputStreamReader(proc.getInputStream()));
069: //procValue = br.readLine();
070: boolean flg = true;
071: while ((procValue = br.readLine()) != null) {
072: //if (procValue.indexOf("Z_S_S_2=S_O_M_E_T_H_I_N_G") != -1) {
073: if (procValue.indexOf(RuntimeAdditionalTest0.os
074: .equals("Win") ? "S_O_M_E_T_H_I_N_Gx"
075: : "S_O_M_E_T_H_I_N_G") != -1) {
076: flg = false;
077: break;
078: }
079: System.out
080: .println("WARNING (test_36): should it be only singl line in env after such exec? ("
081: + procValue + ")");
082: }
083: if (flg) {
084: fail("ERROR (test_36): Z_S_S_2 var should be present and assingned correctly.");
085: }
086: } catch (IOException e) {
087: e.printStackTrace();
088: fail("ERROR (test_36): unexpected exception.");
089: }
090: try {
091: String ts = "Z_S_S_3=S_O_M_E_T_H_I_N_G L_O_N_GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG";
092: String ts2 = "Z_S_S_2=S_O_M_E_T_H_I_N_G";
093: Process proc = Runtime.getRuntime().exec(
094: command,
095: new String[] { ts2, ts, ts, ts, ts, ts, ts, ts, ts,
096: ts, ts, ts, ts, ts, ts, ts, ts, ts2, ts,
097: ts, ts, ts, ts, ts, ts, ts, ts, ts, ts, ts,
098: ts, ts, ts, ts, ts2, ts, ts, ts, ts, ts,
099: ts, ts, ts, ts, ts, ts, ts, ts, ts, ts, ts,
100: ts2, ts, ts, ts, ts, ts, ts, ts, ts, ts,
101: ts, ts, ts, ts, ts, ts, ts, ts2, ts, ts,
102: ts, ts, ts, ts, ts, ts, ts, ts, ts, ts, ts,
103: ts, ts, ts, ts2, ts, ts, ts, ts, ts, ts,
104: ts, ts, ts, ts, ts, ts, ts, ts, ts, ts,
105: ts2, ts, ts, ts, ts, ts, ts, ts, ts, ts,
106: ts, ts, ts, ts, ts, ts, ts, ts2, ts, ts,
107: ts, ts, ts, ts, ts, ts, ts, ts, ts, ts, ts,
108: ts, ts, ts, ts2, ts, ts, ts, ts, ts,
109: // ts,
110: },
111: new File("."
112: + File.separator
113: + ".."
114: + File.separator
115: + ".."
116: + File.separator
117: + ".."
118: + File.separator
119: + ".."
120: + File.separator
121: + ".."
122: + File.separator
123: + File.separator
124: + ".."
125: + File.separator
126: + ".."
127: + File.separator
128: + ".."
129: + File.separator
130: + ".."
131: + File.separator
132: + ".."
133: + File.separator
134: + File.separator
135: + ".."
136: + File.separator
137: + ".."
138: + File.separator
139: + ".."
140: + File.separator
141: + ".."
142: + File.separator
143: + ".."
144: + File.separator
145: + File.separator
146: + ".."
147: + File.separator
148: + ".."
149: + File.separator
150: + ".."
151: + File.separator
152: + ".."
153: + File.separator
154: + ".."
155: + File.separator
156: + File.separator
157: + ".."
158: + File.separator
159: + ".."
160: + File.separator
161: + ".."
162: + File.separator
163: + ".."
164: + File.separator
165: + ".."
166: + File.separator
167: + File.separator
168: + ".."
169: + File.separator
170: + ".."
171: + File.separator
172: + ".."
173: + File.separator
174: + ".."
175: //+ File.separator + ".." + File.separator
176: //+ File.separator + ".." + File.separator + ".."
177: //+ File.separator + ".." + File.separator + ".."
178: + File.separator + ".." + File.separator
179: + File.separator + ".." + File.separator
180: + ".." + File.separator + ".."
181: + File.separator + ".." + File.separator
182: + ".." + File.separator + File.separator
183: + ".." + File.separator + ".."
184: + File.separator + ".." + File.separator
185: + ".." + File.separator + ".."
186: + File.separator + File.separator + ".."
187: + File.separator + ".." + File.separator
188: + ".." + File.separator + ".."
189: + File.separator + ".." + File.separator
190: + File.separator + ".." + File.separator
191: + ".." + File.separator + ".."
192: + File.separator + ".." + File.separator
193: + ".." + File.separator + File.separator
194: + ".." + File.separator + ".."
195: + File.separator + ".." + File.separator
196: + ".." + File.separator + ".."
197: + File.separator + File.separator + ".."
198: + File.separator + ".." + File.separator
199: + ".." + File.separator + ".."
200: + File.separator + ".." + File.separator
201: + File.separator + ".." + File.separator
202: + ".." + File.separator + ".."
203: + File.separator + ".." + File.separator
204: + ".." + File.separator));
205: BufferedReader br = new BufferedReader(
206: new InputStreamReader(proc.getInputStream()));
207: procValue = br.readLine();
208: } catch (java.io.IOException e) {
209: e.printStackTrace();
210: fail("ERROR (test_36): unexpected exception.");
211: }
212: }
213: }
|