builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java
author timkelly
Wed, 28 Jul 2010 11:33:05 -0500
branchC3_BUILDER_WORK
changeset 1709 6bd6640867aa
parent 1479 a654857ddb87
child 1739 5f659a59d04a
permissions -rw-r--r--
clean up some TODOs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
126
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     1
/*
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     3
* All rights reserved.
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     4
* This component and the accompanying materials are made available
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     6
* which accompanies this distribution, and is available
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     8
*
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
     9
* Initial Contributors:
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    10
* Nokia Corporation - initial contribution.
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    11
*
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    12
* Contributors:
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    13
*
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    14
* Description: 
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    15
*
efa1c6e4825e Copyright notice
tzelaw
parents: 125
diff changeset
    16
*/
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    17
package com.nokia.carbide.cdt.builder.test.errorParsers;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    18
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    19
import java.io.IOException;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    20
import java.util.ArrayList;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    21
import java.util.List;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    22
632
4a8b1092f0a4 Fix some error parser unit tests. A trailing colon was being included in several source files.
Ed Swartz <ed.swartz@nokia.com>
parents: 126
diff changeset
    23
import junit.framework.TestCase;
4a8b1092f0a4 Fix some error parser unit tests. A trailing colon was being included in several source files.
Ed Swartz <ed.swartz@nokia.com>
parents: 126
diff changeset
    24
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    25
import org.eclipse.core.resources.IProject;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    26
import org.eclipse.core.runtime.NullProgressMonitor;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    27
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    28
import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    29
import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    30
import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    31
import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    32
import com.nokia.carbide.cdt.builder.test.TestPlugin;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    33
import com.nokia.carbide.cpp.project.core.ProjectCorePlugin;
1479
a654857ddb87 refactor out ABLD-style platform constants into ISBSv1BuildContext from ISymbianBuildContext
timkelly
parents: 1462
diff changeset
    34
import com.nokia.carbide.cpp.sdk.core.ISBSv1BuildContext;
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    35
import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
1444
4f7d895e3e16 Fixed errors in unit tests due to ISymbianSDK refactoring, plus other updates to SDK core and UI plugins.
stechong
parents: 632
diff changeset
    36
import com.nokia.carbide.cpp.sdk.core.ISymbianBuilderID;
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    37
import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    38
import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    39
import com.nokia.cpp.internal.api.utils.core.FileUtils;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    40
632
4a8b1092f0a4 Fix some error parser unit tests. A trailing colon was being included in several source files.
Ed Swartz <ed.swartz@nokia.com>
parents: 126
diff changeset
    41
public class TestMakeErrorParser extends TestCase {
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    42
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    43
	public TestMakeErrorParser(String name) {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    44
		super(name);
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    45
	}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    46
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    47
	CarbideErrorParserTestHarness harness;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    48
	private IProject project;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    49
	
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    50
	private static final String PROJECT_NAME = "TestGcceErrorParser";
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    51
	private static final String PROJECT_PATH = "group/bld.inf";
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    52
	
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    53
	protected void setUp() throws Exception {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    54
		super.setUp();
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    55
		project = ProjectCorePlugin.createProject(PROJECT_NAME, null);
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    56
		List<ISymbianBuildContext> contextList = new ArrayList<ISymbianBuildContext>();
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    57
		
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    58
		// You need to set the proper default configuration so the correct set of error parsers is called
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    59
		List<ISymbianSDK> sdkList = SDKCorePlugin.getSDKManager().getSDKList();
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    60
		for (ISymbianSDK currSDK : sdkList){
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1444
diff changeset
    61
			List<ISymbianBuildContext> contexts = currSDK.getBuildInfo(ISymbianBuilderID.SBSV1_BUILDER).getAllBuildConfigurations();
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    62
			for (ISymbianBuildContext context : contexts) {
1479
a654857ddb87 refactor out ABLD-style platform constants into ISBSv1BuildContext from ISymbianBuildContext
timkelly
parents: 1462
diff changeset
    63
				if (context.getPlatformString().equals(ISBSv1BuildContext.EMULATOR_PLATFORM)) {
125
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    64
					contextList.add(context);
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    65
					break;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    66
				}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    67
			}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    68
			if (contextList.size() > 0) {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    69
				break;
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    70
			}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    71
		}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    72
		
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    73
		assertTrue(contextList.size() > 0);		// if this fail, you don't have any SDK installed supporting GCCE
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    74
		
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    75
		ProjectCorePlugin.postProjectCreatedActions(project, PROJECT_PATH, 
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    76
				contextList, new ArrayList<String>(), 
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    77
				"Debug MMP", null, new NullProgressMonitor());
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    78
		
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    79
		ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project);
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    80
		ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    81
		harness = new CarbideErrorParserTestHarness(project, 
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    82
												new NullProgressMonitor(),
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    83
												CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), 
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    84
												cpi.getINFWorkingDirectory());
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    85
	}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    86
	
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    87
	protected void tearDown() throws Exception {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    88
		project.delete(true, null);
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    89
		super.tearDown();
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    90
	}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    91
	
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    92
	/**
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    93
	 * Regress Bugzilla issues by entries
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    94
	 */
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    95
	public void testBugzillaRegression() {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    96
		final String reportID[] = {"3201", "3134", "3490", "6415"};
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    97
		//argument 1 is console output you get from the tool
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    98
		//argument 2 is control XML with the marker data
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
    99
		try {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   100
			for (int i = 0; i < reportID.length; i++) {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   101
				harness.parseStringAndTestAgainstXML(FileUtils.pluginRelativeFile(TestPlugin.getDefault(), "data/errorpatterns/bugzilla/" + reportID[i] +".winscw.input.txt"), 
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   102
						FileUtils.pluginRelativeFile(TestPlugin.getDefault(), "data/errorpatterns/bugzilla/" + reportID[i] +".winscw.regression.xml"));
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   103
			}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   104
		} catch (IOException e) {
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   105
			fail();
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   106
		}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   107
	}
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   108
b878114e8cc2 Overhaul of RCOMP/GCCE error parsing to fix 8901:
tzelaw
parents:
diff changeset
   109
}