[Esbox-commits] r1203 - in branches/work_Ed: org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests 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
eswartz at garage.maemo.org
eswartz at garage.maemo.org
Thu Feb 5 22:48:59 EET 2009
Author: eswartz
Date: 2009-02-05 22:49:00 +0200 (Thu, 05 Feb 2009)
New Revision: 1203
Modified:
branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java
branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java
branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java
branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java
branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java
branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
branches/work_Ed/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java
Log:
Fix bugs related to manually created targets
-- make sure we detect the platform & version properly in all cases and don't just guess based on the target name
-- exclude unrecognized platforms from package installation
-- detect a failure to add a repository that satisfies missing dependencies
-- make sure new SB1 target wizard allows finish only when fields are filled in
-- fix bug that devkits are not recorded properly in new SB1 target wizard
-- fix SB1 tests that don't expect "None" devkits
Modified: branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/AllTests.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB1SDKProvider.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSB2SDKProvider.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.maemosdk.tests/src/org/maemo/esbox/scratchbox/tests/TestSb1SDKTarget.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/command/ShowTargetCommand.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/core/Scratchbox1SDK.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb1/src/org/maemo/esbox/internal/scratchbox/sb1/ui/wizard/NewScratchbox1TargetWizard.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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_Ed/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java
===================================================================
--- branches/work_Ed/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java 2009-02-05 15:57:18 UTC (rev 1202)
+++ branches/work_Ed/org.maemo.esbox.scratchbox.sb2/src/org/maemo/esbox/internal/scratchbox/sb2/core/Scratchbox2SDK.java 2009-02-05 20:49:00 UTC (rev 1203)
@@ -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