1*b93b4f1dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*b93b4f1dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*b93b4f1dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*b93b4f1dSAndrew Rist  * distributed with this work for additional information
6*b93b4f1dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*b93b4f1dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*b93b4f1dSAndrew Rist  * "License"); you may not use this file except in compliance
9*b93b4f1dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*b93b4f1dSAndrew Rist  *
11*b93b4f1dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*b93b4f1dSAndrew Rist  *
13*b93b4f1dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*b93b4f1dSAndrew Rist  * software distributed under the License is distributed on an
15*b93b4f1dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b93b4f1dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*b93b4f1dSAndrew Rist  * specific language governing permissions and limitations
18*b93b4f1dSAndrew Rist  * under the License.
19*b93b4f1dSAndrew Rist  *
20*b93b4f1dSAndrew Rist  *************************************************************/
21*b93b4f1dSAndrew Rist 
22*b93b4f1dSAndrew Rist 
23cdf0e10cSrcweir package climaker;
24cdf0e10cSrcweir 
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import complexlib.ComplexTestCase;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir 
29cdf0e10cSrcweir public class ClimakerTestCase extends ComplexTestCase
30cdf0e10cSrcweir {
getTestMethodNames()31cdf0e10cSrcweir     public String[] getTestMethodNames()
32cdf0e10cSrcweir     {
33cdf0e10cSrcweir         // TODO think about trigger of sub-tests from outside
34cdf0e10cSrcweir         return new String[]
35cdf0e10cSrcweir         {
36cdf0e10cSrcweir             "checkGeneratedCLITypes"
37cdf0e10cSrcweir         };
38cdf0e10cSrcweir     }
39cdf0e10cSrcweir 
checkGeneratedCLITypes()40cdf0e10cSrcweir     public void checkGeneratedCLITypes()
41cdf0e10cSrcweir     {
42cdf0e10cSrcweir         try
43cdf0e10cSrcweir         {
44cdf0e10cSrcweir             String testProgram = System.getProperty("cli_ure_test");
45cdf0e10cSrcweir             if (testProgram == null || testProgram.length() == 0)
46cdf0e10cSrcweir                 failed("Check the make file. Java must be called with -Dcli_ure_test=pathtoexe");
47cdf0e10cSrcweir             Process proc = null;
48cdf0e10cSrcweir             try{
49cdf0e10cSrcweir 
50cdf0e10cSrcweir              proc = Runtime.getRuntime().exec(testProgram);
51cdf0e10cSrcweir              Reader outReader = new Reader(proc.getInputStream());
52cdf0e10cSrcweir              Reader errReader = new Reader(proc.getErrorStream());
53cdf0e10cSrcweir 
54cdf0e10cSrcweir             } catch(Exception e)
55cdf0e10cSrcweir             {
56cdf0e10cSrcweir                 System.out.println("\n ###" +  e.getMessage() + "\n");
57cdf0e10cSrcweir 
58cdf0e10cSrcweir             }
59cdf0e10cSrcweir             proc.waitFor();
60cdf0e10cSrcweir             int retVal = proc.exitValue();
61cdf0e10cSrcweir             if (retVal != 0)
62cdf0e10cSrcweir                 failed("Tests for generated CLI code failed.");
63cdf0e10cSrcweir         } catch( java.lang.Exception e)
64cdf0e10cSrcweir         {
65cdf0e10cSrcweir             failed("Unexpected exception.");
66cdf0e10cSrcweir         }
67cdf0e10cSrcweir 
68cdf0e10cSrcweir     }
69cdf0e10cSrcweir }
70cdf0e10cSrcweir 
71cdf0e10cSrcweir 
72cdf0e10cSrcweir /*  This reads reads from an InputStream and discards the data.
73cdf0e10cSrcweir  */
74cdf0e10cSrcweir class Reader extends Thread
75cdf0e10cSrcweir {
76cdf0e10cSrcweir     java.io.InputStream is;
Reader(java.io.InputStream stream)77cdf0e10cSrcweir     public Reader(java.io.InputStream stream)
78cdf0e10cSrcweir     {
79cdf0e10cSrcweir         is = stream;
80cdf0e10cSrcweir         start();
81cdf0e10cSrcweir     }
82cdf0e10cSrcweir 
run()83cdf0e10cSrcweir     public void run()
84cdf0e10cSrcweir     {
85cdf0e10cSrcweir         try
86cdf0e10cSrcweir         {
87cdf0e10cSrcweir             byte[] buf = new byte[1024];
88cdf0e10cSrcweir             while (-1 != is.read(buf));
89cdf0e10cSrcweir         }
90cdf0e10cSrcweir         catch (java.io.IOException exc)
91cdf0e10cSrcweir         {
92cdf0e10cSrcweir         }
93cdf0e10cSrcweir     }
94cdf0e10cSrcweir }
95