diff -r a151135b0cf9 -r aa2539c91954 tracefw/tracecompiler/test/src/MultipleMmpTest.java --- a/tracefw/tracecompiler/test/src/MultipleMmpTest.java Wed Sep 29 17:45:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,754 +0,0 @@ -/* -* 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.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.junit.BeforeClass; -import org.junit.Test; - -import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals; -import com.nokia.tracecompiler.model.TraceCompilerException; - - -public class MultipleMmpTest { - - public static void main(String args[]) { - org.junit.runner.JUnitCore.main(MultipleMmpTest.class.getName()); - } - - /****************************************************UTILITY FUNCTIONS FOR TESTS************************************************************/ - - private static String epocroot = null; - private static String projectdir = "testdata\\MultipleMmpTestCases\\"; //$NON-NLS-1$ - private static String dictpath= "epoc32\\ost_dictionaries\\"; //$NON-NLS-1$ - private static String autogenpath= "epoc32\\include\\platform\\symbiantraces\\autogen\\"; //$NON-NLS-1$ - private static Pattern versionPattern = Pattern.compile("^.*(\\d+\\.\\d+\\.\\d+).*$"); //$NON-NLS-1$ - private static Pattern oldversionPat = Pattern.compile("^(1\\..*)|(2\\.1.*)"); //$NON-NLS-1$ - //old TC version should be up to 2.12.5 as new functionality was submitted to 2.12.6 (we hope) - private static Pattern sbsoldversionPat = Pattern.compile("^(1\\..*)|(2\\.[01]\\..*)|(2\\.1[0-2]\\.[0-3].*)"); //$NON-NLS-1$ - private static String TCversion = ""; //$NON-NLS-1$ - private static String SBSversion = ""; //$NON-NLS-1$ - private static File compilerpath; - private static boolean oldTC = false; - private static boolean oldBuilder = false; - private static HashMap> headers = new HashMap>(); - private static HashMap> dicts = new HashMap>(); - private static HashMap> sources = new HashMap>(); - 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 += "\\"; - } - - compilerpath = new File (epocroot + "epoc32" + File.separator + "tools" + File.separator +"tracecompiler" + File.separator); //default value to remove warnings. //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - - ProcessBuilder tc = new ProcessBuilder("java", "-classpath", compilerpath.getPath(), //$NON-NLS-1$//$NON-NLS-2$ - "com.nokia.tracecompiler.TraceCompiler", "-v"); //$NON-NLS-1$//$NON-NLS-2$ - System.out.println("compilerPath= " + compilerpath); //$NON-NLS-1$ - tc.directory(compilerpath); - tc.redirectErrorStream(true); - try { - Process p = tc.start(); - p.waitFor(); - - - String str = readProcessOutput(p); - System.out.println("TC version = " + str); //$NON-NLS-1$ - Matcher m = versionPattern.matcher(str.trim()); - if (m.matches()) { - TCversion = m.group(1); - System.out.println("TC Version = " + TCversion); //$NON-NLS-1$ - } - - m = oldversionPat.matcher(TCversion); - if (m.matches()){ - oldTC=true; - } - - System.out.println("TC version = " + TCversion); //$NON-NLS-1$ - System.out.println("OLD TC version = " + oldTC); //$NON-NLS-1$ - - ProcessBuilder sbs = new ProcessBuilder("sbs.bat","-v"); //$NON-NLS-1$ //$NON-NLS-2$ - sbs.directory(compilerpath); - sbs.redirectErrorStream(true); - - //start the compiler - p = sbs.start(); - p.waitFor(); - - InputStream inp = p.getInputStream(); - - str = ""; //$NON-NLS-1$ - int c; - //read the output from the compiler into the input stream - while ((c = inp.read()) != -1) { - str= str +((char)c); - } - - System.out.println("SBS version = " + str); //$NON-NLS-1$ - m = versionPattern.matcher(str.trim()); - if (m.matches()) { - SBSversion = m.group(1); - } - - m = sbsoldversionPat.matcher(SBSversion); - if (m.matches()){ - oldBuilder=true; - } - - } catch (Exception e) {// Catch exception if any - System.err.println(e.getMessage()); - } - } - - - public void createListHeadersDicts(String builder) - { - //The whole logic of what is expected is built here whether we build with sbs - //new TC or old, The structure is re-built for each case. - - - Matcher m = sbsoldversionPat.matcher(SBSversion); - if (m.matches()){ - oldBuilder=true; - } else { - oldBuilder=false; - } - - - System.out.println("OLD Builder :" + builder + ": = " + oldBuilder); //$NON-NLS-1$ - - File tracesHeader1; - File tracesHeader2; - File tracesHeader3; - File tracesHeader4; - File source1; - File source2; - File source3; - File source4; - File ostTraceDefinitions; - File fixedidDefinitions; - File ostDict1; - File ostDict2; - File autogenDict1; - File autogenDict2; - String loc = "traces\\"; //$NON-NLS-1$ - - source1 = new File (epocroot+projectdir+"mmp_traces\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source2 = new File (epocroot+projectdir+"mmp_traces\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - source3 = new File (epocroot+projectdir+"mmp_traces\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$ - source4 = new File (epocroot+projectdir+"mmp_traces\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$ - sources.put("_traces", Arrays.asList(source1, source2, source3, source4)); - - tracesHeader1 = new File (epocroot+projectdir+"mmp_traces\\traces\\MultipleMmpApp1Traces.h"); //$NON-NLS-1$ - tracesHeader2 = new File (epocroot+projectdir+"mmp_traces\\traces\\ExtraCppFile1Traces.h"); //$NON-NLS-1$ - tracesHeader3 = new File (epocroot+projectdir+"mmp_traces\\traces\\MultipleMmpApp2Traces.h"); //$NON-NLS-1$ - tracesHeader4 = new File (epocroot+projectdir+"mmp_traces\\traces\\ExtraCppFile2Traces.h"); //$NON-NLS-1$ - - ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces\\traces\\OstTraceDefinitions.h"); //$NON-NLS-1$ - fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces\\traces\\fixed_id.definitions"); //$NON-NLS-1$) - headers.put("_traces", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$ - - ostDict1 = new File(epocroot+dictpath+"mmp_traces1_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$ - ostDict2 = new File(epocroot+dictpath+"mmp_traces2_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$ - autogenDict1 = new File(epocroot+autogenpath+"mmp_traces1_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$ - autogenDict2 = new File(epocroot+autogenpath+"mmp_traces2_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$ - dicts.put("_traces", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$ - - //============================= - - if (!oldBuilder && !oldTC) { - loc = "traces_mmp_traces_mmpname1\\"; //$NON-NLS-1$ - } - tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_mmpname\\"+ loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - if (!oldBuilder && !oldTC) { - loc = "traces_mmp_traces_mmpname2\\"; //$NON-NLS-1$ - } - tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$ - fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$) - - headers.put("_traces_mmpname", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$ - - source1 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source2 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - source3 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$ - source4 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$ - sources.put("_traces_mmpname", Arrays.asList(source1, source2, source3, source4)); - - ostDict1 = new File(epocroot+dictpath+"mmp_traces_mmpname1_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$ - ostDict2 = new File(epocroot+dictpath+"mmp_traces_mmpname2_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$ - autogenDict1 = new File(epocroot+autogenpath+"mmp_traces_mmpname1_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$ - autogenDict2 = new File(epocroot+autogenpath+"mmp_traces_mmpname2_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$ - dicts.put("_traces_mmpname", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$ - - //============================= - - loc = "traces\\"; //$NON-NLS-1$ - if (!oldTC) { - loc = "traces\\target7_dll\\"; //$NON-NLS-1$ - } - tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - if (!oldTC) { - loc = "traces\\target8_dll\\"; //$NON-NLS-1$ - } - tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$ - fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$) - - headers.put("_traces_slash_target_ext", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$ - - source1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - source3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$ - source4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$ - sources.put("_traces_slash_target_ext", Arrays.asList(source1, source2, source3, source4)); - - - String name1 = ""; - String name2 = ""; - if (oldTC) { - name1 = "mmp_traces_slash_target_ext1"; - name2 = "mmp_traces_slash_target_ext2"; - } else { - name1 = "target7_dll"; - name2 = "target8_dll"; - } - - ostDict1 = new File(epocroot+dictpath + name1 + "_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$ - ostDict2 = new File(epocroot+dictpath + name2 + "_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$ - autogenDict1 = new File(epocroot+autogenpath + name1 + "_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$ - autogenDict2 = new File(epocroot+autogenpath + name2 + "_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$ - dicts.put("_traces_slash_target_ext", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$ - - //================================ - loc = "traces\\"; //$NON-NLS-1$ - if (!oldTC) { - loc = "traces\\target9_dll\\"; //$NON-NLS-1$ - } - tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - if (!oldTC) { - loc = "traces\\target10_dll\\"; //$NON-NLS-1$ - } - tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$ - fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$) - - headers.put("_traces_slash_target_ext_commonsource", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$ - - source1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - source3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - sources.put("_traces_slash_target_ext_commonsource", Arrays.asList(source1, source2, source3, source4)); - - - if (oldTC) { - name1 = "mmp_traces_slash_target_ext1_cs"; - name2 = "mmp_traces_slash_target_ext2_cs"; - } else { - name1 = "target9_dll"; - name2 = "target10_dll"; - } - ostDict1 = new File(epocroot+dictpath + name1 + "_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$ - ostDict2 = new File(epocroot+dictpath + name2 + "_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$ - autogenDict1 = new File(epocroot+autogenpath + name1 + "_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$ - autogenDict2 = new File(epocroot+autogenpath + name2 + "_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$ - dicts.put("_traces_slash_target_ext_commonsource", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$ - - //================================== - loc = "traces\\"; //$NON-NLS-1$ - if (!oldTC && !oldBuilder) { - loc = "traces_target11_exe\\"; //$NON-NLS-1$ - } - tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc +"MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc +"ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - if (!oldTC && !oldBuilder) { - loc = "traces_target12_exe\\"; //$NON-NLS-1$ - } - tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_target_type\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$ - fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_target_type\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$) - - headers.put("_traces_target_type", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$ - - - source1 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source2 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - source3 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$ - source4 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$ - sources.put("_traces_target_type", Arrays.asList(source1, source2, source3, source4)); - - ostDict1 = new File(epocroot+dictpath+"target11_exe_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$ - ostDict2 = new File(epocroot+dictpath+"target12_exe_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$ - autogenDict1 = new File(epocroot+autogenpath+"target11_exe_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$ - autogenDict2 = new File(epocroot+autogenpath+"target12_exe_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$ - dicts.put("_traces_target_type", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$ - - //================================== - - loc = "traces\\"; //$NON-NLS-1$ - if (!oldTC && !oldBuilder) { - loc = "traces\\target3_dll\\"; //$NON-NLS-1$ - } - tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - if (!oldTC && !oldBuilder) { - loc = "traces_target4_kext\\"; //$NON-NLS-1$ - } - tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$ - ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_mixed\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$ - fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_mixed\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$) - - headers.put("_traces_mixed", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$ - - source1 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$ - source2 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$ - source3 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$ - source4 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$ - sources.put("_traces_mixed", Arrays.asList(source1, source2, source3, source4)); - - String suffix = ""; //$NON-NLS-1$ - String name = ""; - if (!oldBuilder) { - suffix = "_dll"; //$NON-NLS-1$ - name = "target3"; - } else { - name = "mmp_traces_mixed1"; - } - - ostDict1 = new File(epocroot+dictpath+name + suffix + "_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$ - autogenDict1 = new File(epocroot+autogenpath+name + suffix + "_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$ - if (!oldBuilder) { - suffix = "_kext"; //$NON-NLS-1$ - name = "target4"; - } else { - name = "mmp_traces_mixed2"; - } - ostDict2 = new File(epocroot+dictpath+name + suffix + "_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$ - autogenDict2 = new File(epocroot+autogenpath+name + suffix + "_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$ - dicts.put("_traces_mixed", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$ - } - - - /** - * 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); - - List headersList; - List dictsList; - try{ - - //set up the directory from which the process will be called - if (path.compareTo("_traces")==0){ //$NON-NLS-1$ - headersList = headers.get("_traces"); //$NON-NLS-1$ - System.out.println("deleting file " + headersList.toString()); //$NON-NLS-1$ - for (File header : headersList) { - if (header.exists()) header.delete(); - } - - dictsList = dicts.get("_traces"); //$NON-NLS-1$ - System.out.println("deleting file " + dictsList.toString()); //$NON-NLS-1$ - for (File dict : dictsList) { - if (dict.exists()) dict.delete(); - } - compilerpath = new File (epocroot+projectdir+"mmp_traces\\group\\"); //$NON-NLS-1$ - } - else if (path.compareTo("_traces_mmpname")==0){ //$NON-NLS-1$ - headersList = headers.get("_traces_mmpname"); //$NON-NLS-1$ - System.out.println("deleting file " + headersList.toString()); //$NON-NLS-1$ - for (File header : headersList) { - if (header.exists()) { - header.delete(); - } - } - - dictsList = dicts.get("_traces_mmpname"); - System.out.println("deleting file " + dictsList.toString()); - for (File dict : dictsList) { - if (dict.exists()) { - dict.delete(); - } - } - compilerpath = new File (epocroot+projectdir+"mmp_traces_mmpname\\group\\"); - } - else if (path.compareTo("_traces_slash_target_ext")==0){ - headersList = headers.get("_traces_slash_target_ext"); - System.out.println("deleting file " + headersList.toString()); - for (File header : headersList) { - if (header.exists()) header.delete(); - } - - dictsList = dicts.get("_traces_slash_target_ext"); - System.out.println("deleting file " + dictsList.toString()); - for (File dict : dictsList) { - if (dict.exists()) dict.delete(); - } - compilerpath = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\group\\"); - } - else if (path.compareTo("_traces_slash_target_ext_commonsource")==0){ - headersList = headers.get("_traces_slash_target_ext_commonsource"); - System.out.println("deleting file " + headersList.toString()); - for (File header : headersList) { - if (header.exists()) header.delete(); - } - - dictsList = dicts.get("_traces_slash_target_ext_commonsource"); - System.out.println("deleting file " + dictsList.toString()); - for (File dict : dictsList) { - if (dict.exists()) dict.delete(); - } - compilerpath = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\group\\"); - } - else if (path.compareTo("_traces_target_type")==0){ - headersList = headers.get("_traces_target_type"); - System.out.println("deleting file " + headersList.toString()); - for (File header : headersList) { - if (header.exists()) header.delete(); - } - - dictsList = dicts.get("_traces_target_type"); - System.out.println("deleting file " + dictsList.toString()); - for (File dict : dictsList) { - if (dict.exists()) dict.delete(); - } - compilerpath = new File (epocroot+projectdir+"mmp_traces_target_type\\group\\"); - } - else if (path.compareTo("_traces_mixed")==0){ - headersList = headers.get("_traces_mixed"); - System.out.println("deleting file " + headersList.toString()); - for (File header : headersList) { - if (header.exists()) header.delete(); - } - - dictsList = dicts.get("_traces_mixed"); - System.out.println("deleting file " + dictsList.toString()); - for (File dict : dictsList) { - if (dict.exists()) dict.delete(); - } - compilerpath = new File (epocroot+projectdir+"mmp_traces_mixed\\group\\"); - } - 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; - 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){ - System.out.println("build process failed:"+str); - } - } - - 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; - } - - /** - * This function checks that the traces header files have been generated in the expected locations - * - * @param path String specifying where to look for the traces header file. - */ - public void CheckForTracesHeaders(String path) { - System.out.println ("CheckForTracesHeaders()"); - System.out.println("Old Builder : " + oldBuilder + "......Old TC : " + oldTC); - List headersList = headers.get(path); - List sourceList = sources.get(path); - System.out.println("checking files " + headersList.toString()); - boolean error = false; - if ((path.compareTo("_traces_slash_target_ext")==0 || path.compareTo("_traces_slash_target_ext_commonsource")==0) && oldBuilder && !oldTC){ - System.out.println("No need to check for header files as old sbs cannot call TC"); - } else { - try { - TraceCompilerEngineGlobals.start(); - } catch (TraceCompilerException e) { - fail(); - } - for (File header : headersList) { - if (!header.exists()) { - error = true; - System.out.println("Error: "+header+" does not exist/hasn't been generated by TraceCompiler"); - } else { - String licenceInSource = null; - String licenceInHeader = null; - File source = null; - // read the licence from the header file - if (header.getName().trim().equalsIgnoreCase("OstTraceDefinitions.h")) { - licenceInSource = TraceCompilerEngineGlobals.getDefaultLicence(true); - System.out.println("Reading default licence for OstTraceDefinitions.h" + licenceInSource); - } else { - if (header.getName().trim().equalsIgnoreCase("fixed_id.definitions")) { - licenceInSource = TraceCompilerEngineGlobals.getDefaultLicence(false); - System.out.println("Reading default licence for fixed_id.definitions" + licenceInSource); - } else { - licenceInHeader = readFirstMultiLineComment(header.getAbsolutePath()); - System.out.println("Reading licence from " + header.getAbsolutePath() + " == " + licenceInHeader); - source = sourceList.get(headersList.indexOf(header)); - - licenceInSource = readFirstMultiLineComment(source.getAbsolutePath()); - System.out.println("Reading licence from " + source.getAbsolutePath() + " == " + licenceInSource); - if (licenceInSource == null) { - //licence should be EPL - licenceInSource = TraceCompilerEngineGlobals.getDefaultLicence(true); - System.out.println("Reading default licence for " + header.getAbsolutePath() + " == " + licenceInSource); - } - } - } - if (licenceInHeader != licenceInHeader) { - System.out.println("Error: licence in header " + header + " is not the same in source." + source); - fail(); - } - } - } - - if(!error){ - System.out.println("All Traces Header files have been generated as expected"); - } - else { - fail(); - } - } - } - - - /** - * @param path - */ - private String readFirstMultiLineComment(String path) { - StringBuffer sb = new StringBuffer(); - try { - FileReader reader = new FileReader(new File(path)); - BufferedReader br = new BufferedReader(reader); - String line; - boolean inComment = false; - - while ((line = br.readLine()) != null) { - if (line.trim().startsWith("/*")) { - inComment = true; - } - if (inComment) { - sb.append(line + System.getProperty("line.separator")); - } - if (line.trim().endsWith("*/") && inComment) { - break; - } - } - br.close(); - } catch (Exception e) { - System.out.println("Failed to open/read file " + path + " " + e.getMessage()); - fail(); - } - String licence = null; - if (sb.length()> 0) { - licence = sb.toString(); - if (!licence.contains("Copyright")) { - licence = null; - } - } - - return licence; - } - - /** - * This function checks that the dictionary files have been generated in the expected locations with the right name - * - * @param path. - */ - public void CheckForDictionary(String path) { - System.out.println ("CheckForDictionaries()"); - - List dictsList = dicts.get(path); - System.out.println("checking files " + dictsList.toString()); - boolean error = false; - - if ((path.compareTo("_traces_slash_target_ext")==0 || path.compareTo("_traces_slash_target_ext_commonsource")==0) && oldBuilder && !oldTC){ - System.out.println("No need to check for dictionary as old sbs cannot call TC"); - } else { - for (File dict : dictsList) { - if(!dict.exists()) { - error = true; - System.out.println("Error: "+dict+" does not exist/hasn't been generated by TraceCompiler"); - } - } - - if (!error) { - System.out.println("Dictionary files have been generated as expected"); - } - else { - fail(); - } - } - } - - - /****************************************************ACTUAL TESTS************************************************************/ - @Test - public void MultipleMmpsTest1 (){ - System.out.println ("*********************traces****************************"); - createListHeadersDicts("sbs"); - //Call Raptor - InvokeCompiler("_traces", "sbs"); - //Check for header files - CheckForTracesHeaders("_traces"); - //Check dictionary - CheckForDictionary("_traces"); - - - } - - - @Test - public void MultipleMmpsTest2 (){ - System.out.println ("****************traces_mmpname**********************"); - createListHeadersDicts("sbs"); - //Call Raptor - InvokeCompiler("_traces_mmpname", "sbs"); - //Check for header files - CheckForTracesHeaders("_traces_mmpname"); - //Check dictionary - CheckForDictionary("_traces_mmpname"); - - - } - - - @Test - public void MultipleMmpsTest3 (){ - System.out.println ("**********traces_slash_target_ext****************"); - createListHeadersDicts("sbs"); - //Call Raptor - InvokeCompiler("_traces_slash_target_ext", "sbs"); - //Check for header files - CheckForTracesHeaders("_traces_slash_target_ext"); - //Check dictionary - CheckForDictionary("_traces_slash_target_ext"); - - - } - - @Test - public void MultipleMmpsTest4 (){ - System.out.println ("**********traces_slash_target_ext_commonsource****************"); - createListHeadersDicts("sbs"); - //Call Raptor - InvokeCompiler("_traces_slash_target_ext_commonsource", "sbs"); - //Check for header files - CheckForTracesHeaders("_traces_slash_target_ext_commonsource"); - //Check dictionary - CheckForDictionary("_traces_slash_target_ext_commonsource"); - - - - } - - @Test - public void MultipleMmpsTest5 (){ - System.out.println ("**********traces_target_type****************"); - createListHeadersDicts("sbs"); - //Call Raptor - InvokeCompiler("_traces_target_type", "sbs"); - //Check for header files - CheckForTracesHeaders("_traces_target_type"); - //Check dictionary - CheckForDictionary("_traces_target_type"); - - - } - - @Test - public void MultipleMmpsTest6 (){ - System.out.println ("**********traces_mixed****************"); - createListHeadersDicts("sbs"); - //Call Raptor - InvokeCompiler("_traces_mixed", "sbs"); - //Check for header files - CheckForTracesHeaders("_traces_mixed"); - //Check dictionary - CheckForDictionary("_traces_mixed"); - } -}