[Esbox-commits] r1208 - in branches/work_Petr: org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core

baranov at garage.maemo.org baranov at garage.maemo.org
Mon Feb 9 09:00:30 EET 2009


Author: baranov
Date: 2009-02-09 09:00:24 +0200 (Mon, 09 Feb 2009)
New Revision: 1208

Modified:
   branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java
   branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java
   branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java
   branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java
   branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestGdbQemuCommand.java
   branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java
   branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
   branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
   branches/work_Petr/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java
Log:
Merged rev 1206:1207 from trunk.

Modified: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -24,11 +24,11 @@
 				"Test for org.maemo.esbox.scratchbox.tests");
 		suite.addTest(new JUnit4TestAdapter(TestOProfileValgrindSupport.class));
 		//$JUnit-BEGIN$
+		suite.addTestSuite(TestSB1SDKProvider.class);
+		suite.addTestSuite(TestSB2SDKProvider.class);
 		suite.addTestSuite(TestSB2ProcessLauncher.class);
 		suite.addTestSuite(TestSB1ProcessLauncher.class);
-		suite.addTestSuite(TestSB2SDKProvider.class);
 		suite.addTestSuite(TestProcessLauncher.class);
-		suite.addTestSuite(TestSB1SDKProvider.class);
 		suite.addTestSuite(TestSb1SDKTarget.class);
 		//$JUnit-END$
 		return suite;

Modified: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -10,18 +10,26 @@
  *******************************************************************************/
 package org.maemo.esbox.scratchbox.tests;
 
+import java.util.List;
+
 import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
 import org.junit.Test;
 import org.maemo.esbox.internal.scratchbox.sb1.provider.Scratchbox1SDKProvider;
 import org.maemo.esbox.scratchbox.core.sdk.IScratchboxSDKTarget;
 import org.maemo.mica.common.core.MicaException;
 import org.maemo.mica.common.core.machine.ILocalMachine;
-import org.maemo.mica.common.core.sdk.*;
+import org.maemo.mica.common.core.sdk.ISDK;
+import org.maemo.mica.common.core.sdk.ISDKPlatform;
+import org.maemo.mica.common.core.sdk.ISDKProvider;
+import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.core.sdk.SDKFactory;
 import org.maemo.mica.common.core.tests.core.BaseTest;
+import org.maemo.mica.maemosdk.core.MaemoSDKPlatform;
+import org.maemo.mica.maemosdk.core.MaemoSDKPlatformEngine;
 
-import java.util.List;
-
 /**
  * If SB1 is installed, make sure its SDKs and targets
  * are properly detected, and that it launches processes
@@ -81,7 +89,7 @@
 			assertTrue(root.toPortableString().startsWith("/scratchbox/"));
 		}
 	}
-	
+
 	@Test
 	public void testSB1SDKTargets() throws Exception {
 		if (sb1Provider == null)
@@ -94,8 +102,12 @@
 			assertTrue(targets.length > 0);
 			for (ISDKTarget target : targets) {
 				_testSDKTarget(target);
-				_testSDKTargetFileConvs(target);
-				_testSDKTargetFileAccess(target);
+				// only do tests on real targets
+				if (!ISDKPlatform.NAME_UNKNOWN.equals(target.getPlatform().getName())) {
+					_testSDKTargetFileConvs(target);
+					_testSDKTargetFileAccess(target);
+					_testSDKTargetPlatform(target);
+				}
 			}
 		}
 	}
@@ -200,6 +212,22 @@
 		
 	}
 
+	/**
+	 * @param target
+	 */
+	private void _testSDKTargetPlatform(ISDKTarget target) {
+		ISDKPlatform platform = target.getPlatform();
+		assertNotNull(platform);
+		
+		// at this point, the platform is assumed to have been guessed from the target name
+		
+		// better be something recognized and not "test"
+		if (!ISDKPlatform.NAME_UNKNOWN.equals(platform.getName())) {
+			MaemoSDKPlatform maemoPlatform = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform.getName());
+			assertNotNull("Should be registered platform: " + platform.getName(), maemoPlatform);
+			assertTrue("Should be compatible version: " + platform.getVersion(), 
+					platform.getVersion().startsWith(maemoPlatform.getVersion()));
+		}
+	}
 
-
 }

Modified: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -18,6 +18,8 @@
 import org.maemo.mica.common.core.MicaException;
 import org.maemo.mica.common.core.machine.ILocalMachine;
 import org.maemo.mica.common.core.sdk.*;
+import org.maemo.mica.maemosdk.core.MaemoSDKPlatform;
+import org.maemo.mica.maemosdk.core.MaemoSDKPlatformEngine;
 
 import java.util.List;
 
@@ -87,10 +89,30 @@
 				if (target.getName().contains("DELETEME") || target.getName().contains("bora"))
 					continue;
 				_testSDKTarget(target);
