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