# HG changeset patch # User timkelly # Date 1260154027 21600 # Node ID 20fd716f8eaaa776662160c117a033e32aa8d156 # Parent 1f0a706d24b2a50e148e2356109d50a4f30d8cc1# Parent 5ff506b20613a63673dc1a5c28a04ee47474c2be merge commit diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/abstractgcce.regression.xml --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/abstractgcce.regression.xml Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/abstractgcce.regression.xml Sun Dec 06 20:47:07 2009 -0600 @@ -1,7 +1,7 @@ - + diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/2969.gcce.regression.xml --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/2969.gcce.regression.xml Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/2969.gcce.regression.xml Sun Dec 06 20:47:07 2009 -0600 @@ -3,7 +3,7 @@ - + - + diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/4541.gcce.regression.xml --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/4541.gcce.regression.xml Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/4541.gcce.regression.xml Sun Dec 06 20:47:07 2009 -0600 @@ -1,6 +1,6 @@ - + diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5618.gcce.regression.xml --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5618.gcce.regression.xml Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5618.gcce.regression.xml Sun Dec 06 20:47:07 2009 -0600 @@ -1,20 +1,20 @@ - + - + - + - + - + - + - + - + diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5824.gcce.regression.xml --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5824.gcce.regression.xml Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/5824.gcce.regression.xml Sun Dec 06 20:47:07 2009 -0600 @@ -1,25 +1,25 @@ - + - + - + - + diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/6417.gcce.regression.xml --- a/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/6417.gcce.regression.xml Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/data/errorpatterns/bugzilla/6417.gcce.regression.xml Sun Dec 06 20:47:07 2009 -0600 @@ -1,244 +1,244 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/BaseTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/BaseTest.java Sun Dec 06 20:47:07 2009 -0600 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2009 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: +* +*/ + +package com.nokia.carbide.cdt.builder.test; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; + +import com.nokia.cpp.internal.api.utils.core.HostOS; + +import junit.framework.TestCase; + +/** + * + */ +public class BaseTest extends TestCase { + protected IPath getStockFullPath() { + return new Path(HostOS.IS_WIN32 ? "c:/" : "/opt/project"); + } +} diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/ProjectPropertiesTest.java Sun Dec 06 20:47:07 2009 -0600 @@ -39,18 +39,18 @@ import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; +@SuppressWarnings({ "deprecation" }) public class ProjectPropertiesTest extends TestCase { static IProject project; protected static final String PROJECT_NAME = "test-properties-project"; - private final String BLD_INF_PATH = "group\\"; - private final String BUILD_CONFIG_NAME1 = "Emulator Debug (WINSCW) [S60_3rd]"; - private final String BUILD_CONFIG_NAME2 = "Phone Debug (GCCE) [S60_3rd]"; - private final String BUILD_CONFIG_NAME3 = "Phone Release (ARMV5) [S60_3rd]"; + private final String BLD_INF_PATH = "group/"; private final String TRUE = "true"; private final String INF_COMPONENTS = "icons_scalable_dc.mk;HelloWorld.mmp"; - + + private List stockBuildConfigs; + private final String PKG_FILE1 = "\\sis\\test.pkg"; private final String KEY_FILE1 = "C:\\mycerts\\mykey.key"; private final String CER_FILE1 = "C:\\mycerts\\mycert.cer"; @@ -61,16 +61,19 @@ // First thing we have to do is actually create a project in a workspace... protected void setUp() throws Exception { + stockBuildConfigs = TestPlugin.getUsableBuildConfigs(); + if (project == null){ // turn off the indexer CCorePlugin.getIndexManager().setDefaultIndexerId(IPDOMManager.ID_NO_INDEXER); // there must be at least one build config to start with - List configs = new ArrayList(); - configs.add(SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME1)); - + assertTrue("Some SDK needs at least 3 usable build configs", + stockBuildConfigs.size() >= 3); project = ProjectCorePlugin.createProject(PROJECT_NAME, null); - ProjectCorePlugin.postProjectCreatedActions(project, "group/bld.inf", configs, new ArrayList(), "Debug MMP", null, new NullProgressMonitor()); + ProjectCorePlugin.postProjectCreatedActions(project, "group/bld.inf", + stockBuildConfigs.subList(0, 1), + new ArrayList(), "Debug MMP", null, new NullProgressMonitor()); } super.setUp(); } @@ -98,8 +101,8 @@ // get a new copy of the info to make sure the changes we really applied ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project); - assertEquals(BLD_INF_PATH, cpi.getProjectRelativeBldInfPath().toOSString()); - assertEquals(BUILD_CONFIG_NAME1, cpi.getDefaultBuildConfigName()); + assertEquals(BLD_INF_PATH, cpi.getProjectRelativeBldInfPath().toPortableString()); + assertEquals(stockBuildConfigs.get(0).getDisplayString(), cpi.getDefaultBuildConfigName()); assertTrue(cpi.isBuildingFromInf()); assertEquals(2, cpi.getInfBuildComponents().size()); } @@ -117,8 +120,9 @@ // Create a new configuration (which gets written to disk). // WARNING: This test will only pass when you have an SDK that is installed that // corresponds to the SDK specified in the build config display name - ISymbianBuildContext context = SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME2); - assertNotNull(context); + if (stockBuildConfigs.size() == 1) + return; + ISymbianBuildContext context = stockBuildConfigs.get(1); ICarbideBuildConfiguration newConfig = cpm.createNewConfiguration(context, true); @@ -126,7 +130,7 @@ assertNotNull(newConfig); // Check that the config name was set correctly in the object - assertEquals(BUILD_CONFIG_NAME2, newConfig.getDisplayString()); + assertEquals(context.getDisplayString(), newConfig.getDisplayString()); // check that we can get back to the project from the config... assertEquals(cpm, newConfig.getCarbideProject()); @@ -135,7 +139,6 @@ } public void testReadConfigurationData() throws Exception { - //TODO: Here need to read all config data on this call... // Right now we're just dealing with a single config property. ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(project); @@ -144,15 +147,15 @@ List configList = cpi.getBuildConfigurations(); assertEquals(2, configList.size()); - ICarbideBuildConfiguration config = cpi.getNamedConfiguration(BUILD_CONFIG_NAME1); - assertEquals(BUILD_CONFIG_NAME1, config.getDisplayString()); + ICarbideBuildConfiguration config = cpi.getNamedConfiguration(stockBuildConfigs.get(0).getDisplayString()); + assertEquals(stockBuildConfigs.get(0).getDisplayString(), config.getDisplayString()); } public void testDeleteConfigurationData() throws Exception { ICarbideProjectModifier cpm = CarbideBuilderPlugin.getBuildManager().getProjectModifier(project); assertNotNull(cpm); - ICarbideBuildConfiguration config = cpm.getNamedConfiguration(BUILD_CONFIG_NAME2); + ICarbideBuildConfiguration config = cpm.getNamedConfiguration(stockBuildConfigs.get(1).getDisplayString()); assertNotNull(config); cpm.deleteConfiguration(config); cpm.saveChanges(); @@ -168,11 +171,11 @@ ICarbideProjectModifier cpm = CarbideBuilderPlugin.getBuildManager().getProjectModifier(project); assertEquals(1, cpm.getBuildConfigurations().size()); - ISymbianBuildContext context2 = SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME2); + ISymbianBuildContext context2 = SymbianBuildContext.getBuildContextFromDisplayName(stockBuildConfigs.get(1).getDisplayString()); assertNotNull(context2); cpm.createNewConfiguration(context2, true); - ISymbianBuildContext context3 = SymbianBuildContext.getBuildContextFromDisplayName(BUILD_CONFIG_NAME3); + ISymbianBuildContext context3 = SymbianBuildContext.getBuildContextFromDisplayName(stockBuildConfigs.get(2).getDisplayString()); assertNotNull(context3); cpm.createNewConfiguration(context3, false); @@ -184,7 +187,7 @@ assertEquals(3, cpi.getBuildConfigurations().size()); ICarbideBuildConfiguration defConfig = cpi.getDefaultConfiguration(); - assertEquals(BUILD_CONFIG_NAME2, defConfig.getDisplayString()); + assertEquals(stockBuildConfigs.get(1).getDisplayString(), defConfig.getDisplayString()); } // Test the reading and writing of the default configuration @@ -193,10 +196,10 @@ assertEquals(3, cpm.getBuildConfigurations().size()); ICarbideBuildConfiguration defConfig = cpm.getDefaultConfiguration(); - assertEquals(BUILD_CONFIG_NAME2, defConfig.getDisplayString()); + assertEquals(stockBuildConfigs.get(1).getDisplayString(), defConfig.getDisplayString()); // make another configuration the default one... - ICarbideBuildConfiguration newDefaultConfig = cpm.getNamedConfiguration(BUILD_CONFIG_NAME3); + ICarbideBuildConfiguration newDefaultConfig = cpm.getNamedConfiguration(stockBuildConfigs.get(2).getDisplayString()); assertNotNull(newDefaultConfig); cpm.setDefaultConfiguration(newDefaultConfig); cpm.saveChanges(); @@ -206,7 +209,7 @@ // Check to see that we got the new default config defConfig = cpi.getDefaultConfiguration(); - assertEquals(BUILD_CONFIG_NAME3, defConfig.getDisplayString()); + assertEquals(stockBuildConfigs.get(2).getDisplayString(), defConfig.getDisplayString()); } public void testWritePKGData(){ @@ -253,7 +256,6 @@ } public void testSBSv1BuildArgsReadWrite(){ - final String build_ARG = "-testbuild"; final String clean_ARG = "-testclean"; final String export_ARG = "-testexport"; @@ -273,7 +275,7 @@ // Just sanity check to make sure deprecated methods still exist. IBuildArgumentsInfo testDeprecation = defaultConfig.getBuildArgumentsInfo(); - String test = testDeprecation.getAbldBuildArgs(); + /*String test =*/ testDeprecation.getAbldBuildArgs(); // read the arguments @@ -311,15 +313,15 @@ BuildArgumentsInfo argInfoFromDisk = defaultConfig.getBuildArgumentsInfoCopy(); // read the args now that were pulled from disk, make sure it's OK - assertTrue("Failed to re-read build args", argInfoCopyVerify.abldBuildArgs.contains(build_ARG)); - assertTrue("Failed to re-read clean args", argInfoCopyVerify.abldCleanArgs.contains(clean_ARG)); - assertTrue("Failed to re-read export args", argInfoCopyVerify.abldExportArgs.contains(export_ARG)); - assertTrue("Failed to re-read final args", argInfoCopyVerify.abldFinalArgs.contains(final_ARG)); - assertTrue("Failed to re-read freeze args", argInfoCopyVerify.abldFreezeArgs.contains(freeze_ARG)); - assertTrue("Failed to re-read library args", argInfoCopyVerify.abldLibraryArgs.contains(library_ARG)); - assertTrue("Failed to re-read makefile args", argInfoCopyVerify.abldMakefileArgs.contains(makefile_ARG)); - assertTrue("Failed to re-read resource args", argInfoCopyVerify.abldResourceArgs.contains(resource_ARG)); - assertTrue("Failed to re-read target args", argInfoCopyVerify.abldTargetArgs.contains(target_ARG)); + assertTrue("Failed to re-read build args", argInfoFromDisk.abldBuildArgs.contains(build_ARG)); + assertTrue("Failed to re-read clean args", argInfoFromDisk.abldCleanArgs.contains(clean_ARG)); + assertTrue("Failed to re-read export args", argInfoFromDisk.abldExportArgs.contains(export_ARG)); + assertTrue("Failed to re-read final args", argInfoFromDisk.abldFinalArgs.contains(final_ARG)); + assertTrue("Failed to re-read freeze args", argInfoFromDisk.abldFreezeArgs.contains(freeze_ARG)); + assertTrue("Failed to re-read library args", argInfoFromDisk.abldLibraryArgs.contains(library_ARG)); + assertTrue("Failed to re-read makefile args", argInfoFromDisk.abldMakefileArgs.contains(makefile_ARG)); + assertTrue("Failed to re-read resource args", argInfoFromDisk.abldResourceArgs.contains(resource_ARG)); + assertTrue("Failed to re-read target args", argInfoFromDisk.abldTargetArgs.contains(target_ARG)); // Now restore the settings, write to disk and verify defaultConfig.setBuildArgumentsInfo(argInfoCopyOrig); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestDefaultTranslationUnitProvider.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestDefaultTranslationUnitProvider.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestDefaultTranslationUnitProvider.java Sun Dec 06 20:47:07 2009 -0600 @@ -21,6 +21,7 @@ import com.nokia.cpp.internal.api.utils.core.FileUtils; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.Path; import java.io.File; @@ -56,7 +57,7 @@ assertSame(tu, tu2); // detect change - Thread.sleep(500); + Thread.sleep(FileUtils.getMinimumFileTimestampResolution(new Path(file1.getAbsolutePath()))); FileUtils.writeFileContents(file1, "text2".toCharArray(), null); tu2 = tuProvider.getTranslationUnit(file1, cachingModelDocumentProvider); assertNotNull(tu2); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEngineHelper.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEngineHelper.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEngineHelper.java Sun Dec 06 20:47:07 2009 -0600 @@ -48,11 +48,9 @@ import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext; import com.nokia.cpp.internal.api.utils.core.FileUtils; -import junit.framework.TestCase; +public class TestEpocEngineHelper extends BaseTest { -public class TestEpocEngineHelper extends TestCase { - - private static final String BASE_DIR = "Data/TestProject/"; + private static final String BASE_DIR = "data/TestProject/"; private static final String CARBIDE_PROJECT_NAME = "CarbideProject"; private static final String NON_CARBIDE_PROJECT_NAME = "NonCarbideProject"; private static final String PROJECT_RELATIVE_BLDINF_PATH = "group/bld.inf"; diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEnginePathHelper.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEnginePathHelper.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestEpocEnginePathHelper.java Sun Dec 06 20:47:07 2009 -0600 @@ -17,19 +17,21 @@ */ package com.nokia.carbide.cdt.builder.test; -import com.nokia.carbide.cdt.builder.EpocEnginePathHelper; -import com.nokia.cpp.internal.api.utils.core.FileUtils; +import java.io.File; +import java.io.FileFilter; -import org.eclipse.core.resources.*; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; -import java.io.File; -import java.io.FileFilter; +import com.nokia.carbide.cdt.builder.EpocEnginePathHelper; +import com.nokia.cpp.internal.api.utils.core.FileUtils; -import junit.framework.TestCase; - -public class TestEpocEnginePathHelper extends TestCase { +public class TestEpocEnginePathHelper extends BaseTest { final static String PROJECT1_NAME = "TestEngine"; final static String PROJECT2_NAME = "TestEngineImported"; private IProject project1; @@ -110,10 +112,10 @@ assertFalse(path.isAbsolute()); assertEquals(new Path(projectName).append("foo.cpp"), path); - path = helper.convertToWorkspace(new Path("\\sys\\bin")); + path = helper.convertToWorkspace(new Path("/sys/bin")); assertNull(path); - path = helper.convertToWorkspace(new Path("c:\\data\\aif.rss")); + path = helper.convertToWorkspace(getStockFullPath().append("data/aif.rss")); assertNull(path); } @@ -152,13 +154,13 @@ assertFalse(path.isAbsolute()); assertEquals(new Path("foo.cpp"), path); - path = helper.convertToProject(new Path("\\sys\\bin")); + path = helper.convertToProject(new Path("/sys/bin")); assertNull(path); - path = helper.convertToProject(new Path("c:\\data\\aif.rss")); + path = helper.convertToProject(getStockFullPath().append("data/aif.rss")); assertNull(path); - path = helper.convertToProject(new Path("\\epoc32\\include\\oem")); + path = helper.convertToProject(new Path("/epoc32/include/oem")); assertNull(path); } @@ -188,15 +190,15 @@ assertEquals(projectRoot.append("foo.cpp"), path); // not a real EPOCROOT filesystem path, so it gets the drive letter - path = helper.convertToFilesystem(new Path("\\sys\\bin")); + path = helper.convertToFilesystem(new Path("/sys/bin")); assertNotNull(path); assertTrue(path.isAbsolute()); - assertEquals(new Path("\\sys\\bin").setDevice(projectRoot.getDevice()), path); + assertEquals(new Path("/sys/bin").setDevice(projectRoot.getDevice()), path); - path = helper.convertToFilesystem(new Path("c:\\data\\aif.rss")); + path = helper.convertToFilesystem(getStockFullPath().append("data/aif.rss")); assertNotNull(path); assertTrue(path.isAbsolute()); - assertEquals(new Path("c:\\data\\aif.rss"), path); + assertEquals(getStockFullPath().append("data/aif.rss"), path); } private void __testToFilesystemPaths(IProject project, IPath projectRoot) { @@ -286,10 +288,10 @@ assertEquals(new Path(project.getName()).append("Base.Mmp"), path); assertNotNull(root.findMember(path)); - path = helper.convertToWorkspace(new Path("\\sys\\bin")); + path = helper.convertToWorkspace(new Path("/sys/bin")); assertNull(path); - path = helper.convertToWorkspace(new Path("c:\\data\\aif.rss")); + path = helper.convertToWorkspace(getStockFullPath().append("data/aif.rss")); assertNull(path); ///// @@ -308,7 +310,7 @@ //////// - path = helper.convertFilesystemToWorkspace(new Path("c:/not/in/workspace")); + path = helper.convertFilesystemToWorkspace(getStockFullPath().append("not/in/workspace")); assertNull(path); /* diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestImageMakefileViewPathHelper.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestImageMakefileViewPathHelper.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestImageMakefileViewPathHelper.java Sun Dec 06 20:47:07 2009 -0600 @@ -17,6 +17,18 @@ */ package com.nokia.carbide.cdt.builder.test; +import java.io.ByteArrayInputStream; +import java.io.File; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; + import com.nokia.carbide.cdt.builder.DefaultImageMakefileViewConfiguration; import com.nokia.carbide.cdt.builder.ImageMakefileViewPathHelper; import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin; @@ -27,15 +39,7 @@ import com.nokia.carbide.cpp.epoc.engine.preprocessor.AllNodesViewFilter; import com.nokia.cpp.internal.api.utils.core.FileUtils; -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.*; - -import java.io.ByteArrayInputStream; -import java.io.File; - -import junit.framework.TestCase; - -public class TestImageMakefileViewPathHelper extends TestCase { +public class TestImageMakefileViewPathHelper extends BaseTest { final static String PROJECT1_NAME = "TestMk"; final static String PROJECT2_NAME = "TestMkImported"; private static final IPath IMAGE1_MAKEFILE_PATH = new Path("gfx/Images1.mk"); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestMMPViewPathHelper.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestMMPViewPathHelper.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestMMPViewPathHelper.java Sun Dec 06 20:47:07 2009 -0600 @@ -17,21 +17,26 @@ */ package com.nokia.carbide.cdt.builder.test; -import com.nokia.carbide.cdt.builder.*; +import java.io.File; +import java.io.FileFilter; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; + +import com.nokia.carbide.cdt.builder.EMMPPathContext; +import com.nokia.carbide.cdt.builder.InvalidDriveInMMPPathException; +import com.nokia.carbide.cdt.builder.MMPViewPathHelper; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; import com.nokia.cpp.internal.api.utils.core.FileUtils; - -import org.eclipse.core.resources.*; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; +import com.nokia.cpp.internal.api.utils.core.HostOS; -import java.io.File; -import java.io.FileFilter; - -import junit.framework.TestCase; - -public class TestMMPViewPathHelper extends TestCase { +public class TestMMPViewPathHelper extends BaseTest { final static String PROJECT1_NAME = "TestMmp"; final static String PROJECT2_NAME = "TestMmpImported"; private IPath epocRoot; @@ -49,7 +54,7 @@ super.setUp(); tmpDir = FileUtils.getTemporaryDirectory(); ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDKList().get(0); - //epocRoot = new Path("c:\\symbian\\9.1\\S60_3rd\\"); + //epocRoot = new Path("c:/symbian/9.1/S60_3rd/"); epocRoot = new Path(sdk.getEPOCROOT()); project1 = ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT1_NAME); if (project1.exists()) @@ -117,15 +122,15 @@ assertEquals(new Path(projectName).append("foo.cpp"), path); path = helper.convertMMPToWorkspace(EMMPPathContext.USERINCLUDE, - new Path("\\sys\\bin")); + new Path("/sys/bin")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.AIF_SOURCE, - new Path("c:\\data\\aif.rss")); + getStockFullPath().append("data/aif.rss")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.SYSTEMINCLUDE, - new Path("+\\include\\oem")); + new Path("+/include/oem")); assertNull(path); } @@ -171,19 +176,19 @@ assertEquals(new Path("foo.cpp"), path); path = helper.convertMMPToProject(EMMPPathContext.USERINCLUDE, - new Path("\\sys\\bin")); + new Path("/sys/bin")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.AIF_SOURCE, - new Path("c:\\data\\aif.rss")); + getStockFullPath().append("data/aif.rss")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.USERINCLUDE, - new Path("\\epoc32\\include\\oem")); + new Path("/epoc32/include/oem")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.SYSTEMINCLUDE, - new Path("+\\include\\oem")); + new Path("+/include/oem")); assertNull(path); } @@ -218,16 +223,16 @@ // this is not a valid path so it will get a drive letter from the project path = helper.convertMMPToFilesystem(EMMPPathContext.USERINCLUDE, - new Path("\\sys\\bin")); + new Path("/sys/bin")); assertNotNull(path); assertTrue(path.isAbsolute()); - assertEquals(new Path("\\sys\\bin").setDevice(projectRoot.getDevice()), path); + assertEquals(new Path("/sys/bin").setDevice(projectRoot.getDevice()), path); path = helper.convertMMPToFilesystem(EMMPPathContext.AIF_SOURCE, - new Path("c:\\data\\aif.rss")); + getStockFullPath().append("data/aif.rss")); assertNotNull(path); assertTrue(path.isAbsolute()); - assertEquals(new Path("c:\\data\\aif.rss"), path); + assertEquals(getStockFullPath().append("data/aif.rss"), path); } private void __testToFilesystemPaths(IProject project, IPath projectRoot) { @@ -239,19 +244,19 @@ baseFilesystemPathTests(projectRoot, helper); path = helper.convertMMPToFilesystem(EMMPPathContext.USERINCLUDE, - new Path("\\epoc32\\include\\oem")); + new Path("/epoc32/include/oem")); assertNotNull(path); assertTrue(path.isAbsolute()); // the caps may change for the real FS - //assertEquals(epocRoot.append("\\epoc32\\include\\oem"), path); - assertEquals(epocRoot.append("\\epoc32\\include\\oem").toOSString().toLowerCase(), path.toOSString().toLowerCase()); + //assertEquals(epocRoot.append("/epoc32/include/oem"), path); + assertEquals(epocRoot.append("/epoc32/include/oem").toOSString().toLowerCase(), path.toOSString().toLowerCase()); path = helper.convertMMPToFilesystem(EMMPPathContext.SYSTEMINCLUDE, - new Path("+\\include\\oem")); + new Path("+/include/oem")); assertNotNull(path); assertTrue(path.isAbsolute()); - //assertEquals(epocRoot.append("\\epoc32\\include\\oem"), path); - assertEquals(epocRoot.append("\\epoc32\\include\\oem").toOSString().toLowerCase(), path.toOSString().toLowerCase()); + //assertEquals(epocRoot.append("/epoc32/include/oem"), path); + assertEquals(epocRoot.append("/epoc32/include/oem").toOSString().toLowerCase(), path.toOSString().toLowerCase()); } public void testToFilesystemPaths() { @@ -270,11 +275,11 @@ // no EPOCROOT, so no answers path = helper.convertMMPToFilesystem(EMMPPathContext.USERINCLUDE, - new Path("\\epoc32\\include\\oem")); + new Path("/epoc32/include/oem")); assertNull(path); path = helper.convertMMPToFilesystem(EMMPPathContext.SYSTEMINCLUDE, - new Path("+\\include\\oem")); + new Path("+/include/oem")); assertNull(path); } @@ -314,7 +319,7 @@ try { path = helper.convertProjectOrFullPathToMMP(EMMPPathContext.SOURCEPATH, epocRoot.append("epoc32").append("include").append("oem")); - assertEquals(new Path("\\epoc32\\include\\oem"), path); + assertEquals(new Path("/epoc32/include/oem"), path); } catch (InvalidDriveInMMPPathException e) { fail(); } @@ -327,13 +332,15 @@ fail(); } - try { - path = helper.convertProjectOrFullPathToMMP(EMMPPathContext.AIF_SOURCE, - new Path("f:/schnozz/foo.rss")); - fail(); - } catch (InvalidDriveInMMPPathException e) { - assertEquals(new Path("f:/schnozz/foo.rss"), e.getPath()); - assertEquals(new Path("/schnozz/foo.rss"), e.getPathNoDevice()); + if (HostOS.IS_WIN32) { + try { + path = helper.convertProjectOrFullPathToMMP(EMMPPathContext.AIF_SOURCE, + new Path("f:/schnozz/foo.rss")); + fail(); + } catch (InvalidDriveInMMPPathException e) { + assertEquals(new Path("f:/schnozz/foo.rss"), e.getPath()); + assertEquals(new Path("/schnozz/foo.rss"), e.getPathNoDevice()); + } } } @@ -351,11 +358,11 @@ twoWayTest(helper, EMMPPathContext.SOURCE, new Path("src/file/../../foo.cpp")); twoWayTest(helper, EMMPPathContext.START_BITMAP_SOURCE, new Path("src/file/../../foo.cpp")); - twoWayTest(helper, EMMPPathContext.USERINCLUDE, new Path("\\sys\\bin")); + twoWayTest(helper, EMMPPathContext.USERINCLUDE, new Path("/sys/bin")); // this case won't pass since drive letters are dropped. - //twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("c:\\data\\aif.rss")); - twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("\\data\\aif.rss")); - twoWayTest(helper, EMMPPathContext.SYSTEMINCLUDE, new Path("epoc32\\include\\oem")); + //twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("c:/data/aif.rss")); + twoWayTest(helper, EMMPPathContext.AIF_SOURCE, new Path("/data/aif.rss")); + twoWayTest(helper, EMMPPathContext.SYSTEMINCLUDE, new Path("epoc32/include/oem")); } private void twoWayTest(MMPViewPathHelper helper, EMMPPathContext context, IPath path) { @@ -462,19 +469,19 @@ assertNotNull(root.findMember(path)); path = helper.convertMMPToWorkspace(EMMPPathContext.USERINCLUDE, - new Path("\\sys\\bin")); + new Path("/sys/bin")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.AIF_SOURCE, - new Path("c:\\data\\aif.rss")); + getStockFullPath().append("data/aif.rss")); assertNull(path); path = helper.convertMMPToWorkspace(EMMPPathContext.SYSTEMINCLUDE, - new Path("+\\include\\oem")); + new Path("+/include/oem")); assertNull(path); ///// - //test full paths + //test full paths. path = helper.convertMMPToWorkspace(EMMPPathContext.START_BITMAP_SOURCE, projectRoot.append("base.mmp")); assertNotNull(path); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPKGViewPathHelper.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPKGViewPathHelper.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPKGViewPathHelper.java Sun Dec 06 20:47:07 2009 -0600 @@ -17,25 +17,36 @@ */ package com.nokia.carbide.cdt.builder.test; -import com.nokia.carbide.cdt.builder.*; -import com.nokia.carbide.cdt.builder.project.*; -import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2; -import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter; -import com.nokia.carbide.cpp.project.core.ProjectCorePlugin; -import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.*; +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.IPDOMManager; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; -import java.io.ByteArrayInputStream; -import java.util.*; +import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; +import com.nokia.carbide.cdt.builder.DefaultViewConfiguration; +import com.nokia.carbide.cdt.builder.PKGViewPathHelper; +import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; +import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; +import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo; +import com.nokia.carbide.cdt.internal.api.builder.SISBuilderInfo2; +import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter; +import com.nokia.carbide.cpp.project.core.ProjectCorePlugin; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.EPKGLanguage; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGInstallFile; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGModel; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGView; +import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.PKGModelHelper; -import junit.framework.TestCase; - -public class TestPKGViewPathHelper extends TestCase { +public class TestPKGViewPathHelper extends BaseTest { private static final String PROJECT_NAME = "TestPKG"; private static final IPath PKG_PATH = new Path("sis/test.pkg"); @@ -125,7 +136,7 @@ IPath path1 = new Path(config.getSDK().getEPOCROOT()).append("epoc32/release").append(config.getPlatformString()).append(config.getTargetString()).append("test.exe"); IPath path2 = project.getLocation().append("sis/test.txt"); - IPath path3 = new Path("\\Symbian\\9.1\\S60_3rd\\file.txt"); + IPath path3 = new Path("/Symbian/9.1/S60_3rd/file.txt"); List paths = new ArrayList(); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPlugin.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPlugin.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestPlugin.java Sun Dec 06 20:47:07 2009 -0600 @@ -74,17 +74,18 @@ } /** - * Get build configurations for the first non-empty SDK we find - * @return + * Get some build configurations for the first non-empty SDK we find. + * @return a list of contexts, maximum 8 */ public static List getUsableBuildConfigs() { for (ISymbianSDK sdk : SDKCorePlugin.getSDKManager().getSDKList()) { List contexts = sdk.getUnfilteredBuildConfigurations(); - if (contexts.size() > 0) - return contexts; + if (contexts.size() > 0) { + return contexts.subList(0, Math.min(contexts.size(), 8)); + } } TestCase.fail("No installed SDKs provide build configurations"); - return Collections.EMPTY_LIST; + return Collections.emptyList(); } } diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestProjectExportsGatherer.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestProjectExportsGatherer.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/TestProjectExportsGatherer.java Sun Dec 06 20:47:07 2009 -0600 @@ -29,7 +29,7 @@ import junit.framework.TestCase; -public class TestProjectExportsGatherer extends TestCase { +public class TestProjectExportsGatherer extends BaseTest { private IPath projectDataPath; private IPath epocRoot; @@ -81,7 +81,7 @@ @Override protected void setUp() throws Exception { super.setUp(); - epocRoot = new Path("C:\\symbian\\9.4\\S60_5th"); + epocRoot = getStockFullPath().append("symbian/9.4/S60_5th"); } @@ -111,8 +111,8 @@ ProjectExportsGatherer gatherer = createGatherer(); IPath src1 = projectDataPath.append("gfx/foo.svg"); IPath src2 = projectDataPath.append("doc/README.txt"); - IPath epoc1 = new Path("c:\\private\\12345678\\foo.svg"); - IPath epoc2 = new Path("c:\\sys\\readmes\\README.txt"); + IPath epoc1 = new Path("c:/private/12345678/foo.svg"); + IPath epoc2 = new Path("c:/sys/readmes/README.txt"); Map filesystemToEpocExportMap = gatherer.getFilesystemToEpocExportMap(); assertEquals(2, filesystemToEpocExportMap.size()); @@ -136,15 +136,15 @@ projectDataPath = getProjectData("pkgOnly"); ProjectExportsGatherer gatherer = createGatherer(); - IPath epoc1a = projectDataPath.append("sis\\text\\englishfile.txt"); - IPath epoc1b = epocRoot.append("text\\frenchfile.txt"); - IPath dev1 = new Path("$:\\private\\10000005\\import\\InstTest\\lang.txt"); + IPath epoc1a = projectDataPath.append("sis/text/englishfile.txt"); + IPath epoc1b = epocRoot.append("text/frenchfile.txt"); + IPath dev1 = new Path("$:/private/10000005/import/InstTest/lang.txt"); - IPath epoc2 = epocRoot.append("epoc32\\text\\file1.txt"); - IPath dev2 = new Path("!:\\private\\10000005\\import\\InstTest\\file1.txt"); + IPath epoc2 = epocRoot.append("epoc32/text/file1.txt"); + IPath dev2 = new Path("!:/private/10000005/import/InstTest/file1.txt"); - IPath epoc3 = epocRoot.append("epoc32\\files\\option1.txt"); - IPath dev3 = new Path("!:\\private\\10000005\\import\\InstTest\\option1.txt"); + IPath epoc3 = epocRoot.append("epoc32/files/option1.txt"); + IPath dev3 = new Path("!:/private/10000005/import/InstTest/option1.txt"); Map filesystemToEpocExportMap = gatherer.getFilesystemToEpocExportMap(); assertEquals(0, filesystemToEpocExportMap.size()); @@ -174,21 +174,21 @@ projectDataPath = getProjectData("exportAndPkg"); ProjectExportsGatherer gatherer = createGatherer(); - IPath src1a = projectDataPath.append("sis\\text\\englishfile.txt"); - //IPath epoc1a = projectDataPath.append("sis\\text\\englishfile.txt"); - //IPath src1b = projectDataPath.append("sis\\text\\frenchfile.txt"); - IPath epoc1b = epocRoot.append("epoc32\\text\\frenchfile.txt"); - IPath dev1 = new Path("$:\\private\\10000005\\import\\InstTest\\lang.txt"); + IPath src1a = projectDataPath.append("sis/text/englishfile.txt"); + //IPath epoc1a = projectDataPath.append("sis/text/englishfile.txt"); + //IPath src1b = projectDataPath.append("sis/text/frenchfile.txt"); + IPath epoc1b = epocRoot.append("epoc32/text/frenchfile.txt"); + IPath dev1 = new Path("$:/private/10000005/import/InstTest/lang.txt"); - IPath src2 = projectDataPath.append("gfx\\foo.svg"); - IPath epocTarget2 = new Path("c:\\private\\12345678\\foo.svg"); - IPath epocHost2 = epocRoot.append("epoc32\\data\\c\\private\\12345678\\foo.svg"); - IPath dev2 = new Path("!:\\private\\10000005\\foo.svg"); + IPath src2 = projectDataPath.append("gfx/foo.svg"); + IPath epocTarget2 = new Path("c:/private/12345678/foo.svg"); + IPath epocHost2 = epocRoot.append("epoc32/data/c/private/12345678/foo.svg"); + IPath dev2 = new Path("!:/private/10000005/foo.svg"); - IPath src3 = projectDataPath.append("doc\\README.txt"); - IPath epocHost3 = epocRoot.append("epoc32\\release\\armv5\\udeb\\z\\sys\\readmes\\README.txt"); - IPath epoc3 = new Path("z:\\sys\\readmes\\README.txt"); - IPath dev3 = new Path("!:\\private\\10000005\\import\\InstTest\\README.txt"); + IPath src3 = projectDataPath.append("doc/README.txt"); + IPath epocHost3 = epocRoot.append("epoc32/release/armv5/udeb/z/sys/readmes/README.txt"); + IPath epoc3 = new Path("z:/sys/readmes/README.txt"); + IPath dev3 = new Path("!:/private/10000005/import/InstTest/README.txt"); IPath src4 = projectDataPath.append("inc/Test.h"); IPath epoc4 = new Path("/epoc32/include/Test.h"); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/CarbideErrorParserTestHarness.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/CarbideErrorParserTestHarness.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/CarbideErrorParserTestHarness.java Sun Dec 06 20:47:07 2009 -0600 @@ -23,7 +23,6 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; @@ -53,6 +52,7 @@ import com.nokia.carbide.cdt.builder.builder.CarbideCommandLauncher; import com.nokia.carbide.cdt.builder.test.TestPlugin; import com.nokia.cpp.internal.api.utils.core.FileUtils; +import com.nokia.cpp.internal.api.utils.core.HostOS; public class CarbideErrorParserTestHarness extends CarbideCommandLauncher { static final String EMPTY = "^EMPTY^"; @@ -85,23 +85,12 @@ } private String readFile(java.io.File consoleOutput) { - FileReader consoleReader; - StringBuffer sb = new StringBuffer(); try { - consoleReader = new FileReader(consoleOutput); - char[] buf = new char[1024]; - int len; - while ((len = consoleReader.read(buf)) > 0) { - sb.append(buf, 0, len); - } - consoleReader.close(); - - } catch (FileNotFoundException e) { - Assert.fail(); - } catch (IOException e) { - Assert.fail(); + return new String(FileUtils.readFileContents(consoleOutput, null)); + } catch (CoreException e) { + Assert.fail(e.toString()); + return null; } - return sb.toString(); } public void writeFileContentsToStdout(java.io.File consoleOutput) { @@ -110,18 +99,16 @@ // Drive the whole parsing mechanism, stdout is output normally came from console outout public void writeStringToStdout(String consoleOutput) { - // pick out the stdout stream directly, where CDT error parser sniff - // for error messages from build console try { + // pick out the stdout stream directly, where CDT error parser sniff + // for error messages from build console stdoutStream.getProject().deleteMarkers(ICModelMarker.C_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE); // clear UI list before we start stdoutStream.clearScratchBuffer(); // some error parser do multiple lines consoleOutput += "\n"; // force the input file to flush all lines stdoutStream.write(consoleOutput.getBytes()); stdoutStream.flush(); - } catch (IOException e) { - Assert.fail(); - } catch (CoreException e) { - Assert.fail(); + } catch (Exception e) { + Assert.fail(e.toString()); } } @@ -151,7 +138,7 @@ try { return parseStringAndTestAgainstXML(readFile(consoleOutput), new FileInputStream(controlXml)); } catch (FileNotFoundException e) { - Assert.fail(); + Assert.fail(e.toString()); } return false; } @@ -163,6 +150,9 @@ * @return */ public boolean parseStringAndTestAgainstXML (String consoleOutput, InputStream xmlInputStream) { + // make slashes match what the tool would really generate + if (HostOS.IS_UNIX) + consoleOutput = consoleOutput.replaceAll("\\\\(?!\r|\n)", "/"); writeStringToStdout(consoleOutput); return testIdeMarkerAgainstXML (xmlInputStream); } @@ -222,12 +212,13 @@ } if (result.description.equals(expected.description) == false) { if (expected.description.equals(EMPTY) == false) { - Assert.fail("Unexpected message: EXPECTED value is: " + expected.description + ", ACTUAL: " + result.description); + Assert.assertEquals("Unexpected message", + expected.description, result.description); } } else { if (result.description.equals(expected.description) == false) { - Assert.fail("Message from IDE marker is " + result.description + - ", expected value is " + expected.description); + Assert.assertEquals("Message from IDE marker does not match", + expected.description, result.description); return false; } } @@ -253,9 +244,13 @@ } } else { if (result.externalPath.equals(expected.externalPath) == false) { - Assert.fail("External path string from IDE marker is " + result.externalPath + - ", expected value is " + expected.externalPath); - return false; + // note: for some reason, on Unix, relative paths become full paths + if (result.externalPath.makeRelative().equals(expected.externalPath.makeRelative())) { + // fine + } else { + Assert.assertEquals("External path string from IDE marker", expected.externalPath, result.externalPath); + return false; + } } } return true; @@ -293,6 +288,10 @@ Attribute messageNode = markerInfo.getAttribute(MESSAGE); description = messageNode.getValue(); + // make slashes match what the tool would really generate + if (HostOS.IS_UNIX) { + description = description.replaceAll("\\\\(?!\r|\n)", "/"); + } Attribute severityNode = markerInfo.getAttribute(SEVERITY); severity = Integer.parseInt(severityNode.getValue()); @@ -301,7 +300,7 @@ variableName = variableNameNode.getValue(); Attribute externalPathStringNode = markerInfo.getAttribute(EXTERNAL_PATH_STRING); - externalPath = new org.eclipse.core.runtime.Path(externalPathStringNode.getValue()); + externalPath = HostOS.createPathFromString(externalPathStringNode.getValue()); ProblemMarkerInfo details = new ProblemMarkerInfo(file, lineNumber, description, severity, variableName, externalPath); xmlFilePromblemMarkerInfoList.add(details); @@ -361,7 +360,7 @@ if (marker.externalPath == null || marker.externalPath.equals("")) { externalPathString = EMPTY; } else { - externalPathString = marker.externalPath.toString(); + externalPathString = marker.externalPath.toPortableString(); } child.setAttribute(EXTERNAL_PATH_STRING, externalPathString); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/ErrorParserRegressionGenerator.java Sun Dec 06 20:47:07 2009 -0600 @@ -42,7 +42,7 @@ // TODO Auto-generated constructor stub } - private static final String PROJECT_NAME = "TestErrorParser"; + //private static final String PROJECT_NAME = "TestErrorParser"; // Platform matters, set this before you build private static final String PLATFORM_STRING = ISymbianBuildContext.GCCE_PLATFORM; diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestGcceErrorParser.java Sun Dec 06 20:47:07 2009 -0600 @@ -20,10 +20,11 @@ import java.util.ArrayList; import java.util.List; +import junit.framework.TestCase; + import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.NullProgressMonitor; -import com.nokia.carbide.automation.utils.UITestCase; import com.nokia.carbide.automation.utils.debugger.DebuggerTestCaseParameters; import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder; @@ -36,7 +37,7 @@ import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; import com.nokia.cpp.internal.api.utils.core.FileUtils; -public class TestGcceErrorParser extends UITestCase implements DebuggerTestCaseParameters { +public class TestGcceErrorParser extends TestCase implements DebuggerTestCaseParameters { public TestGcceErrorParser(String name) { super(name); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java --- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/errorParsers/TestMakeErrorParser.java Sun Dec 06 20:47:07 2009 -0600 @@ -20,10 +20,11 @@ import java.util.ArrayList; import java.util.List; +import junit.framework.TestCase; + import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.NullProgressMonitor; -import com.nokia.carbide.automation.utils.UITestCase; import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin; import com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder; import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration; @@ -35,7 +36,7 @@ import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; import com.nokia.cpp.internal.api.utils.core.FileUtils; -public class TestMakeErrorParser extends UITestCase { +public class TestMakeErrorParser extends TestCase { public TestMakeErrorParser(String name) { super(name); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEnginePathHelper.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEnginePathHelper.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/EpocEnginePathHelper.java Sun Dec 06 20:47:07 2009 -0600 @@ -133,6 +133,7 @@ * @return workspace-relative non-absolute path, or null if not resolvable to workspace */ public IPath convertFilesystemToWorkspace(IPath fullPath) { + fullPath = FileUtils.findMatchingPathCaseInsensitive(fullPath); IPath wsPath = FileUtils.convertToWorkspacePath(fullPath, true); if (wsPath != null && wsPath.isAbsolute()) wsPath = wsPath.makeRelative(); @@ -191,7 +192,8 @@ /** * Convert the given path (from an IView API) into a - * canonical full path in the local filesystem. + * canonical full path in the local filesystem. This will resolve differences + * in case sensitivity. * @param path relative or absolute path * @return absolute path, never null unless it came in null */ @@ -216,7 +218,11 @@ // in case the path is absolute without a drive letter device = projectRoot.getDevice(); } + + // canonicalize (to remove .. , resolve links, etc) fullPath = new Path(fullPath.toFile().getCanonicalPath()).setDevice(device); + fullPath = FileUtils.findMatchingPathCaseInsensitive(fullPath); + } catch (IOException e) { } diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/builder/builder/CarbideCPPBuilder.java Sun Dec 06 20:47:07 2009 -0600 @@ -83,6 +83,7 @@ import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.IPKGView; import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.PKGModelHelper; import com.nokia.cpp.internal.api.utils.core.FileUtils; +import com.nokia.cpp.internal.api.utils.core.HostOS; import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils; /** @@ -110,10 +111,10 @@ private static final String DEFAULT_KEY_NAME = "key-gen.key"; //$NON-NLS-1$ private static final String DEFAULT_CERT_NAME = "cert-gen.cer"; //$NON-NLS-1$ private static final String DEAULT_PASSWORD = "DefaultPassword"; //$NON-NLS-1$ - private static final String MAKEKEYS_EXE = "makekeys.exe"; //$NON-NLS-1$ - private static final String MAKESIS_EXE = "makesis.exe"; //$NON-NLS-1$ + private static final String MAKEKEYS_EXE = "makekeys" + HostOS.EXE_EXT; //$NON-NLS-1$ + private static final String MAKESIS_EXE = "makesis" + HostOS.EXE_EXT; //$NON-NLS-1$ - private static final String SIGNSIS_EXE = "signsis.exe"; //$NON-NLS-1$ + private static final String SIGNSIS_EXE = "signsis" + HostOS.EXE_EXT; //$NON-NLS-1$ private static List normalMakMakePaths = Collections.synchronizedList(new ArrayList()); private static List testMakMakePaths = Collections.synchronizedList(new ArrayList()); diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ProjectExportsGatherer.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ProjectExportsGatherer.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ProjectExportsGatherer.java Sun Dec 06 20:47:07 2009 -0600 @@ -252,7 +252,7 @@ // we only support exports which might reasonably make it onto the device, // which means ones either explictly or implicitly targeting a drive. - if (targetPath.isAbsolute() && targetPath.getDevice() != null) { + if (isWin32DrivePath(targetPath)) { // accept } else if (targetPath.isAbsolute() && targetPath.getDevice() == null @@ -325,32 +325,48 @@ } /** + * Tell if the path is a Win32 path with drive letter or UNC. + * @param path + */ + protected boolean isWin32DrivePath(IPath path) { + return (path.getDevice() != null && path.getDevice().length() == 2) + || (!HostOS.IS_WIN32 && path.segmentCount() > 0 && path.segment(0).matches("[A-Za-z]:")); + } + + /** * Convert a path like c:\private\foo.svg to $(EPOCROOT)data\c\private\foo.svg * @param host * @return converted path or original */ private IPath epocHostToEPOCROOTData(IPath host) { - if (host.getDevice() == null || host.getDevice().length() > 2) - return host; - if (!host.isAbsolute()) + if (!isWin32DrivePath(host)) return host; IPath nativ = epocRoot.append("epoc32").append("data") //$NON-NLS-1$ //$NON-NLS-2$ - .append(host.getDevice().substring(0, 1)).append(host.setDevice(null)); + .append(convertDriveToPathSegment(host)); return nativ; } /** + * @param host + * @return + */ + private IPath convertDriveToPathSegment(IPath host) { + if (host.getDevice() != null) + return new Path(host.getDevice().substring(0, 1)).append(host.setDevice(null)); + else + return new Path(host.segment(0).substring(0, 1)).append(host.removeFirstSegments(1)); + } + + /** * Convert a path like c:\private\foo.svg to $(EPOCROOT)release\\\\ * @param host * @return converted path or original */ private IPath epocHostToEPOCPlatformData(IPath host) { - if (host.getDevice() == null || host.getDevice().length() > 2) - return host; - if (!host.isAbsolute()) + if (!isWin32DrivePath(host)) return host; IPath nativ = epocRoot.append("epoc32").append("release").append(platform).append(target) //$NON-NLS-1$ //$NON-NLS-2$ - .append(host.getDevice().substring(0, 1)).append(host.setDevice(null)); + .append(convertDriveToPathSegment(host)); return nativ; } } diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/SISBuilderInfo2.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/SISBuilderInfo2.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/SISBuilderInfo2.java Sun Dec 06 20:47:07 2009 -0600 @@ -25,6 +25,7 @@ import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; import com.nokia.carbide.cdt.builder.project.ISISBuilderInfo; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; +import com.nokia.cpp.internal.api.utils.core.HostOS; import com.nokia.cpp.internal.api.utils.core.TrackedResource; public class SISBuilderInfo2 implements ISISBuilderInfo { @@ -234,15 +235,18 @@ return searchLocation; } + protected IPath createFullPath(String path) { + IPath fullPath = new Path(path); + if (!fullPath.isAbsolute()) { + IPath projectPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject()); + if (projectPath != null) + fullPath = projectPath.append(fullPath); + } + return fullPath; + + } public IPath getPKGFullPath() { - IPath fullPath; - if (getPKGFileString().indexOf(":") > 0) { //$NON-NLS-1$ - fullPath = new Path(getPKGFileString()); - } else { - fullPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject()); - if (fullPath != null) - fullPath = fullPath.append(getPKGFileString()); - } + IPath fullPath = createFullPath(getPKGFileString()); return fullPath; } @@ -251,13 +255,7 @@ } public IPath getCertificateFullPath() { - IPath fullPath; - if (getCertificate().indexOf(":") > 0) { //$NON-NLS-1$ - fullPath = new Path(getCertificate()); - } else { - fullPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject()); - fullPath = fullPath.append(getCertificate()); - } + IPath fullPath = createFullPath(getCertificate()); return fullPath; } @@ -266,13 +264,7 @@ } public IPath getKeyFullPath() { - IPath fullPath; - if (getKey().indexOf(":") > 0) { //$NON-NLS-1$ - fullPath = new Path(getKey()); - } else { - fullPath = CarbideBuilderPlugin.getProjectRoot(projectTracker.getProject()); - fullPath = fullPath.append(getKey()); - } + IPath fullPath = createFullPath(getKey()); return fullPath; } @@ -280,25 +272,32 @@ return outputFilename; } - public IPath getUnsignedSISFullPath() { + protected IPath getSISRelativeFullPath(String fileName, String extension) { IPath fullPath; - if (getUnsignedSISFileName().length() == 0) { + if (fileName.length() == 0) { // Use default PKG file name fullPath = getPKGFullPath(); fullPath = fullPath.removeFileExtension(); - fullPath = fullPath.addFileExtension("sis"); //$NON-NLS-1$ - } else if (getUnsignedSISFileName().indexOf(":") > 0) { //$NON-NLS-1$ - // SIS already a full path - fullPath = new Path(getUnsignedSISFileName()); + fullPath = fullPath.addFileExtension(extension); } else { - // probably a relative path, make relative to PKG file - fullPath = getPKGFullPath(); - fullPath = fullPath.removeLastSegments(1); - fullPath = fullPath.append(getUnsignedSISFileName()); + IPath fileNamePath = HostOS.createPathFromString(fileName); + if (fileNamePath.isAbsolute()) { + // SIS already a full path + fullPath = fileNamePath; + } else { + // probably a relative path, make relative to PKG file + fullPath = getPKGFullPath(); + fullPath = fullPath.removeLastSegments(1); + fullPath = fullPath.append(fileNamePath); + } } return fullPath; } + public IPath getUnsignedSISFullPath() { + return getSISRelativeFullPath(getUnsignedSISFileName(), "sis"); //$NON-NLS-1$ + } + public String getPassword() { return password; } @@ -308,22 +307,7 @@ } public IPath getSignedSISFullPath() { - IPath fullPath; - if (getSignedSISFileName().length() == 0) { - // Use default PKG file name - fullPath = getPKGFullPath(); - fullPath = fullPath.removeFileExtension(); - fullPath = fullPath.addFileExtension("sisx"); //$NON-NLS-1$ - } else if (getSignedSISFileName().indexOf(":") > 0) { //$NON-NLS-1$ - // SIS already a full path - fullPath = new Path(getSignedSISFileName()); - } else { - // probably a relative path, make relative to PKG file - fullPath = getPKGFullPath(); - fullPath = fullPath.removeLastSegments(1); - fullPath = fullPath.append(getSignedSISFileName()); - } - return fullPath; + return getSISRelativeFullPath(getSignedSISFileName(), "sisx"); //$NON-NLS-1$ } public void setCertificate(String certString) { diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties Sun Dec 06 20:47:07 2009 -0600 @@ -1,5 +1,5 @@ ManageConfigurationsDialog.Add_Remove_Build_Configs=Add/Remove Carbide Build Configurations -ManageConfigurationsDialog.Config_Label_ToolTip=Show the SDKs and build configurations that the current project can use +ManageConfigurationsDialog.Config_Label_ToolTip=Show the SDKs and build configurations, filtered by the Platform Filtering preferences, that the current project can use ManageConfigurationsDialog.Available_SDks_and_Configs=\n Available SDKs and Configurations:\n\n ManageConfigurationsDialog.Unavailable_Config_Label_ToolTip=Show the SDKs and build configurations that are unavailable to the current project ManageConfigurationsDialog.Unavailable_SDks_and_Configs=\n Unavailable SDKs and Configurations:\n\n diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/CarbideSBSv1Builder.java Sun Dec 06 20:47:07 2009 -0600 @@ -46,6 +46,7 @@ import com.nokia.carbide.cpp.internal.qt.core.QtCorePlugin; import com.nokia.carbide.cpp.sdk.core.*; import com.nokia.cpp.internal.api.utils.core.FileUtils; +import com.nokia.cpp.internal.api.utils.core.HostOS; import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils; @@ -65,8 +66,8 @@ private static final String FINAL_CMD = "final"; //$NON-NLS-1$ private static final String TEST_CMD = "test"; //$NON-NLS-1$ - private static final IPath MAKE = new Path("make.exe"); //$NON-NLS-1$ - private static final IPath PERL = new Path("perl.exe"); //$NON-NLS-1$ + private static final IPath MAKE = new Path("make" + HostOS.EXE_EXT); //$NON-NLS-1$ + private static final IPath PERL = new Path("perl" + HostOS.EXE_EXT); //$NON-NLS-1$ private static final String ABLD_BAT_NAME = "abld.bat"; //$NON-NLS-1$ @@ -2738,10 +2739,10 @@ // now add preprocess commands to the resource file rules. if ALT_PRE env variable is set then // use scpp.exe, otherwise use cpp.exe. pipe the output to a dependency file in the makefile directory. - String cpp = "cpp.exe"; + String cpp = "cpp" + HostOS.EXE_EXT; for (String var : getResolvedEnvVars(config)) { if (var.compareTo("ALT_PRE") == 0 || var.startsWith("ALT_PRE=")) { - cpp = "rcpp.exe"; + cpp = "rcpp" + HostOS.EXE_EXT; break; } } diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ROMBuilderInfo.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ROMBuilderInfo.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/ROMBuilderInfo.java Sun Dec 06 20:47:07 2009 -0600 @@ -22,6 +22,7 @@ import com.nokia.carbide.cdt.builder.project.IROMBuilderInfo; import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; +import com.nokia.cpp.internal.api.utils.core.HostOS; public class ROMBuilderInfo implements IROMBuilderInfo { @@ -37,11 +38,11 @@ public ROMBuilderInfo(ISymbianSDK sdk) { this.romBuildCommandLine = ""; //$NON-NLS-1$ - this.romBuildWorkingDirectory = "C:\\"; //$NON-NLS-1$ + this.romBuildWorkingDirectory = HostOS.IS_WIN32 ? "C:\\" : "/tmp"; //$NON-NLS-1$ //$NON-NLS-2$ // now set epoc32\rom folder in the sdk as the default working dir // this is most common folder that rom images are built from for most symbian kits.. - String dir = sdk.getEPOCROOT() + "epoc32\\rom\\"; //$NON-NLS-1$ + String dir = sdk.getEPOCROOT() + "epoc32/rom/"; //$NON-NLS-1$ if (new File(dir).exists()) romBuildWorkingDirectory = dir; } diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/AbstractGCCEErrorParser.java --- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/AbstractGCCEErrorParser.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/builder/error/parsers/AbstractGCCEErrorParser.java Sun Dec 06 20:47:07 2009 -0600 @@ -39,7 +39,7 @@ * int severity */ // arm-none-symbianelf-g++: \test\test.cpp: No such file or directory - new ErrorPattern("(.*):\\s*(.*:)\\s*(.*(?:[Nn]o such file:\\s*)?[Nn]o such file or directory)", 2, 0, 3, 0, IMarkerGenerator.SEVERITY_ERROR_RESOURCE), //$NON-NLS-1$ + new ErrorPattern("(.*):\\s*(.*):\\s*(.*(?:[Nn]o such file:\\s*)?[Nn]o such file or directory)", 2, 0, 3, 0, IMarkerGenerator.SEVERITY_ERROR_RESOURCE), //$NON-NLS-1$ // arm-none-symbianelf-g++: no input files new ErrorPattern("(.*):\\s*(.*[Nn]o input files)", 0, 0, 2, 0, IMarkerGenerator.SEVERITY_ERROR_RESOURCE), //$NON-NLS-1$ //arm-none-symbianelf-g++: warning: `-x c++' after last input file has no effect diff -r 1f0a706d24b2 -r 20fd716f8eaa builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java --- a/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java Sun Dec 06 20:41:47 2009 -0600 +++ b/builder/com.nokia.carbide.cpp.builder.utils/src/com/nokia/carbide/cpp/internal/builder/utils/handlers/PreprocessHandler.java Sun Dec 06 20:47:07 2009 -0600 @@ -84,6 +84,7 @@ import com.nokia.carbide.cpp.internal.builder.utils.ui.LanguageSelectionDialog; import com.nokia.carbide.cpp.internal.builder.utils.ui.PreprocessPreferencePage; import com.nokia.cpp.internal.api.utils.core.FileUtils; +import com.nokia.cpp.internal.api.utils.core.HostOS; import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils; public class PreprocessHandler extends AbstractHandler { @@ -130,10 +131,10 @@ CarbideCommandLauncher launcher = new CarbideCommandLauncher(project, monitor, CarbideCPPBuilder.getParserIdArray(buildConfig.getErrorParserId()), cpi.getINFWorkingDirectory()); launcher.showCommand(true); - String cppTool = "cpp.exe"; //$NON-NLS-1$ + String cppTool = "cpp" + HostOS.EXE_EXT; //$NON-NLS-1$ for (String var : CarbideCPPBuilder.getResolvedEnvVars(buildConfig)) { if (var.compareTo("ALT_PRE") == 0 || var.startsWith("ALT_PRE=")) { //$NON-NLS-1$ //$NON-NLS-2$ - cppTool = "rcpp.exe"; //$NON-NLS-1$ + cppTool = "rcpp" + HostOS.EXE_EXT; //$NON-NLS-1$ break; } } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.codescanner/src/com/nokia/carbide/cpp/internal/codescanner/config/CSConfigManager.java --- a/core/com.nokia.carbide.cpp.codescanner/src/com/nokia/carbide/cpp/internal/codescanner/config/CSConfigManager.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.codescanner/src/com/nokia/carbide/cpp/internal/codescanner/config/CSConfigManager.java Sun Dec 06 20:47:07 2009 -0600 @@ -36,6 +36,7 @@ import com.nokia.carbide.cpp.internal.codescanner.CSPlugin; import com.nokia.carbide.cpp.internal.codescanner.ui.CSPreferenceConstants; +import com.nokia.cpp.internal.api.utils.core.HostOS; /** * A class for handling global and project specific Codescanner configuration settings. @@ -46,7 +47,7 @@ public static final String CS_CONFIG_SETTINGS_FILE = "carbide_cs_config.xml"; // name of CodeScanner commandline tool - public static final String CS_CMDLINE_TOOL = "codescanner.exe"; + public static final String CS_CMDLINE_TOOL = "codescanner" + HostOS.EXE_EXT; // private members private static CSConfigSettings defaultConfig; diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.leavescan/META-INF/MANIFEST.MF --- a/core/com.nokia.carbide.cpp.leavescan/META-INF/MANIFEST.MF Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.leavescan/META-INF/MANIFEST.MF Sun Dec 06 20:47:07 2009 -0600 @@ -11,5 +11,6 @@ org.eclipse.core.resources, org.eclipse.cdt.core, com.nokia.carbide.cdt.builder, - com.nokia.carbide.cpp.sdk.core + com.nokia.carbide.cpp.sdk.core, + com.nokia.cpp.utils.core Bundle-ActivationPolicy: lazy diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.leavescan/src/com/nokia/carbide/cpp/internal/leavescan/popup/actions/LeavescanAction.java --- a/core/com.nokia.carbide.cpp.leavescan/src/com/nokia/carbide/cpp/internal/leavescan/popup/actions/LeavescanAction.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.leavescan/src/com/nokia/carbide/cpp/internal/leavescan/popup/actions/LeavescanAction.java Sun Dec 06 20:47:07 2009 -0600 @@ -43,6 +43,7 @@ import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo; import com.nokia.carbide.cpp.internal.leavescan.LeavescanPlugin; import com.nokia.carbide.cpp.internal.leavescan.ui.LeavescanPreferenceConstants; +import com.nokia.cpp.internal.api.utils.core.HostOS; public class LeavescanAction implements IObjectActionDelegate { @@ -164,9 +165,9 @@ leaveScanArgList.add("/c"); if (leaveScanFolder.length() > 0){ - leaveScanArgList.add(leaveScanFolder + "leavescan.exe"); + leaveScanArgList.add(leaveScanFolder + "leavescan" + HostOS.EXE_EXT); } else { - leaveScanArgList.add("leavescan.exe"); + leaveScanArgList.add("leavescan" + HostOS.EXE_EXT); } if (noisyOutput) { @@ -273,9 +274,9 @@ leaveScanArgList.add("/c"); if (leaveScanFolder.length() > 0){ - leaveScanArgList.add(leaveScanFolder + "leavescan.exe"); + leaveScanArgList.add(leaveScanFolder + "leavescan" + HostOS.EXE_EXT); } else { - leaveScanArgList.add("leavescan.exe"); + leaveScanArgList.add("leavescan" + HostOS.EXE_EXT); } if (noisyOutput) { diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/DevicesLoaderTest.java --- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/DevicesLoaderTest.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/DevicesLoaderTest.java Sun Dec 06 20:47:07 2009 -0600 @@ -22,6 +22,7 @@ import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; import com.nokia.carbide.cpp.sdk.core.SymbianSDKFactory; import com.nokia.cpp.internal.api.utils.core.FileUtils; +import com.nokia.cpp.internal.api.utils.core.HostOS; import org.eclipse.emf.common.util.EList; import org.osgi.framework.Version; @@ -35,11 +36,11 @@ public class DevicesLoaderTest extends BaseDeviceModifierTest { private static final String UIQ3_SDKID = "UIQ3"; - private static final String UIQ3_EPOCROOT = "C:\\Symbian\\UIQ3SDK\\"; private static final String S60_SDKID = "S60_CustKit"; private static final String TV_SDKID = "TV_CustKit"; - private static final String M_DRIVE = "m:\\"; - private static final String P_DRIVE = "p:\\"; + private static final String UIQ3_EPOCROOT = HostOS.IS_WIN32 ? "C:\\Symbian\\UIQ3SDK\\" : "/opt/symbian/UIQ3SDK/"; + private static final String M_DRIVE = HostOS.IS_WIN32 ? "m:\\" : "/media/M/"; + private static final String P_DRIVE = HostOS.IS_WIN32 ? "p:\\" : "/media/P/"; @Override protected void setUp() throws Exception { @@ -59,19 +60,19 @@ Version osVersion = new Version("9.1"); Version sdkVersion = new Version("3.0"); ISymbianSDK sdk = SymbianSDKFactory.createInstance(S60_SDKID, M_DRIVE, ISymbianSDK.SERIES60_SDK_NAME, osVersion, "", sdkVersion, true); - DevicesLoader.updateDevice(sdk, devicesFile.toURL()); + DevicesLoader.updateDevice(sdk, devicesFile.toURI().toURL()); sdk = SymbianSDKFactory.createInstance(TV_SDKID, P_DRIVE, ISymbianSDK.TECHVIEW_SDK_NAME, osVersion, "", sdkVersion, false); - DevicesLoader.updateDevice(sdk, devicesFile.toURL()); + DevicesLoader.updateDevice(sdk, devicesFile.toURI().toURL()); sdk = SymbianSDKFactory.createInstance(UIQ3_SDKID, UIQ3_EPOCROOT, ISymbianSDK.UIQ_SDK_NAME, osVersion, "", sdkVersion, false); - DevicesLoader.updateDevice(sdk, devicesFile.toURL()); + DevicesLoader.updateDevice(sdk, devicesFile.toURI().toURL()); } public void testDevicesLoader() throws Exception { - DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURL()); + DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL()); EList devices = devicesType.getDevice(); assertEquals(3, devices.size()); for (Iterator iter = devices.iterator(); iter.hasNext();) { @@ -96,19 +97,19 @@ public void testDeleteDevice() throws Exception{ - DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURL()); + DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL()); EList devices = devicesType.getDevice(); assertEquals(3, devices.size()); for (Iterator iter = devices.iterator(); iter.hasNext();) { DeviceType device = (DeviceType) iter.next(); if (device.getId().equals(UIQ3_SDKID)){ - DevicesLoader.deleteDeviceEntry(device, devicesFile.toURL()); + DevicesLoader.deleteDeviceEntry(device, devicesFile.toURI().toURL()); break; } } // read the file back in... - devicesType = DevicesLoader.loadDevices(devicesFile.toURL()); + devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL()); devices = devicesType.getDevice(); assertEquals(2, devices.size()); } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java --- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SBVCatalogTest.java Sun Dec 06 20:47:07 2009 -0600 @@ -148,17 +148,4 @@ } - - /** - * @param built - * @param string - * @return - */ - private boolean findPlatform(ISBVPlatform[] platforms, String string) { - for (ISBVPlatform platform : platforms) - if (platform.getName().equalsIgnoreCase(string)) - return true; - return false; - } - } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SDKCreationTest.java --- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SDKCreationTest.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SDKCreationTest.java Sun Dec 06 20:47:07 2009 -0600 @@ -43,7 +43,7 @@ FileUtils.writeFileContents(devicesFile, devicesSkeleton.toCharArray(), null); assertTrue(devicesFile.exists()); - DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURL()); + DevicesType devicesType = DevicesLoader.loadDevices(devicesFile.toURI().toURL()); EList devices = devicesType.getDevice(); for (Iterator iter = devices.iterator(); iter.hasNext();) { SymbianSDK sdk = new SymbianSDK((DeviceType) iter.next()); diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SymbianContextTest.java --- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SymbianContextTest.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/SymbianContextTest.java Sun Dec 06 20:47:07 2009 -0600 @@ -39,7 +39,6 @@ @Override protected void tearDown() throws Exception { - // TODO Auto-generated method stub super.tearDown(); } @@ -49,26 +48,28 @@ assertNotNull(sdkList); assertTrue(sdkList.size() > 0); - ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK("S60_5th_Edition_SDK_v1.0", true); - assertNotNull("SDK should exist for test", sdk); - SymbianBuildContext context = new SymbianBuildContext(sdk, "WINSCW", "UDEB"); - ISymbianSDK contextSDK = context.getSDK(); - - assertTrue(contextSDK.equals(sdk)); - - // test that get get the macros - List platMacros = contextSDK.getPlatformMacros("WINSCW"); - assertTrue("WINSCW platform macros should be > 0", platMacros.size() > 0); - - // test that we get the SDK version - Version sdkVer = contextSDK.getSDKVersion(); - assertEquals(5,sdkVer.getMajor()); - assertEquals(0,sdkVer.getMinor()); - - // test that we get the OS version - Version osVer = contextSDK.getOSVersion(); - assertEquals(9,osVer.getMajor()); - assertEquals(4,osVer.getMinor()); + for (ISymbianSDK sdk : sdkList) { + if (sdk.getName().equals("S60_5th_Edition_SDK_v1.0")) { + // test that we get the SDK version + Version sdkVer = sdk.getSDKVersion(); + assertEquals(5,sdkVer.getMajor()); + assertEquals(0,sdkVer.getMinor()); + + // test that we get the OS version + Version osVer = sdk.getOSVersion(); + assertEquals(9,osVer.getMajor()); + assertEquals(4,osVer.getMinor()); + } + + SymbianBuildContext context = new SymbianBuildContext(sdk, "WINSCW", "UDEB"); + ISymbianSDK contextSDK = context.getSDK(); + + assertEquals(sdk, contextSDK); + + // test that get get the macros + List platMacros = contextSDK.getPlatformMacros("WINSCW"); + assertTrue("WINSCW platform macros should be > 0", platMacros.size() > 0); + } } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/TestDevicesXMLListener.java --- a/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/TestDevicesXMLListener.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core.test/src/com/nokia/carbide/cpp/sdk/core/test/TestDevicesXMLListener.java Sun Dec 06 20:47:07 2009 -0600 @@ -27,6 +27,7 @@ import com.nokia.carbide.cpp.internal.api.sdk.ICarbideDevicesXMLChangeListener; import com.nokia.carbide.cpp.internal.api.sdk.ISDKManagerInternal; +import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils; import com.nokia.carbide.cpp.sdk.core.*; /** @@ -66,6 +67,9 @@ // Here we just rescan the sdks and the listener will perform the test public void testCarbideConfigurationChangedListener() throws Exception{ + if (!SBSv2Utils.enableSBSv1Support()) + return; + ISDKManager sdkMgr = SDKCorePlugin.getSDKManager(); // get devics.xml and make a backup copy diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java Sun Dec 06 20:47:07 2009 -0600 @@ -22,7 +22,10 @@ import org.eclipse.cdt.utils.spawner.EnvironmentReader; import org.eclipse.core.filesystem.URIUtil; import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.osgi.framework.Version; +import org.osgi.service.prefs.BackingStoreException; import org.w3c.dom.*; import org.xml.sax.InputSource; import org.xml.sax.helpers.DefaultHandler; @@ -114,16 +117,21 @@ */ public static List getSupportedSDKs(List sdks) { List supportedSDKs = new ArrayList(); - - //TODO need a better way to do this from Symbian. - // For now, just filter out anything older than 9.4 - for (ISymbianSDK sdk : sdks) { - Version osVersion = sdk.getOSVersion(); - if (osVersion.getMajor() > 8 && osVersion.getMinor() > 3) { - supportedSDKs.add(sdk); - } + + // If there is no SBSv1 builder, then assume all SDKs are SBSv2 capable + if (!enableSBSv1Support()) { + supportedSDKs.addAll(sdks); + } else { + //TODO need a better way to do this from Symbian. + // For now, just filter out anything older than 9.4 + for (ISymbianSDK sdk : sdks) { + Version osVersion = sdk.getOSVersion(); + if (osVersion.getMajor() > 8 || + (osVersion.getMajor() == 8 && osVersion.getMinor() > 3)) { + supportedSDKs.add(sdk); + } + } } - return supportedSDKs; } @@ -132,9 +140,9 @@ * be filtered out of any UI */ public static String[] getSBSv2ConfigurationsToFilter() { - Preferences prefs = SDKCorePlugin.getDefault().getPluginPreferences(); + IEclipsePreferences prefs = new InstanceScope().getNode(SDKCorePlugin.PLUGIN_ID); if (prefs != null) { - String configs = prefs.getString(SBSV2_FILTERED_CONFIGS_STORE); + String configs = prefs.get(SBSV2_FILTERED_CONFIGS_STORE, ""); return configs.split(SBSV2_FILTERED_CONFIGS_DELIMETER); } return new String[0]; @@ -146,7 +154,7 @@ * @param configs configs to be filtered */ public static void setSBSv2ConfigurationsToFilter(String[] configs) { - Preferences prefs = SDKCorePlugin.getDefault().getPluginPreferences(); + IEclipsePreferences prefs = new InstanceScope().getNode(SDKCorePlugin.PLUGIN_ID); if (prefs != null) { String store = ""; //$NON-NLS-1$ for (String config : configs) { @@ -159,8 +167,13 @@ } if (store.length() >= 0){ // lenght of zero means there are not configs to filter (or show them all) - prefs.setValue(SBSV2_FILTERED_CONFIGS_STORE, store); - SDKCorePlugin.getDefault().savePluginPreferences(); + prefs.put(SBSV2_FILTERED_CONFIGS_STORE, store); + try { + prefs.flush(); + } catch (BackingStoreException e) { + Logging.log(SDKCorePlugin.getDefault(), + Logging.newStatus(SDKCorePlugin.getDefault(), e)); + } } } } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SymbianMacroStore.java Sun Dec 06 20:47:07 2009 -0600 @@ -13,7 +13,6 @@ package com.nokia.carbide.cpp.internal.api.sdk; -import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; @@ -25,7 +24,6 @@ import java.util.List; import org.eclipse.core.runtime.FileLocator; -import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.emf.common.util.EList; import org.osgi.framework.Bundle; @@ -53,10 +51,10 @@ public class SymbianMacroStore { - private static final String PLUGIN_DATA_FOLDER = "data"; - private static final String MACRO_STORE_FILE = "symbianMacroStore.xml"; - private static final String BEECH_BRANCH_ID = "a"; - private static final String CEDAR_BRANCH_ID = "b"; + //private static final String PLUGIN_DATA_FOLDER = "data"; + //private static final String MACRO_STORE_FILE = "symbianMacroStore.xml"; + //private static final String BEECH_BRANCH_ID = "a"; + //private static final String CEDAR_BRANCH_ID = "b"; private static final String MACRO_STORE_LOCATION ="/data/symbianMacroStore.xml"; private static SymbianMacroStore instance; @@ -157,6 +155,7 @@ } } + /* private File getMacroStoreFile() throws IOException { String location = ""; try { @@ -170,6 +169,7 @@ } return new File (location + File.separator + MACRO_STORE_FILE); } + */ private void initData(){ osMacros = new HashMap>(); @@ -284,7 +284,7 @@ } if (macroList == null) { - macroList = Collections.EMPTY_LIST; + macroList = Collections.emptyList(); } } @@ -325,7 +325,7 @@ } if (supportedOSVersionList == null){ - return Collections.EMPTY_LIST; + return Collections.emptyList(); } Collections.sort(supportedOSVersionList, new Comparator() { diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/BSFCatalog.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/BSFCatalog.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/BSFCatalog.java Sun Dec 06 20:47:07 2009 -0600 @@ -49,6 +49,9 @@ return; } + // sort by alphabetical order + Arrays.sort(bsfFiles); + // gather the individual BSF platforms for (File bsfFile : bsfFiles) { IPath bsfPath = new Path(bsfFile.getAbsolutePath()); diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVCatalog.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVCatalog.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBVCatalog.java Sun Dec 06 20:47:07 2009 -0600 @@ -16,6 +16,7 @@ import java.io.FilenameFilter; import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.eclipse.core.runtime.IPath; @@ -50,6 +51,9 @@ return; } + // sort alphabetically + Arrays.sort(sbvFiles); + // gather the individual SBV platforms for (File sbvFile : sbvFiles) { IPath sbvPath = new Path(sbvFile.getAbsolutePath()); diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SDKManager.java Sun Dec 06 20:47:07 2009 -0600 @@ -42,6 +42,7 @@ import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin; import com.nokia.carbide.cpp.sdk.core.SDKEnvInfoFailureException; +import com.nokia.cpp.internal.api.utils.core.HostOS; import com.nokia.cpp.internal.api.utils.ui.WorkbenchUtils; public class SDKManager extends AbstractSDKManager { @@ -240,9 +241,9 @@ String gcceToolDir = installPath + "\\bin"; - String[] gccBinToolList = { "arm-none-symbianelf-nm.exe", - "arm-none-symbianelf-readelf.exe", - "arm-none-symbianelf-c++filt.exe" + String[] gccBinToolList = { "arm-none-symbianelf-nm" + HostOS.EXE_EXT, + "arm-none-symbianelf-readelf" + HostOS.EXE_EXT, + "arm-none-symbianelf-c++filt" + HostOS.EXE_EXT }; String toolName = null; String toolPathName = null; diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SymbianSDK.java Sun Dec 06 20:47:07 2009 -0600 @@ -14,6 +14,7 @@ import com.nokia.carbide.cpp.epoc.engine.preprocessor.*; import com.nokia.carbide.cpp.internal.api.sdk.BuildPlat; +import com.nokia.carbide.cpp.internal.api.sdk.SBSv2Utils; import com.nokia.carbide.cpp.internal.api.sdk.SymbianBuildContext; import com.nokia.carbide.cpp.internal.sdk.core.gen.Devices.DefaultType; import com.nokia.carbide.cpp.internal.sdk.core.gen.Devices.DeviceType; @@ -236,7 +237,7 @@ List buildPlats = getAvailablePlatforms(); if (buildPlats.size() == 0){ - return Collections.EMPTY_LIST; + return Collections.emptyList(); } buildTargets.add(new SymbianBuildContext(this, ISymbianBuildContext.EMULATOR_PLATFORM, ISymbianBuildContext.DEBUG_TARGET)); @@ -313,15 +314,30 @@ } public List getFilteredBuildConfigurations() { - - List buildContexts = getUnfilteredBuildConfigurations(); + // This is probably a bug, but the filtering only uses SBSv1 preferences if SBSv1 is enabled... + List filteredContexts; + if (SBSv2Utils.enableSBSv1Support()) { + filteredContexts = getSBSv1FilteredBuildConfigurations(); + } else { + if (SBSv2Utils.enableSBSv2Support()) { + filteredContexts = SBSv2Utils.getFilteredSBSv2BuildContexts(this); + } else { + // be optimistic in this case... SBSv3? ;) + filteredContexts = getUnfilteredBuildConfigurations(); + } + } + return filteredContexts; + } + + protected List getSBSv1FilteredBuildConfigurations() { + List buildContexts = getUnfilteredBuildConfigurations(); if (buildContexts.size() == 0){ - return Collections.EMPTY_LIST; + return Collections.emptyList(); } ISDKManager sdkMgr = SDKCorePlugin.getSDKManager(); - List platFilterList = sdkMgr.getPlatformList(); + List platFilterList = sdkMgr.getPlatformList(); Iterator li = buildContexts.iterator(); @@ -343,9 +359,8 @@ } } - + return buildContexts; - } public IPath getIncludePath() { diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/processes/CheckS60CustKitSupport.java Sun Dec 06 20:47:07 2009 -0600 @@ -26,7 +26,7 @@ import com.nokia.carbide.template.engine.ITemplate; import com.nokia.carbide.templatewizard.process.AbstractProjectProcess; import com.nokia.carbide.templatewizard.process.IParameter; -import com.nokia.cpp.internal.api.utils.core.Check; +import com.nokia.cpp.internal.api.utils.core.HostOS; /** * Process used to fill in S60 specific include symbols for INF/MMP files @@ -49,7 +49,11 @@ private static final String BUILD_HELP_SIS_PREFIX = "buildHelpSISPrefix"; private static final String DISABLE_HELP_STRING = "//"; private static final String DISABLE_HELP_PKG = ";"; - private static final String HELP_COMPILER = "epoc32/tools/cshlpcmp.bat"; + + private static final String HELP_COMPILER_VARIABLE = "cshlpcmp"; + private static final String HELP_COMPILER_WIN32 = "cshlpcmp.bat"; + private static final String HELP_COMPILER_PERL = "cshlpcmp.pl"; + private static final String HELP_SUPPORT_MACRO = "helpSupport"; private static final String HELP_SUPPORT_STRING = "MACRO _HELP_AVAILABLE_"; @@ -63,17 +67,18 @@ includesValue = createCustKitIncludes(template); template.getTemplateValues().put(S60_50_BUILD_MACROS, includesValue); - boolean hasHelp = isHelpCompilerAvailable(template); + String helpCompiler = findHelpCompiler(template); String enableHelpString = ""; String enableHelpSISString = ""; String helpSupportString = ""; - if (hasHelp) { + if (helpCompiler != null) { helpSupportString = HELP_SUPPORT_STRING; } else { enableHelpString = DISABLE_HELP_STRING; enableHelpSISString = DISABLE_HELP_PKG; } + template.getTemplateValues().put(HELP_COMPILER_VARIABLE, helpCompiler != null ? helpCompiler : "cshlpcmp"); //$NON-NLS-1$ template.getTemplateValues().put(BUILD_HELP_PREFIX, enableHelpString); template.getTemplateValues().put(BUILD_HELP_SIS_PREFIX, enableHelpSISString); template.getTemplateValues().put(HELP_SUPPORT_MACRO, helpSupportString); @@ -84,26 +89,45 @@ return SDKCorePlugin.getDefault(); } - private boolean isHelpCompilerAvailable(ITemplate template) { + @SuppressWarnings("unchecked") + private ISymbianBuildContext[] getBuildContexts(ITemplate template) { Object object = template.getTemplateValues().get(SELECTED_BUILD_CONFIGS_VALUE_KEY); if (object instanceof List) { - List listOfBuildConfigs = (List) object; - for (Object obj : listOfBuildConfigs) { - Check.checkContract(obj instanceof ISymbianBuildContext); - ISymbianBuildContext symbianBuildContext = (ISymbianBuildContext)obj; - ISymbianSDK sdk = symbianBuildContext.getSDK(); - if (sdk != null) { - File contextHelpCompiler = new File(sdk.getEPOCROOT() + HELP_COMPILER); + List listOfBuildConfigs = (List) object; + return (ISymbianBuildContext[]) listOfBuildConfigs + .toArray(new ISymbianBuildContext[listOfBuildConfigs.size()]); + } + return new ISymbianBuildContext[0]; + } + + /** + * Check whether the help compiler is available, and what its name is. + * @param template + * @return + */ + private String findHelpCompiler(ITemplate template) { + String[] helpCompilerNames; + + if (HostOS.IS_WIN32) { + helpCompilerNames = new String[] { HELP_COMPILER_WIN32, HELP_COMPILER_PERL }; + } else { + helpCompilerNames = new String[] { HELP_COMPILER_PERL }; + } + for (ISymbianBuildContext symbianBuildContext : getBuildContexts(template)) { + ISymbianSDK sdk = symbianBuildContext.getSDK(); + if (sdk != null) { + File tools = new File(sdk.getEPOCROOT(), "epoc32/tools"); + for (String filename : helpCompilerNames) { + File contextHelpCompiler = new File(tools, filename); if (contextHelpCompiler.exists()) { - return true; + return contextHelpCompiler.getName(); } } } } - return false; + return null; } - @SuppressWarnings("unchecked") /** * Check the SDK version and certain includes to figure out which include macros to add. * Starting with S60 5.0 CustKits (2007 WK 24), many source bases are using macros for include paths. @@ -111,45 +135,39 @@ * values/logic here. */ private String createCustKitIncludes(ITemplate template){ - Object object = template.getTemplateValues().get(SELECTED_BUILD_CONFIGS_VALUE_KEY); String S60_50_Macros_String = ""; - if (object instanceof List) { - List listOfBuildConfigs = (List) object; - for (Object obj : listOfBuildConfigs) { - Check.checkContract(obj instanceof ISymbianBuildContext); - ISymbianBuildContext symbianBuildContext = (ISymbianBuildContext)obj; - ISymbianSDK sdk = symbianBuildContext.getSDK(); - if (sdk != null) { - File middleWareInclude = new File(sdk.getEPOCROOT() + S60_MIDDWARE_INC); - - // NOTE: Here we need to check the SDK major version becuase - // the 3.2 CustKit - // has the middleware folder but doesn't use the new build - // macros for include paths - if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) { - // add symbol as at least one build config is a CustKit - S60_50_Macros_String = S60_INC_MACROS; - break; - } - - middleWareInclude = new File(sdk.getEPOCROOT() + S60_MIDDWARE_INC2); - File sfoPath = new File(sdk.getEPOCROOT() + S60_SF_FOLDER); - // check for middleware paths and /sf path (if SFO kit) - if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists() && sfoPath.exists()) { - // add symbol as at least one build config is a CustKit - S60_50_Macros_String = S60_INC_MACROS_SF; - break; - } - - // try newer middleware paths moved to app layer includes - - if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) { - // add symbol as at least one build config is a CustKit - S60_50_Macros_String = S60_INC_MACROS2; - break; - } + for (ISymbianBuildContext symbianBuildContext : getBuildContexts(template)) { + ISymbianSDK sdk = symbianBuildContext.getSDK(); + if (sdk != null) { + File middleWareInclude = new File(sdk.getEPOCROOT(), S60_MIDDWARE_INC); + + // NOTE: Here we need to check the SDK major version becuase + // the 3.2 CustKit + // has the middleware folder but doesn't use the new build + // macros for include paths + if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) { + // add symbol as at least one build config is a CustKit + S60_50_Macros_String = S60_INC_MACROS; + break; + } + + middleWareInclude = new File(sdk.getEPOCROOT(), S60_MIDDWARE_INC2); + File sfoPath = new File(sdk.getEPOCROOT(), S60_SF_FOLDER); + // check for middleware paths and /sf path (if SFO kit) + if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists() && sfoPath.exists()) { + // add symbol as at least one build config is a CustKit + S60_50_Macros_String = S60_INC_MACROS_SF; + break; + } + + // try newer middleware paths moved to app layer includes + + if (sdk.getSDKVersion().getMajor() >= 5 && middleWareInclude.exists()) { + // add symbol as at least one build config is a CustKit + S60_50_Macros_String = S60_INC_MACROS2; + break; + } - } } } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java --- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/BuildPlatformFilterPage.java Sun Dec 06 20:47:07 2009 -0600 @@ -53,14 +53,16 @@ GridData tabFolderGridData = new GridData(SWT.FILL, SWT.FILL, true, true); tabFolder.setLayoutData(tabFolderGridData); - TabItem sbsv1TabItem = new TabItem(tabFolder, SWT.NONE); - sbsv1TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv1TabText")); //$NON-NLS-1$ - sbsv1TabItem.setToolTipText(Messages.getString("BuildPlatformFilterPage.SBSv1TabToolTip")); //$NON-NLS-1$ - - sbsv1Tab = new SBSv1PlatformFilterComposite(tabFolder); - sbsv1Tab.createControls(); - sbsv1TabItem.setControl(sbsv1Tab); - + if (SBSv2Utils.enableSBSv1Support()) { + TabItem sbsv1TabItem = new TabItem(tabFolder, SWT.NONE); + sbsv1TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv1TabText")); //$NON-NLS-1$ + sbsv1TabItem.setToolTipText(Messages.getString("BuildPlatformFilterPage.SBSv1TabToolTip")); //$NON-NLS-1$ + + sbsv1Tab = new SBSv1PlatformFilterComposite(tabFolder); + sbsv1Tab.createControls(); + sbsv1TabItem.setControl(sbsv1Tab); + } + if (SBSv2Utils.enableSBSv2Support()) { TabItem sbsv2TabItem = new TabItem(tabFolder, SWT.NONE); sbsv2TabItem.setText(Messages.getString("BuildPlatformFilterPage.SBSv2TabText")); //$NON-NLS-1$ @@ -81,7 +83,9 @@ } public boolean performOk() { - sbsv1Tab.performOk(); + if (sbsv1Tab != null) { + sbsv1Tab.performOk(); + } if (sbsv2Tab != null) { sbsv2Tab.performOk(); @@ -98,8 +102,12 @@ @Override protected void performDefaults() { - sbsv1Tab.setDefaults(); - sbsv2Tab.setDefaults(); + if (sbsv1Tab != null) { + sbsv1Tab.setDefaults(); + } + if (sbsv2Tab != null) { + sbsv2Tab.setDefaults(); + } super.performDefaults(); } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties --- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties Sun Dec 06 20:47:07 2009 -0600 @@ -118,8 +118,8 @@ BuildTargetsPage.BuildConfigsLabel=SDKs and Build Configurations BuildTargetsPage.BuildConfigsToolTip=Select the build configurations to create for this project. You can add and remove these once the project has been created. BuildTargetsPage.FilterText=Filter SDKs based on selected template -BuildTargetsPage.NoMatchingSDKsError=There are no matching Symbian OS SDKs installed and enabled. -BuildTargetsPage.NoSDKsError=There are no Symbian OS SDKs installed and enabled. +BuildTargetsPage.NoMatchingSDKsError=There are no matching Symbian OS SDKs installed or enabled (check SDK Preferences and Platform Filtering preferences). +BuildTargetsPage.NoSDKsError=There are no Symbian OS SDKs installed or enabled (check SDK Preferences and Platform Filtering preferences). BuildTargetsPage.NoBuildConfigsSelectedError=Please select at least one build configuration. BuildTargetsPage.DifferentDrivesError=There are known build problems when the bld.inf file and SDK are on different drives ({0}) BuildTargetsPage.NoDriveSpecWarning=You have chosen an SDK EPOCROOT without a drive specification. Building will work but other features such as the indexer and MMP editor may not fully function. diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/FileUtils.java --- a/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/FileUtils.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/FileUtils.java Sun Dec 06 20:47:07 2009 -0600 @@ -297,7 +297,8 @@ * the workspace via links (very slow) * @return new path (workspace-relative) or null if not resolvable to workspace */ - static public IPath convertToWorkspacePath(IPath cpath, boolean makeCanonical, boolean resolveLinks) { + @SuppressWarnings("deprecation") + static public IPath convertToWorkspacePath(IPath cpath, boolean makeCanonical, boolean resolveLinks) { if (!Platform.isRunning() || cpath == null) return null; @@ -883,4 +884,83 @@ private static IStatus createErrorStatus(Exception e) { return new Status(IStatus.ERROR, UtilsCorePlugin.ID, null, e); } + + /** + * Get the minimum timestamp resolution for a file in ms (based on heuristics for the OS). + * @param path path to file of interest, or null for worst case + * @return number of ms of resolution. E.g., 50 means only changes in 50ms increments are stored + */ + public static long getMinimumFileTimestampResolution(IPath path) { + // VFAT on Win32 uses 2 second increments. Linux ext2/3 uses 1 second resolution, + // until ext4, where it becomes nanoseconds. + // Assume the worst format in all cases. + long res = HostOS.IS_WIN32 ? 2000 : 1000; + if (path != null) { + // todo + } + return res; + } + + /** + * Locate the file on the filesystem which has the same path, but with + * only case sensitivity differences. This is only meaningful for fully + * case sensitive and case-preserving filesystems. + * @param path + * @return path pointing to existing file (possibly with different case in components) or + * original path if there is no match + */ + public static IPath findMatchingPathCaseInsensitive(IPath path) { + // case is insensitive already + if (HostOS.IS_WIN32) + return path; + + if (path == null || !path.isAbsolute() || path.toFile().exists()) + return path; + + StringBuilder builder = new StringBuilder(); + + if (path.getDevice() != null) { + builder.append(path.getDevice()); + } + + builder.append('/'); + + boolean failedLookup = false; + + for (int seg = 0; seg < path.segmentCount(); seg++) { + final String segment = path.segment(seg); + + final String[] matches = { segment }; + + if (!failedLookup) { + File dir = new File(builder.toString()); + if (!new File(dir, matches[0]).exists()) { + // component has wrong case; find the first one matching case-insensitively + String[] names = dir.list(new FilenameFilter() { + + public boolean accept(File dir, String name) { + if (name.equalsIgnoreCase(segment)) { + matches[0] = name; + return true; + } + return false; + } + }); + + if (names.length == 0) { + // no matches! the rest of the path won't match either + failedLookup = true; + } + } + } + builder.append(matches[0]); + builder.append('/'); + } + + if (!path.hasTrailingSeparator() && builder.length() > 0 && builder.charAt(builder.length() - 1) == '/') { + builder.setLength(builder.length() - 1); + } + return new Path(builder.toString()); + } + } diff -r 1f0a706d24b2 -r 20fd716f8eaa core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/HostOS.java --- a/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/HostOS.java Sun Dec 06 20:41:47 2009 -0600 +++ b/core/com.nokia.cpp.utils.core/src/com/nokia/cpp/internal/api/utils/core/HostOS.java Sun Dec 06 20:47:07 2009 -0600 @@ -30,10 +30,12 @@ public static boolean IS_WIN32 = File.separatorChar == '\\'; /** Is the host some Unix variant? */ public static boolean IS_UNIX = File.separatorChar == '/'; + /** Executable file extension */ + public static final String EXE_EXT = IS_WIN32 ? ".exe" : ""; /** The name of the PATH variable in the environment. Capitalized differently per OS. */ public static String PATH_VARIABLE_NAME = IS_WIN32 ? "Path" : "PATH"; - + /** * Convert a variable constructed blindly for a Win32 environment into * Unix-like syntax. This is typically used for PATH or lists @@ -94,6 +96,21 @@ } /** + * Create an IPath from a string which may be a Win32 path.