+				_testSDKTargetPlatform(target);
 			}
 		}
 	}
 
+	/**
+	 * @param target
+	 */
+	private void _testSDKTargetPlatform(ISDKTarget target) {
+		ISDKPlatform platform = target.getPlatform();
+		assertNotNull(platform);
+		
+		// at this point, the platform is assumed to have been guessed from the target name;
+		// the version may also be set differently than the built-in idea
+		
+		// better be something recognized and not "test"
+		if (!ISDKPlatform.NAME_UNKNOWN.equals(platform.getName())) {
+			MaemoSDKPlatform maemoPlatform = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform.getName());
+			assertNotNull("Should be registered platform: " + platform.getName(), maemoPlatform);
+			assertTrue("Should be compatible version: " + platform.getVersion(), 
+					platform.getVersion().startsWith(maemoPlatform.getVersion()));
+		}
+	}
+
 	private void _testSDKTarget(ISDKTarget target) {
 		System.out.println("found sb2 target: " + target);
 

Modified: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -75,7 +75,7 @@
 	
 	public static void assertIsItem(List<String> list, String item) {
 		assertNotNull(item);
-		assertTrue(list.contains(item));
+		assertTrue(item, list.contains(item));
 	}
 	
 

Modified: branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestGdbQemuCommand.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestGdbQemuCommand.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/commands/TestGdbQemuCommand.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -29,11 +29,11 @@
 				assertTrue(pattern.contains("${PORT}"));
 			} 
 			if (sdkTarget.getArchitecture().equals(IScratchboxSDKTarget.ARCHITECTURE_ARMEL)) {
-				assertTrue(pattern.contains("qemu-arm"));
+				assertTrue(pattern, pattern.contains("qemu-arm"));
 				if (pattern.contains("qemu-arm-0.7"))
-					assertFalse(pattern.contains("${PORT}"));
+					assertFalse(pattern, pattern.contains("${PORT}"));
 				else if (pattern.contains("qemu-arm-0.8"))
-					assertTrue(pattern.contains("${PORT}"));
+					assertTrue(pattern, pattern.contains("${PORT}"));
 			}
 			System.out.println("pattern of gdb-qemu for " + sdkTarget + " is " + pattern);
 		}

Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -84,11 +84,15 @@
 		target.setCompiler(compiler);
 
 		String devkitsField = targetInfo.get(1);
-		devkitsField = devkitsField.substring(devkitsField.indexOf(":") + 1);
-		StringTokenizer tokens = new StringTokenizer(devkitsField);
 		List<String> devkits = new ArrayList<String>();
-		while (tokens.hasMoreTokens()) {
-			devkits.add(tokens.nextToken());
+		
+		// in a hand-initialized target, the string may be "none"
+		devkitsField = devkitsField.substring(devkitsField.indexOf(":") + 1).trim();
+		if (!devkitsField.equals("none")) {
+			StringTokenizer tokens = new StringTokenizer(devkitsField);
+			while (tokens.hasMoreTokens()) {
+				devkits.add(tokens.nextToken());
+			}
 		}
 		target.setDevkits(devkits);
 

Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -373,19 +373,11 @@
 		String version = ISDKPlatform.VERSION_UNKNOWN;
 		if (idx >= 1) {
 			String platform = target.substring(0, idx);
-			// the 'SDK' one is a hard nut to crack
-			if (!platform.equalsIgnoreCase("SDK")) {
-				platformName = platform.substring(0, 1).toUpperCase()
-						+ platform.substring(1).toLowerCase();
-
-				MaemoSDKPlatform info = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platformName);
-				if (info != null) { 
-					return info;
-				}
-			} else {
-				// TODO: look at key files or versions to determine the
-				// platform from the SDK target contents
+			MaemoSDKPlatform info = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform);
+			if (info != null) { 
+				return info;
 			}
+			// else, it's unknown, and scan later
 		}
 		return new BaseSDKPlatform(platformName, version);
 	}

Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -26,6 +26,7 @@
 import org.maemo.mica.common.core.MicaException;
 import org.maemo.mica.common.core.ErrorLogger;
 import org.maemo.mica.common.core.sdk.ISDKTarget;
+import org.maemo.mica.common.core.sdk.SDKFactory;
 import org.maemo.mica.internal.api.maemosdk.ui.wizards.sbrsh.SbrshConfigurationNFSServer;
 import org.maemo.mica.internal.api.maemosdk.ui.wizards.sbrsh.SbrshConfigurationTargetDevice;
 
@@ -104,7 +105,8 @@
 		if (sdk == null)
 			return false;
 
-		boolean nonCustomRootstrap = true;
+		boolean targetNamed = ((TargetWizardNamePage) targetNamePage).isPageComplete();
+		boolean devkitsChosen = ((TargetWizardDevkitsPage) devkitsName).isPageComplete();
 		boolean cpuPage = ((TargetWizardCPUMethod) cpuMethodName).canFinish();
 		boolean configDevice = ((SbrshConfigurationTargetDevice) sbrshConfigTargetDevice)
 				.canFinish();
