tracesrv/tracecompiler/test/src/MultipleMmpTest.java
author hgs
Fri, 08 Oct 2010 14:56:39 +0300
changeset 56 aa2539c91954
parent 41 tracefw/tracecompiler/test/src/MultipleMmpTest.java@838cdffd57ce
child 62 1c2bb2fc7c87
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
import static org.junit.Assert.fail;
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
import java.io.BufferedReader;
hgs
parents:
diff changeset
    21
import java.io.File;
hgs
parents:
diff changeset
    22
import java.io.FileReader;
hgs
parents:
diff changeset
    23
import java.io.IOException;
hgs
parents:
diff changeset
    24
import java.io.InputStream;
hgs
parents:
diff changeset
    25
import java.util.Arrays;
hgs
parents:
diff changeset
    26
import java.util.HashMap;
hgs
parents:
diff changeset
    27
import java.util.List;
hgs
parents:
diff changeset
    28
import java.util.regex.Matcher;
hgs
parents:
diff changeset
    29
import java.util.regex.Pattern;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
import org.junit.BeforeClass;
hgs
parents:
diff changeset
    32
import org.junit.Test;
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
import com.nokia.tracecompiler.engine.TraceCompilerEngineGlobals;
hgs
parents:
diff changeset
    35
import com.nokia.tracecompiler.model.TraceCompilerException;
hgs
parents:
diff changeset
    36
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
public class MultipleMmpTest {
hgs
parents:
diff changeset
    39
	
hgs
parents:
diff changeset
    40
	public static void main(String args[]) {		
hgs
parents:
diff changeset
    41
	      	org.junit.runner.JUnitCore.main(MultipleMmpTest.class.getName());
hgs
parents:
diff changeset
    42
	    }
hgs
parents:
diff changeset
    43
	
hgs
parents:
diff changeset
    44
	/****************************************************UTILITY FUNCTIONS FOR TESTS************************************************************/
hgs
parents:
diff changeset
    45
	
hgs
parents:
diff changeset
    46
	private static String epocroot = null; 
hgs
parents:
diff changeset
    47
	private static String projectdir = "testdata\\MultipleMmpTestCases\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
    48
	private static String dictpath= "epoc32\\ost_dictionaries\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
    49
	private static String autogenpath= "epoc32\\include\\platform\\symbiantraces\\autogen\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
    50
	private static Pattern versionPattern = Pattern.compile("^.*(\\d+\\.\\d+\\.\\d+).*$"); //$NON-NLS-1$
hgs
parents:
diff changeset
    51
	private static Pattern oldversionPat = Pattern.compile("^(1\\..*)|(2\\.1.*)"); //$NON-NLS-1$
hgs
parents:
diff changeset
    52
	//old TC version should be up to 2.12.5 as new functionality was submitted to 2.12.6 (we hope)
hgs
parents:
diff changeset
    53
	private static Pattern sbsoldversionPat = Pattern.compile("^(1\\..*)|(2\\.[01]\\..*)|(2\\.1[0-2]\\.[0-3].*)"); //$NON-NLS-1$
hgs
parents:
diff changeset
    54
	private static String TCversion = ""; //$NON-NLS-1$
hgs
parents:
diff changeset
    55
	private static String SBSversion = ""; //$NON-NLS-1$
hgs
parents:
diff changeset
    56
	private static File compilerpath;
hgs
parents:
diff changeset
    57
	private static boolean oldTC = false;
hgs
parents:
diff changeset
    58
	private static boolean oldBuilder = false; 
hgs
parents:
diff changeset
    59
	private static HashMap<String, List<File>> headers = new HashMap<String, List<File>>();
hgs
parents:
diff changeset
    60
	private static HashMap<String, List<File>> dicts = new HashMap<String, List<File>>();
hgs
parents:
diff changeset
    61
	private static HashMap<String, List<File>> sources = new HashMap<String, List<File>>();
hgs
parents:
diff changeset
    62
	private static ProcessBuilder sbs_build = new ProcessBuilder("sbs.bat","-k","-c","winscw_udeb.tracecompiler");
hgs
parents:
diff changeset
    63
	private static ProcessBuilder sbs_reallyclean = new ProcessBuilder("sbs.bat","-k","-c","winscw_udeb.tracecompiler", "reallyclean");
hgs
parents:
diff changeset
    64
	
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
	@BeforeClass
hgs
parents:
diff changeset
    67
	static public void setEnvVariables() {
hgs
parents:
diff changeset
    68
		epocroot = System.getenv("EPOCROOT"); //$NON-NLS-1$
hgs
parents:
diff changeset
    69
		if(epocroot == null || (epocroot.length()==0)){
hgs
parents:
diff changeset
    70
			fail();
hgs
parents:
diff changeset
    71
		}
hgs
parents:
diff changeset
    72
		
hgs
parents:
diff changeset
    73
		// need to check that the path ends in a backslash
hgs
parents:
diff changeset
    74
		if(!epocroot.endsWith("\\")){ 
hgs
parents:
diff changeset
    75
			epocroot += "\\"; 
hgs
parents:
diff changeset
    76
		}
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
		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$
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
		ProcessBuilder tc = new ProcessBuilder("java", "-classpath", compilerpath.getPath(), //$NON-NLS-1$//$NON-NLS-2$
hgs
parents:
diff changeset
    81
				"com.nokia.tracecompiler.TraceCompiler", "-v"); //$NON-NLS-1$//$NON-NLS-2$
hgs
parents:
diff changeset
    82
		System.out.println("compilerPath= " + compilerpath); //$NON-NLS-1$
hgs
parents:
diff changeset
    83
		tc.directory(compilerpath);
hgs
parents:
diff changeset
    84
		tc.redirectErrorStream(true);
hgs
parents:
diff changeset
    85
		try {
hgs
parents:
diff changeset
    86
		Process p = tc.start();
hgs
parents:
diff changeset
    87
		p.waitFor();	
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
		
hgs
parents:
diff changeset
    90
		String str = readProcessOutput(p);
hgs
parents:
diff changeset
    91
		System.out.println("TC version = " + str); //$NON-NLS-1$
hgs
parents:
diff changeset
    92
		Matcher m = versionPattern.matcher(str.trim());
hgs
parents:
diff changeset
    93
		if (m.matches()) {
hgs
parents:
diff changeset
    94
			TCversion = m.group(1);
hgs
parents:
diff changeset
    95
			System.out.println("TC Version = " + TCversion); //$NON-NLS-1$
hgs
parents:
diff changeset
    96
		}
hgs
parents:
diff changeset
    97
		
hgs
parents:
diff changeset
    98
		m = oldversionPat.matcher(TCversion);
hgs
parents:
diff changeset
    99
		if (m.matches()){
hgs
parents:
diff changeset
   100
			oldTC=true;
hgs
parents:
diff changeset
   101
		}
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
		System.out.println("TC version = " + TCversion); //$NON-NLS-1$ 
hgs
parents:
diff changeset
   104
		System.out.println("OLD TC version = " + oldTC); //$NON-NLS-1$
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
		ProcessBuilder sbs = new ProcessBuilder("sbs.bat","-v"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   107
		sbs.directory(compilerpath);
hgs
parents:
diff changeset
   108
		sbs.redirectErrorStream(true);
hgs
parents:
diff changeset
   109
			
hgs
parents:
diff changeset
   110
		//start the compiler
hgs
parents:
diff changeset
   111
		p = sbs.start();
hgs
parents:
diff changeset
   112
		p.waitFor();
hgs
parents:
diff changeset
   113
			
hgs
parents:
diff changeset
   114
		InputStream inp = p.getInputStream();
hgs
parents:
diff changeset
   115
			
hgs
parents:
diff changeset
   116
	        str = ""; //$NON-NLS-1$
hgs
parents:
diff changeset
   117
	        int c;
hgs
parents:
diff changeset
   118
	        //read the output from the compiler into the input stream
hgs
parents:
diff changeset
   119
	        while ((c = inp.read()) != -1) {
hgs
parents:
diff changeset
   120
	           	 str= str +((char)c);
hgs
parents:
diff changeset
   121
	        }
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
		System.out.println("SBS version = " + str); //$NON-NLS-1$
hgs
parents:
diff changeset
   124
		m = versionPattern.matcher(str.trim());
hgs
parents:
diff changeset
   125
		if (m.matches()) {
hgs
parents:
diff changeset
   126
			SBSversion = m.group(1);
hgs
parents:
diff changeset
   127
		}
hgs
parents:
diff changeset
   128
		
hgs
parents:
diff changeset
   129
		m = sbsoldversionPat.matcher(SBSversion);
hgs
parents:
diff changeset
   130
		if (m.matches()){
hgs
parents:
diff changeset
   131
			oldBuilder=true;
hgs
parents:
diff changeset
   132
		}
hgs
parents:
diff changeset
   133
		
hgs
parents:
diff changeset
   134
		} catch (Exception e) {// Catch exception if any
hgs
parents:
diff changeset
   135
			System.err.println(e.getMessage());
hgs
parents:
diff changeset
   136
		}
hgs
parents:
diff changeset
   137
	}
hgs
parents:
diff changeset
   138
	
hgs
parents:
diff changeset
   139
	
hgs
parents:
diff changeset
   140
	public void createListHeadersDicts(String builder)
hgs
parents:
diff changeset
   141
	{
hgs
parents:
diff changeset
   142
		//The whole logic of what is expected is built here whether we build with sbs 
hgs
parents:
diff changeset
   143
		//new TC or old, The structure is re-built for each case.
hgs
parents:
diff changeset
   144
		
hgs
parents:
diff changeset
   145
		
hgs
parents:
diff changeset
   146
		Matcher m = sbsoldversionPat.matcher(SBSversion);
hgs
parents:
diff changeset
   147
		if (m.matches()){
hgs
parents:
diff changeset
   148
			oldBuilder=true;
hgs
parents:
diff changeset
   149
		} else {
hgs
parents:
diff changeset
   150
			oldBuilder=false;
hgs
parents:
diff changeset
   151
		}
hgs
parents:
diff changeset
   152
		
hgs
parents:
diff changeset
   153
		
hgs
parents:
diff changeset
   154
		System.out.println("OLD Builder :" + builder + ": = " + oldBuilder); //$NON-NLS-1$
hgs
parents:
diff changeset
   155
		
hgs
parents:
diff changeset
   156
		File tracesHeader1;
hgs
parents:
diff changeset
   157
		File tracesHeader2;
hgs
parents:
diff changeset
   158
		File tracesHeader3;
hgs
parents:
diff changeset
   159
		File tracesHeader4;
hgs
parents:
diff changeset
   160
		File source1;
hgs
parents:
diff changeset
   161
		File source2;
hgs
parents:
diff changeset
   162
		File source3;
hgs
parents:
diff changeset
   163
		File source4;
hgs
parents:
diff changeset
   164
		File ostTraceDefinitions;
hgs
parents:
diff changeset
   165
		File fixedidDefinitions;
hgs
parents:
diff changeset
   166
		File ostDict1;
hgs
parents:
diff changeset
   167
		File ostDict2;
hgs
parents:
diff changeset
   168
		File autogenDict1;
hgs
parents:
diff changeset
   169
		File autogenDict2;
hgs
parents:
diff changeset
   170
		String loc = "traces\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   171
		
hgs
parents:
diff changeset
   172
		source1 = new File (epocroot+projectdir+"mmp_traces\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   173
		source2 = new File (epocroot+projectdir+"mmp_traces\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   174
		source3 = new File (epocroot+projectdir+"mmp_traces\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   175
		source4 = new File (epocroot+projectdir+"mmp_traces\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   176
		sources.put("_traces", Arrays.asList(source1, source2, source3, source4));
hgs
parents:
diff changeset
   177
		
hgs
parents:
diff changeset
   178
		tracesHeader1 = new File (epocroot+projectdir+"mmp_traces\\traces\\MultipleMmpApp1Traces.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   179
		tracesHeader2 = new File (epocroot+projectdir+"mmp_traces\\traces\\ExtraCppFile1Traces.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   180
		tracesHeader3 = new File (epocroot+projectdir+"mmp_traces\\traces\\MultipleMmpApp2Traces.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   181
		tracesHeader4 = new File (epocroot+projectdir+"mmp_traces\\traces\\ExtraCppFile2Traces.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   182
		
hgs
parents:
diff changeset
   183
		ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces\\traces\\OstTraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   184
		fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces\\traces\\fixed_id.definitions"); //$NON-NLS-1$)
hgs
parents:
diff changeset
   185
		headers.put("_traces", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$
hgs
parents:
diff changeset
   186
		
hgs
parents:
diff changeset
   187
		ostDict1     = new File(epocroot+dictpath+"mmp_traces1_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   188
		ostDict2     = new File(epocroot+dictpath+"mmp_traces2_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   189
		autogenDict1 = new File(epocroot+autogenpath+"mmp_traces1_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   190
		autogenDict2 = new File(epocroot+autogenpath+"mmp_traces2_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   191
		dicts.put("_traces", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$
hgs
parents:
diff changeset
   192
		
hgs
parents:
diff changeset
   193
		//=============================
hgs
parents:
diff changeset
   194
		
hgs
parents:
diff changeset
   195
		if (!oldBuilder && !oldTC) {
hgs
parents:
diff changeset
   196
			loc = "traces_mmp_traces_mmpname1\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   197
		}
hgs
parents:
diff changeset
   198
		tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_mmpname\\"+ loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   199
		tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   200
		if (!oldBuilder && !oldTC) {
hgs
parents:
diff changeset
   201
			loc = "traces_mmp_traces_mmpname2\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   202
		}
hgs
parents:
diff changeset
   203
		tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   204
		tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   205
		ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   206
		fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_mmpname\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$)
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
		headers.put("_traces_mmpname", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$
hgs
parents:
diff changeset
   209
		
hgs
parents:
diff changeset
   210
		source1 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   211
		source2 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   212
		source3 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   213
		source4 = new File (epocroot+projectdir+"mmp_traces_mmpname\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   214
		sources.put("_traces_mmpname", Arrays.asList(source1, source2, source3, source4));
hgs
parents:
diff changeset
   215
		
hgs
parents:
diff changeset
   216
		ostDict1     = new File(epocroot+dictpath+"mmp_traces_mmpname1_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   217
		ostDict2     = new File(epocroot+dictpath+"mmp_traces_mmpname2_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   218
		autogenDict1 = new File(epocroot+autogenpath+"mmp_traces_mmpname1_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   219
		autogenDict2 = new File(epocroot+autogenpath+"mmp_traces_mmpname2_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   220
		dicts.put("_traces_mmpname", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$
hgs
parents:
diff changeset
   221
hgs
parents:
diff changeset
   222
	    //=============================
hgs
parents:
diff changeset
   223
	    
hgs
parents:
diff changeset
   224
	    loc = "traces\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   225
		if (!oldTC) {
hgs
parents:
diff changeset
   226
			loc = "traces\\target7_dll\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   227
		}
hgs
parents:
diff changeset
   228
		tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   229
		tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   230
		if (!oldTC) {
hgs
parents:
diff changeset
   231
			loc = "traces\\target8_dll\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   232
		}
hgs
parents:
diff changeset
   233
		tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   234
		tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   235
		ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   236
		fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$)
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
		headers.put("_traces_slash_target_ext", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$
hgs
parents:
diff changeset
   239
		
hgs
parents:
diff changeset
   240
		source1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   241
		source2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   242
		source3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   243
		source4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   244
		sources.put("_traces_slash_target_ext", Arrays.asList(source1, source2, source3, source4));
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
		
hgs
parents:
diff changeset
   247
		String name1 = "";
hgs
parents:
diff changeset
   248
		String name2 = "";
hgs
parents:
diff changeset
   249
		if (oldTC) {
hgs
parents:
diff changeset
   250
			name1 = "mmp_traces_slash_target_ext1";
hgs
parents:
diff changeset
   251
			name2 = "mmp_traces_slash_target_ext2";
hgs
parents:
diff changeset
   252
		} else {
hgs
parents:
diff changeset
   253
			name1 = "target7_dll";
hgs
parents:
diff changeset
   254
			name2 = "target8_dll";
hgs
parents:
diff changeset
   255
		}
hgs
parents:
diff changeset
   256
		
hgs
parents:
diff changeset
   257
		ostDict1     = new File(epocroot+dictpath + name1 + "_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   258
		ostDict2     = new File(epocroot+dictpath + name2 + "_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   259
		autogenDict1 = new File(epocroot+autogenpath + name1 + "_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   260
		autogenDict2 = new File(epocroot+autogenpath + name2 + "_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   261
		dicts.put("_traces_slash_target_ext", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$
hgs
parents:
diff changeset
   262
		
hgs
parents:
diff changeset
   263
	    //================================
hgs
parents:
diff changeset
   264
	    loc = "traces\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   265
		if (!oldTC) {
hgs
parents:
diff changeset
   266
			loc = "traces\\target9_dll\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   267
		}
hgs
parents:
diff changeset
   268
		tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   269
		tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   270
		if (!oldTC) {
hgs
parents:
diff changeset
   271
			loc = "traces\\target10_dll\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   272
		}
hgs
parents:
diff changeset
   273
		tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   274
		tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   275
		ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   276
		fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$)
hgs
parents:
diff changeset
   277
hgs
parents:
diff changeset
   278
		headers.put("_traces_slash_target_ext_commonsource", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$
hgs
parents:
diff changeset
   279
		
hgs
parents:
diff changeset
   280
		source1 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   281
		source2 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   282
		source3 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   283
		source4 = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   284
		sources.put("_traces_slash_target_ext_commonsource", Arrays.asList(source1, source2, source3, source4));
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
		
hgs
parents:
diff changeset
   287
		if (oldTC) {
hgs
parents:
diff changeset
   288
			name1 = "mmp_traces_slash_target_ext1_cs";
hgs
parents:
diff changeset
   289
			name2 = "mmp_traces_slash_target_ext2_cs";
hgs
parents:
diff changeset
   290
		} else {
hgs
parents:
diff changeset
   291
			name1 = "target9_dll";
hgs
parents:
diff changeset
   292
			name2 = "target10_dll";
hgs
parents:
diff changeset
   293
		}
hgs
parents:
diff changeset
   294
		ostDict1     = new File(epocroot+dictpath + name1 + "_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   295
		ostDict2     = new File(epocroot+dictpath + name2 + "_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   296
		autogenDict1 = new File(epocroot+autogenpath + name1 + "_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   297
		autogenDict2 = new File(epocroot+autogenpath + name2 + "_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   298
		dicts.put("_traces_slash_target_ext_commonsource", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$
hgs
parents:
diff changeset
   299
		
hgs
parents:
diff changeset
   300
		//==================================
hgs
parents:
diff changeset
   301
		loc = "traces\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   302
		if (!oldTC && !oldBuilder) {
hgs
parents:
diff changeset
   303
			loc = "traces_target11_exe\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   304
		}
hgs
parents:
diff changeset
   305
		tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc +"MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   306
		tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc +"ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   307
		if (!oldTC && !oldBuilder) {
hgs
parents:
diff changeset
   308
			loc = "traces_target12_exe\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   309
		}
hgs
parents:
diff changeset
   310
		tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   311
		tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_target_type\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   312
		ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_target_type\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   313
		fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_target_type\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$)
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
		headers.put("_traces_target_type", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$
hgs
parents:
diff changeset
   316
		
hgs
parents:
diff changeset
   317
		
hgs
parents:
diff changeset
   318
		source1 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   319
		source2 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   320
		source3 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   321
		source4 = new File (epocroot+projectdir+"mmp_traces_target_type\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   322
		sources.put("_traces_target_type", Arrays.asList(source1, source2, source3, source4));
hgs
parents:
diff changeset
   323
hgs
parents:
diff changeset
   324
		ostDict1     = new File(epocroot+dictpath+"target11_exe_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   325
		ostDict2     = new File(epocroot+dictpath+"target12_exe_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   326
		autogenDict1 = new File(epocroot+autogenpath+"target11_exe_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   327
		autogenDict2 = new File(epocroot+autogenpath+"target12_exe_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   328
		dicts.put("_traces_target_type", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$	
hgs
parents:
diff changeset
   329
		
hgs
parents:
diff changeset
   330
		//==================================
hgs
parents:
diff changeset
   331
		
hgs
parents:
diff changeset
   332
		loc = "traces\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   333
		if (!oldTC && !oldBuilder) {
hgs
parents:
diff changeset
   334
			loc = "traces\\target3_dll\\"; //$NON-NLS-1$
hgs
parents:
diff changeset
   335
		}
hgs
parents:
diff changeset
   336
		tracesHeader1 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "MultipleMmpApp1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   337
		tracesHeader2 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "ExtraCppFile1Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   338
		if (!oldTC && !oldBuilder) {
hgs
parents:
diff changeset
   339
			loc = "traces_target4_kext\\"; //$NON-NLS-1$ 
hgs
parents:
diff changeset
   340
		}
hgs
parents:
diff changeset
   341
		tracesHeader3 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "MultipleMmpApp2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$
hgs
parents:
diff changeset
   342
		tracesHeader4 = new File (epocroot+projectdir+"mmp_traces_mixed\\" + loc + "ExtraCppFile2Traces.h"); //$NON-NLS-1$ //$NON-NLS-2$		
hgs
parents:
diff changeset
   343
		ostTraceDefinitions = new File(epocroot+projectdir+"mmp_traces_mixed\\" + loc + "OstTraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   344
		fixedidDefinitions = new File(epocroot+projectdir+"mmp_traces_mixed\\" + loc + "fixed_id.definitions"); //$NON-NLS-1$)
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
		headers.put("_traces_mixed", Arrays.asList(tracesHeader1,tracesHeader2,tracesHeader3,tracesHeader4,ostTraceDefinitions,fixedidDefinitions)); //$NON-NLS-1$		
hgs
parents:
diff changeset
   347
		
hgs
parents:
diff changeset
   348
		source1 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\MultipleMmpApp1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   349
		source2 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\ExtraCppFile1.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   350
		source3 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\MultipleMmpApp2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   351
		source4 = new File (epocroot+projectdir+"mmp_traces_mixed\\src\\ExtraCppFile2.cpp"); //$NON-NLS-1$
hgs
parents:
diff changeset
   352
		sources.put("_traces_mixed", Arrays.asList(source1, source2, source3, source4));
hgs
parents:
diff changeset
   353
hgs
parents:
diff changeset
   354
		String suffix = ""; //$NON-NLS-1$
hgs
parents:
diff changeset
   355
		String name = "";
hgs
parents:
diff changeset
   356
		if (!oldBuilder) {
hgs
parents:
diff changeset
   357
			suffix = "_dll"; //$NON-NLS-1$
hgs
parents:
diff changeset
   358
			name = "target3";
hgs
parents:
diff changeset
   359
		} else {
hgs
parents:
diff changeset
   360
		        name = "mmp_traces_mixed1";
hgs
parents:
diff changeset
   361
		}
hgs
parents:
diff changeset
   362
hgs
parents:
diff changeset
   363
		ostDict1     = new File(epocroot+dictpath+name + suffix + "_0xe8576d96_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   364
		autogenDict1 = new File(epocroot+autogenpath+name + suffix + "_0xe8576d96_TraceDefinitions.h"); //$NON-NLS-1$
hgs
parents:
diff changeset
   365
		if (!oldBuilder) {
hgs
parents:
diff changeset
   366
			suffix = "_kext"; //$NON-NLS-1$
hgs
parents:
diff changeset
   367
			name = "target4";
hgs
parents:
diff changeset
   368
		} else {
hgs
parents:
diff changeset
   369
			name = "mmp_traces_mixed2";
hgs
parents:
diff changeset
   370
		}
hgs
parents:
diff changeset
   371
		ostDict2     = new File(epocroot+dictpath+name + suffix + "_0xe8576d95_Dictionary.xml"); //$NON-NLS-1$
hgs
parents:
diff changeset
   372
		autogenDict2 = new File(epocroot+autogenpath+name + suffix + "_0xe8576d95_TraceDefinitions.h"); //$NON-NLS-1$	
hgs
parents:
diff changeset
   373
		dicts.put("_traces_mixed", Arrays.asList(ostDict1, ostDict2, autogenDict1, autogenDict2)); //$NON-NLS-1$	
hgs
parents:
diff changeset
   374
	}
hgs
parents:
diff changeset
   375
	
hgs
parents:
diff changeset
   376
	
hgs
parents:
diff changeset
   377
	/**
hgs
parents:
diff changeset
   378
	 * This function invokes raptor on the desired test c++ project
hgs
parents:
diff changeset
   379
	 * 
hgs
parents:
diff changeset
   380
	 * @param path String specifying the path the compiler needs
hgs
parents:
diff changeset
   381
	 * 				  to run from
hgs
parents:
diff changeset
   382
	 */
hgs
parents:
diff changeset
   383
	public void InvokeCompiler(String path, String builder) {
hgs
parents:
diff changeset
   384
		System.out.println ("InvokeCompiler() for : " + builder);
hgs
parents:
diff changeset
   385
		
hgs
parents:
diff changeset
   386
		List<File> headersList;
hgs
parents:
diff changeset
   387
		List<File> dictsList;
hgs
parents:
diff changeset
   388
		try{
hgs
parents:
diff changeset
   389
			
hgs
parents:
diff changeset
   390
			//set up the directory from which the process will be called
hgs
parents:
diff changeset
   391
			if (path.compareTo("_traces")==0){ //$NON-NLS-1$
hgs
parents:
diff changeset
   392
				headersList = headers.get("_traces"); //$NON-NLS-1$
hgs
parents:
diff changeset
   393
				System.out.println("deleting file " + headersList.toString()); //$NON-NLS-1$
hgs
parents:
diff changeset
   394
				for (File header : headersList) {
hgs
parents:
diff changeset
   395
					if (header.exists()) header.delete();
hgs
parents:
diff changeset
   396
				}
hgs
parents:
diff changeset
   397
				
hgs
parents:
diff changeset
   398
				dictsList = dicts.get("_traces"); //$NON-NLS-1$
hgs
parents:
diff changeset
   399
				System.out.println("deleting file " + dictsList.toString()); //$NON-NLS-1$
hgs
parents:
diff changeset
   400
				for (File dict : dictsList) {
hgs
parents:
diff changeset
   401
					if (dict.exists()) dict.delete();
hgs
parents:
diff changeset
   402
				}
hgs
parents:
diff changeset
   403
				compilerpath = new File (epocroot+projectdir+"mmp_traces\\group\\"); //$NON-NLS-1$
hgs
parents:
diff changeset
   404
			}
hgs
parents:
diff changeset
   405
			else if (path.compareTo("_traces_mmpname")==0){ //$NON-NLS-1$
hgs
parents:
diff changeset
   406
				headersList = headers.get("_traces_mmpname"); //$NON-NLS-1$
hgs
parents:
diff changeset
   407
				System.out.println("deleting file " + headersList.toString()); //$NON-NLS-1$
hgs
parents:
diff changeset
   408
				for (File header : headersList) {
hgs
parents:
diff changeset
   409
					if (header.exists()) {
hgs
parents:
diff changeset
   410
						header.delete();
hgs
parents:
diff changeset
   411
					}
hgs
parents:
diff changeset
   412
				}
hgs
parents:
diff changeset
   413
				
hgs
parents:
diff changeset
   414
				dictsList = dicts.get("_traces_mmpname");
hgs
parents:
diff changeset
   415
				System.out.println("deleting file " + dictsList.toString());
hgs
parents:
diff changeset
   416
				for (File dict : dictsList) {
hgs
parents:
diff changeset
   417
					if (dict.exists()) {
hgs
parents:
diff changeset
   418
						dict.delete();
hgs
parents:
diff changeset
   419
					}
hgs
parents:
diff changeset
   420
				}
hgs
parents:
diff changeset
   421
				compilerpath = new File (epocroot+projectdir+"mmp_traces_mmpname\\group\\");
hgs
parents:
diff changeset
   422
			}
hgs
parents:
diff changeset
   423
			else if (path.compareTo("_traces_slash_target_ext")==0){
hgs
parents:
diff changeset
   424
				headersList = headers.get("_traces_slash_target_ext");
hgs
parents:
diff changeset
   425
				System.out.println("deleting file " + headersList.toString());
hgs
parents:
diff changeset
   426
				for (File header : headersList) {
hgs
parents:
diff changeset
   427
					if (header.exists()) header.delete();
hgs
parents:
diff changeset
   428
				}
hgs
parents:
diff changeset
   429
				
hgs
parents:
diff changeset
   430
				dictsList = dicts.get("_traces_slash_target_ext");
hgs
parents:
diff changeset
   431
				System.out.println("deleting file " + dictsList.toString());
hgs
parents:
diff changeset
   432
				for (File dict : dictsList) {
hgs
parents:
diff changeset
   433
					if (dict.exists()) dict.delete();
hgs
parents:
diff changeset
   434
				}
hgs
parents:
diff changeset
   435
				compilerpath = new File (epocroot+projectdir+"mmp_traces_slash_target_ext\\group\\");
hgs
parents:
diff changeset
   436
			}
hgs
parents:
diff changeset
   437
			else if (path.compareTo("_traces_slash_target_ext_commonsource")==0){
hgs
parents:
diff changeset
   438
				headersList = headers.get("_traces_slash_target_ext_commonsource");
hgs
parents:
diff changeset
   439
				System.out.println("deleting file " + headersList.toString());
hgs
parents:
diff changeset
   440
				for (File header : headersList) {
hgs
parents:
diff changeset
   441
					if (header.exists()) header.delete();
hgs
parents:
diff changeset
   442
				}
hgs
parents:
diff changeset
   443
				
hgs
parents:
diff changeset
   444
				dictsList = dicts.get("_traces_slash_target_ext_commonsource");
hgs
parents:
diff changeset
   445
				System.out.println("deleting file " + dictsList.toString());
hgs
parents:
diff changeset
   446
				for (File dict : dictsList) {
hgs
parents:
diff changeset
   447
					if (dict.exists()) dict.delete();
hgs
parents:
diff changeset
   448
				}
hgs
parents:
diff changeset
   449
				compilerpath = new File (epocroot+projectdir+"mmp_traces_slash_target_ext_commonsource\\group\\");
hgs
parents:
diff changeset
   450
			}
hgs
parents:
diff changeset
   451
			else if (path.compareTo("_traces_target_type")==0){
hgs
parents:
diff changeset
   452
				headersList = headers.get("_traces_target_type");
hgs
parents:
diff changeset
   453
				System.out.println("deleting file " + headersList.toString());
hgs
parents:
diff changeset
   454
				for (File header : headersList) {
hgs
parents:
diff changeset
   455
					if (header.exists()) header.delete();
hgs
parents:
diff changeset
   456
				}
hgs
parents:
diff changeset
   457
				
hgs
parents:
diff changeset
   458
				dictsList = dicts.get("_traces_target_type");
hgs
parents:
diff changeset
   459
				System.out.println("deleting file " + dictsList.toString());
hgs
parents:
diff changeset
   460
				for (File dict : dictsList) {
hgs
parents:
diff changeset
   461
					if (dict.exists()) dict.delete();
hgs
parents:
diff changeset
   462
				}
hgs
parents:
diff changeset
   463
				compilerpath = new File (epocroot+projectdir+"mmp_traces_target_type\\group\\");
hgs
parents:
diff changeset
   464
			}
hgs
parents:
diff changeset
   465
			else if (path.compareTo("_traces_mixed")==0){
hgs
parents:
diff changeset
   466
				headersList = headers.get("_traces_mixed");
hgs
parents:
diff changeset
   467
				System.out.println("deleting file " + headersList.toString());
hgs
parents:
diff changeset
   468
				for (File header : headersList) {
hgs
parents:
diff changeset
   469
					if (header.exists()) header.delete();
hgs
parents:
diff changeset
   470
				}
hgs
parents:
diff changeset
   471
				
hgs
parents:
diff changeset
   472
				dictsList = dicts.get("_traces_mixed");
hgs
parents:
diff changeset
   473
				System.out.println("deleting file " + dictsList.toString());
hgs
parents:
diff changeset
   474
				for (File dict : dictsList) {
hgs
parents:
diff changeset
   475
					if (dict.exists()) dict.delete();
hgs
parents:
diff changeset
   476
				}
hgs
parents:
diff changeset
   477
				compilerpath = new File (epocroot+projectdir+"mmp_traces_mixed\\group\\");
hgs
parents:
diff changeset
   478
			}
hgs
parents:
diff changeset
   479
			else{
hgs
parents:
diff changeset
   480
			
hgs
parents:
diff changeset
   481
				System.out.println("Error: Unrecognised test case.");
hgs
parents:
diff changeset
   482
				fail();
hgs
parents:
diff changeset
   483
			}
hgs
parents:
diff changeset
   484
			
hgs
parents:
diff changeset
   485
			//set up the process builder object
hgs
parents:
diff changeset
   486
			sbs_build.directory(compilerpath);
hgs
parents:
diff changeset
   487
			sbs_reallyclean.directory(compilerpath);
hgs
parents:
diff changeset
   488
			sbs_build.redirectErrorStream(true);
hgs
parents:
diff changeset
   489
			
hgs
parents:
diff changeset
   490
			
hgs
parents:
diff changeset
   491
			
hgs
parents:
diff changeset
   492
			Process p;
hgs
parents:
diff changeset
   493
			String str = "";
hgs
parents:
diff changeset
   494
			//start the compiler
hgs
parents:
diff changeset
   495
			System.out.println("Starting build process ....");
hgs
parents:
diff changeset
   496
			
hgs
parents:
diff changeset
   497
				System.out.println("Running sbs reallyclean on : " + compilerpath + " command: " + sbs_reallyclean.command().toString());
hgs
parents:
diff changeset
   498
				p = sbs_reallyclean.start();
hgs
parents:
diff changeset
   499
				readProcessOutput(p);
hgs
parents:
diff changeset
   500
				System.out.println("Running sbs on : " + compilerpath + " command: " + sbs_build.command().toString());
hgs
parents:
diff changeset
   501
				p = sbs_build.start();
hgs
parents:
diff changeset
   502
				str = readProcessOutput(p);
hgs
parents:
diff changeset
   503
			
hgs
parents:
diff changeset
   504
			
hgs
parents:
diff changeset
   505
			int ret = p.exitValue();
hgs
parents:
diff changeset
   506
			System.out.println("build process ended....");
hgs
parents:
diff changeset
   507
			if (ret!=0){
hgs
parents:
diff changeset
   508
				System.out.println("build process failed:"+str);
hgs
parents:
diff changeset
   509
			}
hgs
parents:
diff changeset
   510
		}
hgs
parents:
diff changeset
   511
		
hgs
parents:
diff changeset
   512
    	catch (Exception e){//Catch exception if any
hgs
parents:
diff changeset
   513
    		System.err.println("Error: " + e.getMessage());
hgs
parents:
diff changeset
   514
    		fail();
hgs
parents:
diff changeset
   515
        }
hgs
parents:
diff changeset
   516
		
hgs
parents:
diff changeset
   517
	}
hgs
parents:
diff changeset
   518
hgs
parents:
diff changeset
   519
hgs
parents:
diff changeset
   520
	static private String readProcessOutput(Process p) throws IOException {
hgs
parents:
diff changeset
   521
		InputStream inp = p.getInputStream();
hgs
parents:
diff changeset
   522
		
hgs
parents:
diff changeset
   523
			int c;
hgs
parents:
diff changeset
   524
			String str = "";	        
hgs
parents:
diff changeset
   525
			//read the output from the compiler into the input stream
hgs
parents:
diff changeset
   526
			while ((c = inp.read()) != -1) {
hgs
parents:
diff changeset
   527
		   	 str= str +((char)c);
hgs
parents:
diff changeset
   528
			}
hgs
parents:
diff changeset
   529
		return str;
hgs
parents:
diff changeset
   530
	}
hgs
parents:
diff changeset
   531
	
hgs
parents:
diff changeset
   532
	/**
hgs
parents:
diff changeset
   533
	 * This function checks that the traces header files have been generated in the expected locations
hgs
parents:
diff changeset
   534
	 * 
hgs
parents:
diff changeset
   535
	 * @param path  String specifying where to look for the traces header file.  		   
hgs
parents:
diff changeset
   536
	 */
hgs
parents:
diff changeset
   537
	public void CheckForTracesHeaders(String path) {
hgs
parents:
diff changeset
   538
		System.out.println ("CheckForTracesHeaders()");
hgs
parents:
diff changeset
   539
		System.out.println("Old Builder : " + oldBuilder + "......Old TC : " + oldTC);
hgs
parents:
diff changeset
   540
		List<File> headersList = headers.get(path);
hgs
parents:
diff changeset
   541
		List<File> sourceList =  sources.get(path);
hgs
parents:
diff changeset
   542
		System.out.println("checking files " + headersList.toString());
hgs
parents:
diff changeset
   543
		boolean error = false;
hgs
parents:
diff changeset
   544
		if ((path.compareTo("_traces_slash_target_ext")==0 || path.compareTo("_traces_slash_target_ext_commonsource")==0) && oldBuilder && !oldTC){
hgs
parents:
diff changeset
   545
			System.out.println("No need to check for header files as old sbs cannot call TC");
hgs
parents:
diff changeset
   546
		} else {
hgs
parents:
diff changeset
   547
			try {
hgs
parents:
diff changeset
   548
				TraceCompilerEngineGlobals.start();
hgs
parents:
diff changeset
   549
			} catch (TraceCompilerException e) {
hgs
parents:
diff changeset
   550
				fail();
hgs
parents:
diff changeset
   551
			}
hgs
parents:
diff changeset
   552
			for (File header : headersList) {
hgs
parents:
diff changeset
   553
				if (!header.exists()) {
hgs
parents:
diff changeset
   554
					error = true;
hgs
parents:
diff changeset
   555
					System.out.println("Error: "+header+" does not exist/hasn't been generated by TraceCompiler");
hgs
parents:
diff changeset
   556
				} else {
hgs
parents:
diff changeset
   557
					String licenceInSource = null;
hgs
parents:
diff changeset
   558
					String licenceInHeader = null;
hgs
parents:
diff changeset
   559
					File source = null;
hgs
parents:
diff changeset
   560
					// read the licence from the header file
hgs
parents:
diff changeset
   561
					if (header.getName().trim().equalsIgnoreCase("OstTraceDefinitions.h")) {
hgs
parents:
diff changeset
   562
						licenceInSource = TraceCompilerEngineGlobals.getDefaultLicence(true);
hgs
parents:
diff changeset
   563
						System.out.println("Reading default licence for OstTraceDefinitions.h" + licenceInSource);
hgs
parents:
diff changeset
   564
					} else {
hgs
parents:
diff changeset
   565
						if (header.getName().trim().equalsIgnoreCase("fixed_id.definitions")) {
hgs
parents:
diff changeset
   566
							licenceInSource = TraceCompilerEngineGlobals.getDefaultLicence(false);
hgs
parents:
diff changeset
   567
							System.out.println("Reading default licence for fixed_id.definitions" + licenceInSource);
hgs
parents:
diff changeset
   568
						} else {
hgs
parents:
diff changeset
   569
							licenceInHeader = readFirstMultiLineComment(header.getAbsolutePath());
hgs
parents:
diff changeset
   570
							System.out.println("Reading licence from " + header.getAbsolutePath() + " == " + licenceInHeader);
hgs
parents:
diff changeset
   571
							source = sourceList.get(headersList.indexOf(header));
hgs
parents:
diff changeset
   572
hgs
parents:
diff changeset
   573
							licenceInSource = readFirstMultiLineComment(source.getAbsolutePath());
hgs
parents:
diff changeset
   574
							System.out.println("Reading licence from " + source.getAbsolutePath() + " == " + licenceInSource);
hgs
parents:
diff changeset
   575
							if (licenceInSource == null) {
hgs
parents:
diff changeset
   576
								//licence should be EPL
hgs
parents:
diff changeset
   577
								licenceInSource = TraceCompilerEngineGlobals.getDefaultLicence(true);
hgs
parents:
diff changeset
   578
								System.out.println("Reading default licence for " + header.getAbsolutePath() + " == " + licenceInSource);
hgs
parents:
diff changeset
   579
							}
hgs
parents:
diff changeset
   580
						}
hgs
parents:
diff changeset
   581
					}
hgs
parents:
diff changeset
   582
					if (licenceInHeader != licenceInHeader) {
hgs
parents:
diff changeset
   583
						System.out.println("Error: licence in header " + header + " is not the same in source." + source);
hgs
parents:
diff changeset
   584
						fail();
hgs
parents:
diff changeset
   585
					}
hgs
parents:
diff changeset
   586
				}
hgs
parents:
diff changeset
   587
			}
hgs
parents:
diff changeset
   588
		
hgs
parents:
diff changeset
   589
			if(!error){
hgs
parents:
diff changeset
   590
				System.out.println("All Traces Header files have been generated as expected");
hgs
parents:
diff changeset
   591
			}
hgs
parents:
diff changeset
   592
			else {
hgs
parents:
diff changeset
   593
				fail();
hgs
parents:
diff changeset
   594
				}
hgs
parents:
diff changeset
   595
		}
hgs
parents:
diff changeset
   596
	}
hgs
parents:
diff changeset
   597
hgs
parents:
diff changeset
   598
hgs
parents:
diff changeset
   599
	/**
hgs
parents:
diff changeset
   600
	 * @param path
hgs
parents:
diff changeset
   601
	 */
hgs
parents:
diff changeset
   602
	private String readFirstMultiLineComment(String path) {
hgs
parents:
diff changeset
   603
		StringBuffer sb = new StringBuffer();
hgs
parents:
diff changeset
   604
		try {
hgs
parents:
diff changeset
   605
			FileReader reader = new FileReader(new File(path));
hgs
parents:
diff changeset
   606
			BufferedReader br = new BufferedReader(reader);
hgs
parents:
diff changeset
   607
			String line;
hgs
parents:
diff changeset
   608
			boolean inComment = false;
hgs
parents:
diff changeset
   609
			
hgs
parents:
diff changeset
   610
			while ((line = br.readLine()) != null) {
hgs
parents:
diff changeset
   611
				if (line.trim().startsWith("/*")) {
hgs
parents:
diff changeset
   612
					inComment = true;
hgs
parents:
diff changeset
   613
				}
hgs
parents:
diff changeset
   614
				if (inComment) {
hgs
parents:
diff changeset
   615
					sb.append(line + System.getProperty("line.separator"));
hgs
parents:
diff changeset
   616
				}
hgs
parents:
diff changeset
   617
				if (line.trim().endsWith("*/") && inComment) {
hgs
parents:
diff changeset
   618
					break;
hgs
parents:
diff changeset
   619
				}
hgs
parents:
diff changeset
   620
			}
hgs
parents:
diff changeset
   621
			br.close();
hgs
parents:
diff changeset
   622
		} catch (Exception e) {
hgs
parents:
diff changeset
   623
			System.out.println("Failed to open/read file " + path + "  " + e.getMessage());
hgs
parents:
diff changeset
   624
			fail();
hgs
parents:
diff changeset
   625
		}
hgs
parents:
diff changeset
   626
		String licence = null;
hgs
parents:
diff changeset
   627
		if (sb.length()> 0) {
hgs
parents:
diff changeset
   628
			licence = sb.toString();
hgs
parents:
diff changeset
   629
			if (!licence.contains("Copyright")) {
hgs
parents:
diff changeset
   630
				licence = null;
hgs
parents:
diff changeset
   631
			}
hgs
parents:
diff changeset
   632
		}
hgs
parents:
diff changeset
   633
			
hgs
parents:
diff changeset
   634
		return licence;
hgs
parents:
diff changeset
   635
	}
hgs
parents:
diff changeset
   636
	
hgs
parents:
diff changeset
   637
	/**
hgs
parents:
diff changeset
   638
	 * This function checks that the dictionary files have been generated in the expected locations with the right name
hgs
parents:
diff changeset
   639
	 * 
hgs
parents:
diff changeset
   640
	 * @param path.  		   
hgs
parents:
diff changeset
   641
	 */
hgs
parents:
diff changeset
   642
	public void CheckForDictionary(String path) {
hgs
parents:
diff changeset
   643
		System.out.println ("CheckForDictionaries()");
hgs
parents:
diff changeset
   644
hgs
parents:
diff changeset
   645
		List<File> dictsList = dicts.get(path);
hgs
parents:
diff changeset
   646
		System.out.println("checking files " + dictsList.toString());
hgs
parents:
diff changeset
   647
		boolean error = false;
hgs
parents:
diff changeset
   648
hgs
parents:
diff changeset
   649
		if ((path.compareTo("_traces_slash_target_ext")==0 || path.compareTo("_traces_slash_target_ext_commonsource")==0) && oldBuilder && !oldTC){
hgs
parents:
diff changeset
   650
			System.out.println("No need to check for dictionary as old sbs cannot call TC");
hgs
parents:
diff changeset
   651
		} else {
hgs
parents:
diff changeset
   652
			for (File dict : dictsList) {
hgs
parents:
diff changeset
   653
				if(!dict.exists()) {
hgs
parents:
diff changeset
   654
					error = true;
hgs
parents:
diff changeset
   655
					System.out.println("Error: "+dict+" does not exist/hasn't been generated by TraceCompiler");
hgs
parents:
diff changeset
   656
				}
hgs
parents:
diff changeset
   657
			}
hgs
parents:
diff changeset
   658
hgs
parents:
diff changeset
   659
			if (!error) {
hgs
parents:
diff changeset
   660
				System.out.println("Dictionary files have been generated as expected");
hgs
parents:
diff changeset
   661
			}
hgs
parents:
diff changeset
   662
			else {
hgs
parents:
diff changeset
   663
				fail();
hgs
parents:
diff changeset
   664
			}
hgs
parents:
diff changeset
   665
		}
hgs
parents:
diff changeset
   666
	}
hgs
parents:
diff changeset
   667
	
hgs
parents:
diff changeset
   668
hgs
parents:
diff changeset
   669
	/****************************************************ACTUAL TESTS************************************************************/
hgs
parents:
diff changeset
   670
	@Test
hgs
parents:
diff changeset
   671
	public void MultipleMmpsTest1 (){
hgs
parents:
diff changeset
   672
		System.out.println ("*********************traces****************************");
hgs
parents:
diff changeset
   673
		createListHeadersDicts("sbs");
hgs
parents:
diff changeset
   674
		//Call Raptor
hgs
parents:
diff changeset
   675
		InvokeCompiler("_traces", "sbs");		
hgs
parents:
diff changeset
   676
		//Check for header files
hgs
parents:
diff changeset
   677
		CheckForTracesHeaders("_traces");
hgs
parents:
diff changeset
   678
		//Check dictionary
hgs
parents:
diff changeset
   679
		CheckForDictionary("_traces");	
hgs
parents:
diff changeset
   680
		
hgs
parents:
diff changeset
   681
	
hgs
parents:
diff changeset
   682
	}
hgs
parents:
diff changeset
   683
	
hgs
parents:
diff changeset
   684
hgs
parents:
diff changeset
   685
	@Test
hgs
parents:
diff changeset
   686
	public void MultipleMmpsTest2 (){
hgs
parents:
diff changeset
   687
		System.out.println ("****************traces_mmpname**********************");
hgs
parents:
diff changeset
   688
		createListHeadersDicts("sbs");
hgs
parents:
diff changeset
   689
		//Call Raptor
hgs
parents:
diff changeset
   690
		InvokeCompiler("_traces_mmpname", "sbs");
hgs
parents:
diff changeset
   691
		//Check for header files
hgs
parents:
diff changeset
   692
		CheckForTracesHeaders("_traces_mmpname");
hgs
parents:
diff changeset
   693
		//Check dictionary
hgs
parents:
diff changeset
   694
		CheckForDictionary("_traces_mmpname");
hgs
parents:
diff changeset
   695
		
hgs
parents:
diff changeset
   696
		
hgs
parents:
diff changeset
   697
	}
hgs
parents:
diff changeset
   698
	
hgs
parents:
diff changeset
   699
hgs
parents:
diff changeset
   700
	@Test
hgs
parents:
diff changeset
   701
	public void MultipleMmpsTest3 (){
hgs
parents:
diff changeset
   702
		System.out.println ("**********traces_slash_target_ext****************");
hgs
parents:
diff changeset
   703
		createListHeadersDicts("sbs");
hgs
parents:
diff changeset
   704
		//Call Raptor
hgs
parents:
diff changeset
   705
		InvokeCompiler("_traces_slash_target_ext", "sbs");
hgs
parents:
diff changeset
   706
		//Check for header files
hgs
parents:
diff changeset
   707
		CheckForTracesHeaders("_traces_slash_target_ext");
hgs
parents:
diff changeset
   708
		//Check dictionary
hgs
parents:
diff changeset
   709
		CheckForDictionary("_traces_slash_target_ext");	
hgs
parents:
diff changeset
   710
		
hgs
parents:
diff changeset
   711
		
hgs
parents:
diff changeset
   712
	}
hgs
parents:
diff changeset
   713
hgs
parents:
diff changeset
   714
	@Test
hgs
parents:
diff changeset
   715
	public void MultipleMmpsTest4 (){
hgs
parents:
diff changeset
   716
		System.out.println ("**********traces_slash_target_ext_commonsource****************");
hgs
parents:
diff changeset
   717
		createListHeadersDicts("sbs");
hgs
parents:
diff changeset
   718
		//Call Raptor
hgs
parents:
diff changeset
   719
		InvokeCompiler("_traces_slash_target_ext_commonsource", "sbs");
hgs
parents:
diff changeset
   720
		//Check for header files
hgs
parents:
diff changeset
   721
		CheckForTracesHeaders("_traces_slash_target_ext_commonsource");
hgs
parents:
diff changeset
   722
		//Check dictionary
hgs
parents:
diff changeset
   723
		CheckForDictionary("_traces_slash_target_ext_commonsource");
hgs
parents:
diff changeset
   724
		
hgs
parents:
diff changeset
   725
		
hgs
parents:
diff changeset
   726
				
hgs
parents:
diff changeset
   727
	}
hgs
parents:
diff changeset
   728
hgs
parents:
diff changeset
   729
	@Test
hgs
parents:
diff changeset
   730
	public void MultipleMmpsTest5 (){
hgs
parents:
diff changeset
   731
		System.out.println ("**********traces_target_type****************");
hgs
parents:
diff changeset
   732
		createListHeadersDicts("sbs");
hgs
parents:
diff changeset
   733
		//Call Raptor
hgs
parents:
diff changeset
   734
		InvokeCompiler("_traces_target_type", "sbs");
hgs
parents:
diff changeset
   735
		//Check for header files
hgs
parents:
diff changeset
   736
		CheckForTracesHeaders("_traces_target_type");
hgs
parents:
diff changeset
   737
		//Check dictionary
hgs
parents:
diff changeset
   738
		CheckForDictionary("_traces_target_type");
hgs
parents:
diff changeset
   739
		
hgs
parents:
diff changeset
   740
		
hgs
parents:
diff changeset
   741
	}
hgs
parents:
diff changeset
   742
hgs
parents:
diff changeset
   743
	@Test
hgs
parents:
diff changeset
   744
	public void MultipleMmpsTest6 (){
hgs
parents:
diff changeset
   745
		System.out.println ("**********traces_mixed****************");
hgs
parents:
diff changeset
   746
		createListHeadersDicts("sbs");
hgs
parents:
diff changeset
   747
		//Call Raptor
hgs
parents:
diff changeset
   748
		InvokeCompiler("_traces_mixed", "sbs");
hgs
parents:
diff changeset
   749
		//Check for header files
hgs
parents:
diff changeset
   750
		CheckForTracesHeaders("_traces_mixed");
hgs
parents:
diff changeset
   751
		//Check dictionary
hgs
parents:
diff changeset
   752
		CheckForDictionary("_traces_mixed");	
hgs
parents:
diff changeset
   753
	}
hgs
parents:
diff changeset
   754
}