+ * (This won't work in Unix when using a Win32 path.) + * @param path + * @return converted string + */ + public static IPath createPathFromString(String path) { + if (path == null) return null; + // handle Windows slashes and canonicalize + path = path.replaceAll("\\\\", "/"); + return new Path(path); + } + + + + /** * Ensure that the executable name mentioned is canonical for the machine. * This only affects Windows, currently, ensuring that an ".exe" is attached. * @param executablePath @@ -104,7 +121,7 @@ IPath executablePath = new Path(executable); String ext = executablePath.getFileExtension(); if (ext == null) { - executable += ".exe"; + executable += EXE_EXT; } } return executable; @@ -156,6 +173,4 @@ return path; } - - } diff -r 1f0a706d24b2 -r 20fd716f8eaa debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/DebuggerTab.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/DebuggerTab.java Sun Dec 06 20:41:47 2009 -0600 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/DebuggerTab.java Sun Dec 06 20:47:07 2009 -0600 @@ -76,6 +76,7 @@ breakAtMain.setLayoutData(data); breakAtMain.setFont(parent.getFont()); breakAtMain.setToolTipText(Messages.getString("DebuggerTab.7")); //$NON-NLS-1$ + breakAtMain.setData(".uid", "DebuggerTab.breakAtMain"); //$NON-NLS-1$ //$NON-NLS-2$ breakAtMain.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { updateLaunchConfigurationDialog(); @@ -88,6 +89,7 @@ data.horizontalSpan = 1; mainBreakSymbol.setLayoutData(data); mainBreakSymbol.setToolTipText(Messages.getString("DebuggerTab.7")); //$NON-NLS-1$ + mainBreakSymbol.setData(".uid", "DebuggerTab.mainBreakSymbol"); //$NON-NLS-1$ //$NON-NLS-2$ mainBreakSymbol.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { updateLaunchConfigurationDialog(); @@ -100,6 +102,7 @@ viewOutput.setLayoutData(data); viewOutput.setFont(parent.getFont()); viewOutput.setToolTipText(Messages.getString("DebuggerTab.10")); //$NON-NLS-1$ + viewOutput.setData(".uid", "DebuggerTab.viewOutput"); //$NON-NLS-1$ //$NON-NLS-2$ viewOutput.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { updateLaunchConfigurationDialog(); @@ -112,6 +115,7 @@ viewDebugTrace.setLayoutData(data); viewDebugTrace.setFont(parent.getFont()); viewDebugTrace.setToolTipText(Messages.getString("DebuggerTab.17")); //$NON-NLS-1$ + viewDebugTrace.setData(".uid", "DebuggerTab.viewDebugTrace"); //$NON-NLS-1$ //$NON-NLS-2$ viewDebugTrace.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { updateLaunchConfigurationDialog(); @@ -124,6 +128,7 @@ viewMessages.setLayoutData(data); viewMessages.setFont(parent.getFont()); viewMessages.setToolTipText(Messages.getString("DebuggerTab.12")); //$NON-NLS-1$ + viewMessages.setData(".uid", "DebuggerTab.viewMessages"); //$NON-NLS-1$ //$NON-NLS-2$ viewMessages.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { updateLaunchConfigurationDialog(); diff -r 1f0a706d24b2 -r 20fd716f8eaa debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java Sun Dec 06 20:41:47 2009 -0600 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/EmulationMainTab.java Sun Dec 06 20:47:07 2009 -0600 @@ -109,13 +109,13 @@ gd.horizontalSpan = 2; hostLabel.setLayoutData(gd); hostLabel.setToolTipText(Messages.getString("EmulationMainTab.3")); //$NON-NLS-1$ - hostLabel.setData(".uid", "EmulationMainTab.hostLabel"); + hostLabel.setData(".uid", "EmulationMainTab.hostLabel"); //$NON-NLS-1$ //$NON-NLS-2$ hostText = new Text(projComp, SWT.SINGLE | SWT.BORDER); gd = new GridData(GridData.FILL_HORIZONTAL); hostText.setLayoutData(gd); hostText.setToolTipText(Messages.getString("EmulationMainTab.3")); //$NON-NLS-1$ - hostText.setData(".uid", "EmulationMainTab.hostText"); + hostText.setData(".uid", "EmulationMainTab.hostText"); //$NON-NLS-1$ //$NON-NLS-2$ hostText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent evt) { @@ -124,7 +124,7 @@ }); hostBrowse = createPushButton(projComp, Messages.getString("EmulationMainTab.4"), null); //$NON-NLS-1$ - hostBrowse.setData(".uid", "EmulationMainTab.hostBrowse"); + hostBrowse.setData(".uid", "EmulationMainTab.hostBrowse"); //$NON-NLS-1$ //$NON-NLS-2$ hostBrowse.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { FileDialog dialog = new FileDialog(getShell(), SWT.NONE); diff -r 1f0a706d24b2 -r 20fd716f8eaa debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java Sun Dec 06 20:41:47 2009 -0600 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/ExecutablesTab.java Sun Dec 06 20:47:07 2009 -0600 @@ -95,6 +95,7 @@ targetingRulesCombo.add(Messages.getString("ExecutablesTab.4")); //$NON-NLS-1$ } targetingRulesCombo.setText(Messages.getString("ExecutablesTab.5")); //$NON-NLS-1$ + targetingRulesCombo.setData(".uid", "ExecutablesTab.targetingRulesCombo"); //$NON-NLS-1$ //$NON-NLS-2$ final GridData gd_targetingRulesCombo = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1); targetingRulesCombo.setLayoutData(gd_targetingRulesCombo); targetingRulesCombo.addListener(SWT.Selection, new Listener() { @@ -156,6 +157,7 @@ addButton = new Button(buttonComp, SWT.PUSH); addButton.setText(Messages.getString("ExecutablesTab.6")); //$NON-NLS-1$ + addButton.setData(".uid", "ExecutablesTab.addButton"); //$NON-NLS-1$ //$NON-NLS-2$ addButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(getShell(), SWT.NONE); @@ -177,6 +179,7 @@ selectAllButton = new Button(buttonComp, SWT.PUSH); selectAllButton.setText(Messages.getString("ExecutablesTab.9")); //$NON-NLS-1$ + selectAllButton.setData(".uid", "ExecutablesTab.selectAllButton"); //$NON-NLS-1$ //$NON-NLS-2$ selectAllButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { executablesBlock.setAllChecked(true); @@ -185,6 +188,7 @@ unselectAllButton = new Button(buttonComp, SWT.PUSH); unselectAllButton.setText(Messages.getString("ExecutablesTab.10")); //$NON-NLS-1$ + unselectAllButton.setData(".uid", "ExecutablesTab.unselectAllButton"); //$NON-NLS-1$ //$NON-NLS-2$ unselectAllButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { executablesBlock.setAllChecked(false); diff -r 1f0a706d24b2 -r 20fd716f8eaa debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/InstallationTab.java --- a/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/InstallationTab.java Sun Dec 06 20:41:47 2009 -0600 +++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/ui/InstallationTab.java Sun Dec 06 20:47:07 2009 -0600 @@ -119,11 +119,13 @@ data.horizontalSpan = 2; hostLabel.setLayoutData(data); hostLabel.setToolTipText(Messages.getString("InstallationTab.2")); //$NON-NLS-1$ + hostLabel.setData(".uid", "InstallationTab.hostLabel"); //$NON-NLS-1$ //$NON-NLS-2$ hostPath = new Text(projComp, SWT.BORDER); data = new GridData(GridData.FILL_HORIZONTAL); hostPath.setLayoutData(data); hostPath.setToolTipText(Messages.getString("InstallationTab.2")); //$NON-NLS-1$ + hostPath.setData(".uid", "InstallationTab.hostPath"); //$NON-NLS-1$ //$NON-NLS-2$ hostPath.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { updatePULabel(); @@ -132,6 +134,7 @@ }); hostBrowse = createPushButton(projComp, Messages.getString("InstallationTab.3"), null); //$NON-NLS-1$ + hostBrowse.setData(".uid", "InstallationTab.hostBrowse"); //$NON-NLS-1$ //$NON-NLS-2$ hostBrowse.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { @@ -156,11 +159,13 @@ data.horizontalSpan = 2; targetLabel.setLayoutData(data); targetLabel.setToolTipText(Messages.getString("InstallationTab.6")); //$NON-NLS-1$ + targetLabel.setData(".uid", "InstallationTab.targetLabel"); //$NON-NLS-1$ //$NON-NLS-2$ targetPath = new Text(projComp, SWT.BORDER); data = new GridData(GridData.FILL_HORIZONTAL); targetPath.setLayoutData(data); targetPath.setToolTipText(Messages.getString("InstallationTab.6")); //$NON-NLS-1$ + targetPath.setData(".uid", "InstallationTab.targetPath"); //$NON-NLS-1$ //$NON-NLS-2$ targetPath.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { updateLaunchConfigurationDialog(); @@ -174,6 +179,7 @@ data.horizontalSpan = 2; forceInstall.setLayoutData(data); forceInstall.setToolTipText(Messages.getString("InstallationTab.8")); //$NON-NLS-1$ + forceInstall.setData(".uid", "InstallationTab.forceInstall"); //$NON-NLS-1$ //$NON-NLS-2$ forceInstall.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { updateLaunchConfigurationDialog(); @@ -211,7 +217,7 @@ data.horizontalSpan = 1; driveLabel.setLayoutData(data); driveLabel.setToolTipText(Messages.getString("InstallationTab.12")); //$NON-NLS-1$ - + driveLabel.setData(".uid", "InstallationTab.driveLabel"); //$NON-NLS-1$ //$NON-NLS-2$ drive = new Combo(installerUIGroup.getGroup(), SWT.READ_ONLY); for (int i=0; i getUsableBuildConfigs() { for (ISymbianSDK sdk : SDKCorePlugin.getSDKManager().getSDKList()) { List contexts = sdk.getUnfilteredBuildConfigurations(); - if (contexts.size() > 0) - return contexts; + if (contexts.size() > 0) { + return contexts.subList(0, Math.min(contexts.size(), 8)); + } } TestCase.fail("No installed SDKs provide build configurations"); - return Collections.EMPTY_LIST; + return Collections.emptyList(); } } diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestBSFView.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestBSFView.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestBSFView.java Sun Dec 06 20:47:07 2009 -0600 @@ -52,7 +52,7 @@ } public Collection getMacros() { - return Collections.EMPTY_LIST ; + return Collections.emptyList() ; } public IViewParserConfiguration getViewParserConfiguration() { diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelProvider.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelProvider.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelProvider.java Sun Dec 06 20:47:07 2009 -0600 @@ -73,6 +73,7 @@ /* (non-Javadoc) * @see com.nokia.carbide.cpp.epoc.engine.tests.BaseTest#setUp() */ + @SuppressWarnings("unchecked") @Override protected void setUp() throws Exception { super.setUp(); diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelsAndViews.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelsAndViews.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestModelsAndViews.java Sun Dec 06 20:47:07 2009 -0600 @@ -28,7 +28,6 @@ import com.nokia.carbide.cpp.epoc.engine.preprocessor.IDefine; import com.nokia.carbide.cpp.epoc.engine.preprocessor.IViewFilter; import com.nokia.carbide.cpp.epoc.engine.tests.model.dummy.DummyModel; -import com.nokia.carbide.cpp.epoc.engine.tests.model.dummy.IDummyModel; import com.nokia.carbide.cpp.epoc.engine.tests.model.dummy.IDummyView; import com.nokia.carbide.internal.api.cpp.epoc.engine.dom.IASTTranslationUnit; import com.nokia.carbide.internal.cpp.epoc.engine.model.ViewASTBase; @@ -67,7 +66,7 @@ } public Collection getMacros() { - return Collections.EMPTY_LIST; + return Collections.emptyList(); } public IViewParserConfiguration getViewParserConfiguration() { @@ -148,7 +147,7 @@ assertEquals(model, view.getModel()); // ensure model knows - IView[] views = model.getViews(); + IView[] views = model.getViews(); assertEquals(1, views.length); assertEquals(view, views[0]); diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestPKGView.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestPKGView.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestPKGView.java Sun Dec 06 20:47:07 2009 -0600 @@ -23,6 +23,7 @@ import com.nokia.carbide.cpp.epoc.engine.preprocessor.*; import com.nokia.carbide.internal.api.cpp.epoc.engine.model.pkg.*; import com.nokia.carbide.internal.cpp.epoc.engine.model.pkg.PKGView; +import com.nokia.cpp.internal.api.utils.core.HostOS; import com.nokia.cpp.internal.api.utils.core.Logging; import org.eclipse.core.runtime.*; @@ -67,7 +68,7 @@ "{\"c:\\users\\E0192828\\back.txt\", \"c:\\users\\E0FG\\front.txt\"}-\"sp ac es.txt\"\r\n" + "\"c:\\users\\E0192828\\back.txt\" - \"sp ac es.txt\""; - private static final Map lang2SrcFileMap = new HashMap(); + private static final Map lang2SrcFileMap = new HashMap(); static { for (String[] lang2SrcFileSpec : LANG_TO_SRC_FILES) { lang2SrcFileMap.put(lang2SrcFileSpec[0], lang2SrcFileSpec[1]); @@ -85,7 +86,7 @@ @Override protected void setUp() throws Exception { super.setUp(); - this.path = new Path("c:\\symbian\\9.4\\epoc32\\tools\\Test.PKG"); + this.path = new Path(getTokenAbsolutePath()).append("/symbian/9.4/epoc32/tools/Test.PKG"); config = new IViewConfiguration() { @@ -94,7 +95,7 @@ } public Collection getMacros() { - return Collections.EMPTY_LIST ; + return Collections.emptyList() ; } public IViewParserConfiguration getViewParserConfiguration() { @@ -139,24 +140,24 @@ // first install file is language dependent IPKGInstallFile installFile = installFileList.get(0); - assertEquals(new Path(LANG_DEST_FILE), installFile.getDestintationFile()); + assertEquals(HostOS.createPathFromString(LANG_DEST_FILE), installFile.getDestintationFile()); List langs = view.getLanguages(); assertEquals(2, langs.size()); Map sourceFiles = installFile.getSourceFiles(); for (EPKGLanguage lang : langs) { IPath srcFilePath = sourceFiles.get(lang); String srcFile = lang2SrcFileMap.get(lang.getCode()); - assertEquals(new Path(srcFile), srcFilePath); + assertEquals(HostOS.createPathFromString(srcFile), srcFilePath); } // second install file is language independent installFile = installFileList.get(1); - assertEquals(new Path(NO_LANG_DEST_FILE), installFile.getDestintationFile()); + assertEquals(HostOS.createPathFromString(NO_LANG_DEST_FILE), installFile.getDestintationFile()); sourceFiles = installFile.getSourceFiles(); assertEquals(1, sourceFiles.size()); assertTrue(sourceFiles.containsKey(EPKGLanguage.INDEPENDENT)); IPath srcFilePath = sourceFiles.get(EPKGLanguage.INDEPENDENT); - assertEquals(new Path(NO_LANG_SRC_FILE), srcFilePath); + assertEquals(HostOS.createPathFromString(NO_LANG_SRC_FILE), srcFilePath); assertEquals(1, installFile.getOptions().size()); assertEquals(NO_LANG_OPTION, installFile.getOptions().get(0)); @@ -186,7 +187,7 @@ IPath destintationFile = conditionalInstallFile.getDestintationFile(); assertTrue(destintationFile.isEmpty()); assertEquals(1, conditionalInstallFile.getSourceFiles().size()); - assertEquals(new Path(CONDITIONAL_SRC_FILE), conditionalInstallFile.getSourceFiles().get(EPKGLanguage.INDEPENDENT)); + assertEquals(HostOS.createPathFromString(CONDITIONAL_SRC_FILE), conditionalInstallFile.getSourceFiles().get(EPKGLanguage.INDEPENDENT)); assertEquals(2, conditionalInstallFile.getOptions().size()); commitTest(view, modelText); @@ -199,9 +200,9 @@ // fully create and add a language independent install file statement IPKGInstallFile installFile1 = view.createInstallFile(null); - installFile1.getSourceFiles().put(EPKGLanguage.INDEPENDENT, new Path(NO_LANG_SRC_FILE)); + installFile1.getSourceFiles().put(EPKGLanguage.INDEPENDENT, HostOS.createPathFromString(NO_LANG_SRC_FILE)); installFile1.getOptions().add(NO_LANG_OPTION); - installFile1.setDestinationFile(new Path(NO_LANG_DEST_FILE)); + installFile1.setDestinationFile(HostOS.createPathFromString(NO_LANG_DEST_FILE)); view.addInstallFile(installFile1); // create a language dependent install file and modify after add @@ -209,9 +210,9 @@ view.addInstallFile(installFile2); for (String[] lang2SrcFileArray : LANG_TO_SRC_FILES) { installFile2.getSourceFiles().put( - EPKGLanguage.forLangCode(lang2SrcFileArray[0]), new Path(lang2SrcFileArray[1])); + EPKGLanguage.forLangCode(lang2SrcFileArray[0]), HostOS.createPathFromString(lang2SrcFileArray[1])); } - installFile2.setDestinationFile(new Path(LANG_DEST_FILE)); + installFile2.setDestinationFile(HostOS.createPathFromString(LANG_DEST_FILE)); // NOTE: the newlines are lost and shouldn't be //String modifiedModelText = modelText + NO_LANG_INSTALL_FILE_STATEMENT + "\n" + LANG_INSTALL_FILE_STATEMENT; @@ -244,13 +245,13 @@ IPKGInstallFile file = installFiles[0]; assertEquals(2, file.getSourceFiles().size()); - assertEquals(new Path("c:\\users\\E0192828\\back.txt"), file.getSourceFiles().get(EPKGLanguage.EN)); - assertEquals(new Path("c:\\users\\E0FG\\front.txt"), file.getSourceFiles().get(EPKGLanguage.FR)); + assertEquals(new Path("c:/users/E0192828/back.txt"), file.getSourceFiles().get(EPKGLanguage.EN)); + assertEquals(new Path("c:/users/E0FG/front.txt"), file.getSourceFiles().get(EPKGLanguage.FR)); assertEquals(new Path("sp ac es.txt"), file.getDestintationFile()); file = installFiles[1]; assertEquals(1, file.getSourceFiles().size()); - assertEquals(new Path("c:\\users\\E0192828\\back.txt"), file.getSourceFiles().get(EPKGLanguage.INDEPENDENT)); + assertEquals(new Path("c:/users/E0192828/back.txt"), file.getSourceFiles().get(EPKGLanguage.INDEPENDENT)); assertEquals(new Path("sp ac es.txt"), file.getDestintationFile()); commitTest(view, ESCAPABLE_FILES); diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestStandaloneModelProvider.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestStandaloneModelProvider.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestStandaloneModelProvider.java Sun Dec 06 20:47:07 2009 -0600 @@ -70,6 +70,7 @@ /* (non-Javadoc) * @see com.nokia.carbide.cpp.epoc.engine.tests.BaseTest#setUp() */ + @SuppressWarnings("unchecked") @Override protected void setUp() throws Exception { super.setUp(); diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewChanging.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewChanging.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewChanging.java Sun Dec 06 20:47:07 2009 -0600 @@ -62,7 +62,7 @@ } public Collection getMacros() { - return Collections.EMPTY_LIST; + return Collections.emptyList(); } public IViewParserConfiguration getViewParserConfiguration() { diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDOMSynchronizer.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDOMSynchronizer.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDOMSynchronizer.java Sun Dec 06 20:47:07 2009 -0600 @@ -192,7 +192,7 @@ } public Pair getInsertAnchors() { - return new Pair(null, null); + return new Pair(null, null); } }; } @@ -212,7 +212,7 @@ } public Pair getInsertAnchors() { - return new Pair(before, after); + return new Pair(before, after); } }; } diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDataCache.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDataCache.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/model/TestViewDataCache.java Sun Dec 06 20:47:07 2009 -0600 @@ -61,7 +61,7 @@ private File projectDir; // Try to wait long enough to ensure the timestamp-based check will detect a change - private static final long FS_TIME_RESOLUTION = ViewDataCache.ModelFileTimestampCollection.MIN_TIMESTAMP_RESOLUTION; + private static final long FS_TIME_RESOLUTION = FileUtils.getMinimumFileTimestampResolution(null); /* (non-Javadoc) * @see com.nokia.carbide.cpp.epoc.engine.tests.BaseTest#setUp() diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/workspace/TestWorkspaceModelProvider.java --- a/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/workspace/TestWorkspaceModelProvider.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine.tests/src/com/nokia/carbide/cpp/epoc/engine/tests/workspace/TestWorkspaceModelProvider.java Sun Dec 06 20:47:07 2009 -0600 @@ -471,7 +471,8 @@ */ public void testExternalModification_bug3557() throws Exception { // make the mmp - IPath fullMmpPath = new Path("c:/tempmodel.mmp"); + IPath fullMmpPath = new Path(getTokenAbsolutePath()).append("tempmodel.mmp"); + fullMmpPath.toFile().getParentFile().mkdirs(); String text = "START BITMAP foo.mbm\n"+ diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/preprocessor/DefaultTranslationUnitProvider.java --- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/preprocessor/DefaultTranslationUnitProvider.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/cpp/epoc/engine/preprocessor/DefaultTranslationUnitProvider.java Sun Dec 06 20:47:07 2009 -0600 @@ -36,7 +36,7 @@ import com.nokia.cpp.internal.api.utils.core.*; public class DefaultTranslationUnitProvider implements ITranslationUnitProvider { - private static DefaultTranslationUnitProvider instance; + private static DefaultTranslationUnitProvider instance = new DefaultTranslationUnitProvider(); // not final or static for debugging private boolean DUMP = false; @@ -62,9 +62,6 @@ * @return instance, never null */ public static DefaultTranslationUnitProvider getInstance() { - if (instance == null) { - instance = new DefaultTranslationUnitProvider(); - } return instance; } diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/ViewDataCache.java --- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/ViewDataCache.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/ViewDataCache.java Sun Dec 06 20:47:07 2009 -0600 @@ -218,13 +218,6 @@ public static class ModelFileTimestampCollection { /** - * The minimum timestamp resolution for a file in ms (based on heuristics for the OS). - * VFAT on Win32 uses 2 second increments. Linux ext2/3 uses 1 second resolution, - * until ext4, where it becomes nanoseconds. - * Assume the worst format in all cases. - */ - public static final long MIN_TIMESTAMP_RESOLUTION = HostOS.IS_WIN32 ? 2000 : 1000; - /** * Delay in ms between successive checks of the filesystem, to avoid wasting time * when such checks are slow, and in cases where it's unlikely the human will edit files * fast enough to care. @@ -424,6 +417,7 @@ * @return * @throws CoreException */ + @SuppressWarnings("unchecked") private Data getViewData(IPath modelPath, IViewConfiguration configuration, ViewConfigState state, ViewConfigKey key) throws CoreException { Data data; diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/pkg/PKGView.java --- a/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/pkg/PKGView.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.epoc.engine/src/com/nokia/carbide/internal/cpp/epoc/engine/model/pkg/PKGView.java Sun Dec 06 20:47:07 2009 -0600 @@ -366,7 +366,7 @@ IASTPKGInstallFileStatement installFileStmt = (IASTPKGInstallFileStatement) node; PKGInstallFile installFile = new PKGInstallFile(installFileStmt, parentNode); IASTLiteralTextNode targetFile = installFileStmt.getTargetFile(); - installFile.setDestinationFile(new Path(TextUtils.unquote(targetFile + installFile.setDestinationFile(HostOS.createPathFromString(TextUtils.unquote(targetFile .getStringValue(), '"'))); IASTListNode optionNodes = installFileStmt .getOptions(); @@ -388,7 +388,7 @@ } else { for (IASTLiteralTextNode sourceNode : sourceNodes) { sourceFiles.put(languages.get(languageIndex++), - new Path(TextUtils.unquote(sourceNode + HostOS.createPathFromString(TextUtils.unquote(sourceNode .getStringValue(), '"'))); } } @@ -397,7 +397,7 @@ // always return // single source // node - sourceFiles.put(EPKGLanguage.INDEPENDENT, new Path(TextUtils + sourceFiles.put(EPKGLanguage.INDEPENDENT, HostOS.createPathFromString(TextUtils .unquote(sourceNodes.get(0).getStringValue(), '"'))); } if (parentNode == null) @@ -460,13 +460,13 @@ for (IASTLiteralTextNode sourceNode : sourceNodes) { // remove the leading '@' sourceFiles.put(languages.get(languageIndex++), - new Path(TextUtils.unquote(sourceNode.getStringValue().substring(1), '"'))); + HostOS.createPathFromString(TextUtils.unquote(sourceNode.getStringValue().substring(1), '"'))); } } } else { // language independent Check.checkContract(sourceNodes.size() == 1); // parser should // always return single source node. remove the leading '@'. - sourceFiles.put(EPKGLanguage.INDEPENDENT, new Path(TextUtils + sourceFiles.put(EPKGLanguage.INDEPENDENT, HostOS.createPathFromString(TextUtils .unquote(sourceNodes.get(0).getStringValue().substring(1), '"'))); } diff -r 1f0a706d24b2 -r 20fd716f8eaa project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/project/core/updater/SymbianBuildParser.java --- a/project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/project/core/updater/SymbianBuildParser.java Sun Dec 06 20:41:47 2009 -0600 +++ b/project/com.nokia.carbide.cpp.project.core/src/com/nokia/carbide/cpp/internal/project/core/updater/SymbianBuildParser.java Sun Dec 06 20:47:07 2009 -0600 @@ -73,7 +73,7 @@ private static final String MACROS = "macros"; //$NON-NLS-1$ private static final String MBM = "mbm"; //$NON-NLS-1$ private static final String MIF = "mif"; //$NON-NLS-1$ - private static final String DEFAULT_TARGET = "untitled.exe"; //$NON-NLS-1$ + private static final String DEFAULT_TARGET = HostOS.IS_WIN32 ? "untitled.exe" : "untitled"; //$NON-NLS-1$ //$NON-NLS-2$ private static final String DEFAULT_TARGETTYPE = "exe"; //$NON-NLS-1$ private static final String[] plaformMacros = { "GCC32", "EPOC32", "MARM", "EABI", "GENERIC_MARM", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ diff -r 1f0a706d24b2 -r 20fd716f8eaa templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf Sun Dec 06 20:41:47 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/group/bld.inf Sun Dec 06 20:47:07 2009 -0600 @@ -16,7 +16,7 @@ gnumakefile icons_scalable_dc.mk -$(buildHelpPrefix)gnumakefile ..\$(helpDir)\build_help.mk +$(buildHelpPrefix)gnumakefile ../$(helpDir)/build_help.mk $(baseName).mmp diff -r 1f0a706d24b2 -r 20fd716f8eaa templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/help/build_help.mk --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/help/build_help.mk Sun Dec 06 20:41:47 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-PlatsecApp/help/build_help.mk Sun Dec 06 20:47:07 2009 -0600 @@ -18,7 +18,7 @@ MAKMAKE : $(baseName)_$(uid3).hlp $(baseName)_$(uid3).hlp : $(baseName).xml $(baseName).cshlp Custom.xml - cshlpcmp $(baseName).cshlp + $(cshlpcmp) $(baseName).cshlp ifeq (WINSCW,$(findstring WINSCW, $(PLATFORM))) md $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help copy $(baseName)_$(uid3).hlp $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help diff -r 1f0a706d24b2 -r 20fd716f8eaa templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf Sun Dec 06 20:41:47 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/group/bld.inf Sun Dec 06 20:47:07 2009 -0600 @@ -16,7 +16,7 @@ gnumakefile icons_scalable_dc.mk -$(buildHelpPrefix)gnumakefile ..\$(helpDir)\build_help.mk +$(buildHelpPrefix)gnumakefile ../$(helpDir)/build_help.mk $(baseName).mmp diff -r 1f0a706d24b2 -r 20fd716f8eaa templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/help/build_help.mk --- a/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/help/build_help.mk Sun Dec 06 20:41:47 2009 -0600 +++ b/templates/com.nokia.carbide.cpp.templates/templates/projecttemplates/S60-TouchUIApplication/help/build_help.mk Sun Dec 06 20:47:07 2009 -0600 @@ -18,7 +18,7 @@ MAKMAKE : $(baseName)_$(uid3).hlp $(baseName)_$(uid3).hlp : $(baseName).xml $(baseName).cshlp Custom.xml - cshlpcmp $(baseName).cshlp + $(cshlpcmp) $(baseName).cshlp ifeq (WINSCW,$(findstring WINSCW, $(PLATFORM))) md $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help copy $(baseName)_$(uid3).hlp $(EPOCROOT)epoc32\$(PLATFORM)\c\resource\help