@@ -113,7 +115,7 @@
 		boolean sbrshConfigAccepted = ((TargetWizardCPUMethod) cpuMethodName)
 				.getSbrshConfigure();
 
-		if (!sbrshConfigAccepted && (nonCustomRootstrap || cpuPage))
+		if (!sbrshConfigAccepted && (targetNamed && devkitsChosen && cpuPage))
 			return true;
 		if (sbrshConfigAccepted && NFSServer && configDevice)
 			return true;
@@ -144,6 +146,9 @@
 		if (!setupTargetFromScratch())
 			return false;
 
+		// find the new target
+		SDKFactory.getInstance().refresh(false);
+		
 		boolean sbrshConfigSelected = ((TargetWizardCPUMethod) cpuMethodName)
 				.getSbrshConfigure();
 		if (sbrshConfigSelected) {
@@ -165,13 +170,14 @@
 			String devkits = getDevkitsSelected();
 			// ScratchboxFacade.getInstance().createTarget((IScratchbox1SDK)
 			// sdk, targetName, compilerName, devkits, cpuMethod);
-			sdk.createTarget(targetName, compilerName, devkits, cpuMethod);
+			if (!sdk.createTarget(targetName, compilerName, devkits, cpuMethod))
+				return false;
 
 			createdTarget = sdk.findSDKTarget(targetName);
 			return true;
 		} catch (MicaException e) {
 			ErrorLogger errorLogger = Activator.getErrorLogger();
-			errorLogger.logAndShowError("Cannot get create target "
+			errorLogger.logAndShowError("Cannot create target "
 					+ targetName, e);
 			return false;
 		}
@@ -205,13 +211,14 @@
 	 */
 	private String getDevkitsSelected() {
 		String devkits = "";
-		TableItem devkitsSelected[] = ((TargetWizardDevkitsPage) devkitsName).table
-				.getSelection();
+		TableItem devkitItems[] = ((TargetWizardDevkitsPage) devkitsName).table.getItems();
 		String separator = "";
-		for (int i = 0; i < devkitsSelected.length; i++) {
-			TableItem devkit = devkitsSelected[i];
-			devkits += separator + devkit.getText();
-			separator = ":";
+		for (int i = 0; i < devkitItems.length; i++) {
+			TableItem devkit = devkitItems[i];
+			if (devkit.getChecked()) {
+				devkits += separator + devkit.getText();
+				separator = ":";
+			}
 		}
 		return devkits;
 	}

Modified: branches/work_Petr/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java
===================================================================
--- branches/work_Petr/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java	2009-02-06 15:30:23 UTC (rev 1207)
+++ branches/work_Petr/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java	2009-02-09 07:00:24 UTC (rev 1208)
@@ -40,6 +40,8 @@
 import org.maemo.mica.common.core.sdk.ISDKTarget;
 import org.maemo.mica.common.core.sdk.commands.ICommandAbstractor;
 import org.maemo.mica.internal.api.common.core.sdk.BaseSDKPlatform;
+import org.maemo.mica.maemosdk.core.MaemoSDKPlatform;
+import org.maemo.mica.maemosdk.core.MaemoSDKPlatformEngine;
 
 /**
  * @author baranov
@@ -267,17 +269,29 @@
 		Matcher matcher = TARGET_PLATFORM_VERSION_ARCHITECTURE_PATTERN
 				.matcher(target);
 		if (matcher.matches()) {
-			String name = matcher.group(1);
-			String platformName = name.substring(0, 1).toUpperCase()
-					+ name.substring(1).toLowerCase();
+			String platform = matcher.group(1);
+			
+			// else, it's unknown, and scan later
 			String versionInfo = matcher.group(2);
 			String version = ISDKPlatform.VERSION_UNKNOWN;
 			if (versionInfo.length() == 2)
 				version = versionInfo.substring(0, 1) + "."
 						+ versionInfo.substring(1, 2);
-			else if(version!=null)
-				version=versionInfo;
-			return new BaseSDKPlatform(platformName, version);
+			else
+				version = versionInfo;
+			
+			// check for recognized platform
+			MaemoSDKPlatform info = MaemoSDKPlatformEngine.getInstance().getPlatformForName(platform);
+			if (info != null) {
+				if (!ISDKPlatform.VERSION_UNKNOWN.equals(version)) {
+					return info.createWithVersion(version);
+				} else {
+					return info;
+				}
+			}
+			
+			// unknown platform
+			return new BaseSDKPlatform(ISDKPlatform.NAME_UNKNOWN, version);
 		} else {
 			return new BaseSDKPlatform(ISDKPlatform.NAME_UNKNOWN,
 					ISDKPlatform.VERSION_UNKNOWN);



More information about the Esbox-commits mailing list