--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tracefw/tracecompiler/test/src/TracesInHeadersTest.java Tue Aug 31 16:45:49 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/<taget>_<ext>****************************");
+ //Call Raptor
+ InvokeCompiler("_diffnames_tracesplus", "sbs");
+ }
+
+ @Test
+ public void TracesInHeradersTest4 (){
+ System.out.println ("*********************single mmp with same names and using tarce/<taget>_<ext>****************************");
+ //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/<target>_<ext> ****************************");
+ //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");
+ }
+
+}
+