Overhaul of RCOMP/GCCE error parsing to fix 8901:
-RCOMP error parser will defer C preprocessor errors to GCCECompiler error parser.
-GCCE error parser is splited into compiler/assembler/linker, calling their counterpart in CDT respectively before handling special cases.
-Updated error messages RCOMP error parser according to latest copy of RCOMP source.
-WINSCW build configuration is using CDT GCC error parser instead of GCCE(for RCOMP C preprocessor error)
Updated test case for error parsing
-Added Bugzilla regression for GCC and make error parser
-Converted test case from hardcoded SDK_ID to picking up the first SDK from device.xml with the build config specified by the test.
-Fixed bug in test harness for input file ends on the last line so it was processed in the same run.
-Fixed bug in test harness for not clearing problem view before each run(for visual cross check).
-Rewritten test harness to use JDOM XML handling(from JAXP), to solve deployment issue in newer JRE.
/*
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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:
*
*/
include("containerLibrary.js")
/**
* Get the layout data.
*
* If Layout Data is different than "Inherit", then the layout data is returned,
* if not, iterate over all parent relationship.
*
* @param instance the instance where look in the layout data.
* @param propertyPath the name of the property to analize.
* @param propertyDefaultValue the default value of propertyPath which will
* determine if the parent layout data should be reviewed or not.
* @return the layout data.
*/
function getLayoutData ( instance, propertyPath, propertyDefaultValue ) {
var container = "com.nokia.carbide.uiq.CQikContainer";
var sbb = "com.nokia.carbide.uiq.SystemBuildingBlock";
var slot = "com.nokia.carbide.uiq.ItemSlot";
var viewPage = "com.nokia.carbide.uiq.ViewPage";
var containersGroup = "com.nokia.carbide.uiq.ContainersGroup";
var parentInstance = instance.parent;
var parentID = instance.parent.component.id;
var properties = instance.properties;
var layoutManagerInstance = null;
var layoutData = null;
while ((parentInstance != null) && (parentID != viewPage) && (parentID != containersGroup)) {
if (parentID == container) {
//println("**************** parent: container");
layoutManagerInstance = findImmediateChildByAttributeValue( parentInstance.children, "is-layout-manager", "true");
if ( layoutManagerInstance == null ) {
return propertyDefaultValue;
}
layoutData = instance.properties.layoutData[propertyPath];
if ( layoutData != propertyDefaultValue ) {
return layoutData
}
return getLayoutData ( parentInstance, propertyPath, propertyDefaultValue );
}
if (parentID == slot) {
//println("**************** parent: slot");
return getLayoutData ( parentInstance, propertyPath, propertyDefaultValue );
}
if (parentID == sbb) {
//println("**************** parent: SBB");
layoutManagerInstance = findImmediateChildByAttributeValue( parentInstance.parent.children, "is-layout-manager", "true");
if ( layoutManagerInstance == null ) {
return propertyDefaultValue;
}
layoutData = parentInstance.properties.layoutData[propertyPath];
if ( layoutData != propertyDefaultValue ) {
return layoutData
}
return getLayoutData ( parentInstance, propertyPath, propertyDefaultValue );
}
return propertyDefaultValue;
}
return getLayoutManagerLayoutData( instance.children, propertyPath, propertyDefaultValue );
}
/**
* Get the layout data of LayoutManager.
*
* If Layout Manager is null, then the default value of the property will be
* returned.
*
* @param children the children where look in the layout data.
* @param propertyPath the name of the property to analize.
* @param propertyDefaultValue the default value of propertyPath.
* @return the layout data of LayoutManager or propertyDefaultValue if
* LayoutManager is null .
*/
function getLayoutManagerLayoutData( children, propertyPath, propertyDefaultValue ) {
var layoutManager = findImmediateChildByAttributeValue( children, "is-layout-manager", "true");
if (layoutManager != null) {
//println("**************** sister: layout Manager");
return layoutManager.properties.defaultLayoutData[propertyPath];
}
return propertyDefaultValue;
}