diff -r a151135b0cf9 -r aa2539c91954 tracesrv/tracecompiler/test/src/TracesInHeadersTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tracesrv/tracecompiler/test/src/TracesInHeadersTest.java Fri Oct 08 14:56:39 2010 +0300 @@ -0,0 +1,210 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +import static org.junit.Assert.fail; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +import org.junit.BeforeClass; +import org.junit.Test; + + +public class TracesInHeadersTest { + + public static void main(String args[]) { + org.junit.runner.JUnitCore.main(TracesInHeadersTest.class.getName()); + } + /****************************************************UTILITY FUNCTIONS FOR TESTS************************************************************/ + + private static String epocroot = null; + private static String projectdir = "testdata\\TracesInHeadersApps\\"; //$NON-NLS-1$ + private static File compilerpath; + private static ProcessBuilder sbs_build = new ProcessBuilder("sbs.bat","-k","-c","winscw_udeb.tracecompiler"); + private static ProcessBuilder sbs_reallyclean = new ProcessBuilder("sbs.bat","-k","-c","winscw_udeb.tracecompiler", "reallyclean"); + + @BeforeClass + static public void setEnvVariables() { + epocroot = System.getenv("EPOCROOT"); //$NON-NLS-1$ + if(epocroot == null || (epocroot.length()==0)){ + fail(); + } + + // need to check that the path ends in a backslash + if(!epocroot.endsWith("\\")){ + epocroot += "\\"; + } + } + + + /** + * This function invokes raptor on the desired test c++ project + * + * @param path String specifying the path the compiler needs + * to run from + */ + public void InvokeCompiler(String path, String builder) { + System.out.println ("InvokeCompiler() for : " + builder); + + try{ + + //set up the directory from which the process will be called + if (path.compareTo("_diffnames")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"singlemmp_diffnames\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_samenames")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"singlemmp_samenames\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_diffnames_tracesplus")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"singlemmp_diffnames_tracesplus\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_samenames_tracesplus")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"singlemmp_samenames_tracesplus\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_samenames")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"singlemmp_samenames\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_separate_source")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"multmmp_separate_source\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_comm_source")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"multmmp_comm_source\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_comm_source_tracesplus")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"multmmp_comm_source_tracesplus\\group\\"); //$NON-NLS-1$ + } else if (path.compareTo("_import")==0){ //$NON-NLS-1$ + + compilerpath = new File (epocroot+projectdir+"singlemmp_import\\group\\"); //$NON-NLS-1$ + } + else{ + + System.out.println("Error: Unrecognised test case."); + fail(); + } + + //set up the process builder object + sbs_build.directory(compilerpath); + sbs_reallyclean.directory(compilerpath); + sbs_build.redirectErrorStream(true); + + Process p = null; + String str = ""; + //start the compiler + System.out.println("Starting build process ...."); + + System.out.println("Running sbs reallyclean on : " + compilerpath + " command: " + sbs_reallyclean.command().toString()); + p = sbs_reallyclean.start(); + readProcessOutput(p); + System.out.println("Running sbs on : " + compilerpath + " command: " + sbs_build.command().toString()); + p = sbs_build.start(); + str = readProcessOutput(p); + + int ret = p.exitValue(); + System.out.println("build process ended...."); + if (ret!=0){ + if (path.compareTo("_import")==0){ //$NON-NLS-1$ + System.out.println("build process expected to fail: "+str); + } else { + System.out.println("build process failed:"+str); + fail(); + } + } + } + + catch (Exception e){//Catch exception if any + System.err.println("Error: " + e.getMessage()); + fail(); + } + + } + + + static private String readProcessOutput(Process p) throws IOException { + InputStream inp = p.getInputStream(); + + int c; + String str = ""; + //read the output from the compiler into the input stream + while ((c = inp.read()) != -1) { + str= str +((char)c); + } + return str; + } + + + + /****************************************************ACTUAL TESTS************************************************************/ + @Test + public void TracesInHeradersTest1 (){ + System.out.println ("*********************single mmp with diff names****************************"); + //Call Raptor + InvokeCompiler("_diffnames", "sbs"); + } + + @Test + public void TracesInHeradersTest2 (){ + System.out.println ("*********************single mmp with same names****************************"); + //Call Raptor + InvokeCompiler("_samenames", "sbs"); + } + + @Test + public void TracesInHeradersTest3 (){ + System.out.println ("*********************single mmp with diff names and using tarce/_****************************"); + //Call Raptor + InvokeCompiler("_diffnames_tracesplus", "sbs"); + } + + @Test + public void TracesInHeradersTest4 (){ + System.out.println ("*********************single mmp with same names and using tarce/_****************************"); + //Call Raptor + InvokeCompiler("_samenames_tracesplus", "sbs"); + } + + @Test + public void TracesInHeradersTest5 (){ + System.out.println ("*********************multiple mmp with separate source ****************************"); + //Call Raptor + InvokeCompiler("_separate_source", "sbs"); + } + + @Test + public void TracesInHeradersTest6 (){ + System.out.println ("*********************multiple mmp with common source ****************************"); + //Call Raptor + InvokeCompiler("_comm_source", "sbs"); + } + + @Test + public void TracesInHeradersTest7 (){ + System.out.println ("*********************multiple mmp with common source and traces/_ ****************************"); + //Call Raptor + InvokeCompiler("_comm_source_tracesplus", "sbs"); + } + + @Test + public void TracesInHeradersTest8 (){ + System.out.println ("*********************Traces in header exported to epoc32 by another mmp****************************"); + //Call Raptor + InvokeCompiler("_import", "sbs"); + } + +} +