From e5e5880a15828cf3d54471bdfd9b3da3bcdc6a01 Mon Sep 17 00:00:00 2001 From: Federico Fissore Date: Tue, 10 Mar 2015 17:42:14 +0100 Subject: [PATCH] HostDependentDownloadableContribution better handles Macosx --- .../app/debug/TargetPackageStub.java | 33 +++++++++ .../app/debug/TargetPlatformStub.java | 73 +++++++++++++++++++ .../app/debug/UploaderFactoryTest.java | 23 +++--- ...HostDependentDownloadableContribution.java | 17 ++--- 4 files changed, 123 insertions(+), 23 deletions(-) create mode 100644 app/src/processing/app/debug/TargetPackageStub.java create mode 100644 app/test/processing/app/debug/TargetPlatformStub.java diff --git a/app/src/processing/app/debug/TargetPackageStub.java b/app/src/processing/app/debug/TargetPackageStub.java new file mode 100644 index 000000000..b3dcd1d0e --- /dev/null +++ b/app/src/processing/app/debug/TargetPackageStub.java @@ -0,0 +1,33 @@ +package processing.app.debug; + +import java.util.Collection; +import java.util.Map; + +public class TargetPackageStub implements TargetPackage { + + private final String id; + + public TargetPackageStub(String id) { + this.id = id; + } + + @Override + public String getId() { + return id; + } + + @Override + public Map getPlatforms() { + return null; + } + + @Override + public Collection platforms() { + return null; + } + + @Override + public TargetPlatform get(String platform) { + return null; + } +} diff --git a/app/test/processing/app/debug/TargetPlatformStub.java b/app/test/processing/app/debug/TargetPlatformStub.java new file mode 100644 index 000000000..5dd52f6f5 --- /dev/null +++ b/app/test/processing/app/debug/TargetPlatformStub.java @@ -0,0 +1,73 @@ +package processing.app.debug; + +import processing.app.helpers.PreferencesMap; + +import java.io.File; +import java.util.Map; +import java.util.Set; + +public class TargetPlatformStub implements TargetPlatform { + + private final String id; + private final TargetPackage targetPackage; + + public TargetPlatformStub(String id, TargetPackage targetPackage) { + this.id = id; + this.targetPackage = targetPackage; + } + + @Override + public String getId() { + return id; + } + + @Override + public File getFolder() { + return null; + } + + @Override + public Map getBoards() { + return null; + } + + @Override + public PreferencesMap getCustomMenus() { + return null; + } + + @Override + public Set getCustomMenuIds() { + return null; + } + + @Override + public Map getProgrammers() { + return null; + } + + @Override + public PreferencesMap getProgrammer(String programmer) { + return null; + } + + @Override + public PreferencesMap getTool(String tool) { + return null; + } + + @Override + public PreferencesMap getPreferences() { + return null; + } + + @Override + public TargetBoard getBoard(String boardId) { + return null; + } + + @Override + public TargetPackage getContainerPackage() { + return targetPackage; + } +} diff --git a/app/test/processing/app/debug/UploaderFactoryTest.java b/app/test/processing/app/debug/UploaderFactoryTest.java index 566887272..d820e4ea7 100644 --- a/app/test/processing/app/debug/UploaderFactoryTest.java +++ b/app/test/processing/app/debug/UploaderFactoryTest.java @@ -5,26 +5,21 @@ import cc.arduino.packages.Uploader; import cc.arduino.packages.UploaderFactory; import cc.arduino.packages.uploaders.SSHUploader; import cc.arduino.packages.uploaders.SerialUploader; -import org.junit.Before; import org.junit.Test; import processing.app.AbstractWithPreferencesTest; +import processing.app.helpers.PreferencesMap; -import java.io.File; +import java.util.HashMap; import static org.junit.Assert.assertTrue; public class UploaderFactoryTest extends AbstractWithPreferencesTest { - private TargetPackage targetPackage; - - @Before - public void setUp() throws Exception { - targetPackage = new LegacyTargetPackage("arduino", new File(".", "hardware/arduino/")); - } - @Test public void shouldCreateAnInstanceOfSSHUploader() throws Exception { - TargetBoard board = targetPackage.getPlatforms().get("avr").getBoards().get("yun"); + TargetBoard board = new LegacyTargetBoard("yun", new PreferencesMap(new HashMap()), new TargetPlatformStub("id", new TargetPackageStub("id"))); + board.getPreferences().put("upload.via_ssh", "true"); + BoardPort boardPort = new BoardPort(); boardPort.setBoardName("yun"); boardPort.setAddress("192.168.0.1"); @@ -36,7 +31,9 @@ public class UploaderFactoryTest extends AbstractWithPreferencesTest { @Test public void shouldCreateAnInstanceOfBasicUploaderWhenSSHIsUnsupported() throws Exception { - TargetBoard board = targetPackage.getPlatforms().get("avr").getBoards().get("uno"); + TargetBoard board = new LegacyTargetBoard("uno", new PreferencesMap(new HashMap()), new TargetPlatformStub("id", new TargetPackageStub("id"))); + board.getPreferences().put("upload.via_ssh", "false"); + BoardPort boardPort = new BoardPort(); boardPort.setBoardName("myyun"); boardPort.setAddress("192.168.0.1"); @@ -48,7 +45,9 @@ public class UploaderFactoryTest extends AbstractWithPreferencesTest { @Test public void shouldCreateAnInstanceOfBasicUploaderWhenPortIsSerial() throws Exception { - TargetBoard board = targetPackage.getPlatforms().get("avr").getBoards().get("uno"); + TargetBoard board = new LegacyTargetBoard("uno", new PreferencesMap(new HashMap()), new TargetPlatformStub("id", new TargetPackageStub("id"))); + board.getPreferences().put("upload.via_ssh", "false"); + BoardPort boardPort = new BoardPort(); boardPort.setBoardName("Arduino Leonardo"); boardPort.setAddress("/dev/ttyACM0"); diff --git a/arduino-core/src/cc/arduino/packages/contributions/HostDependentDownloadableContribution.java b/arduino-core/src/cc/arduino/packages/contributions/HostDependentDownloadableContribution.java index e2dd6579a..b614a53b6 100644 --- a/arduino-core/src/cc/arduino/packages/contributions/HostDependentDownloadableContribution.java +++ b/arduino-core/src/cc/arduino/packages/contributions/HostDependentDownloadableContribution.java @@ -30,8 +30,7 @@ package cc.arduino.packages.contributions; import java.util.Properties; -public abstract class HostDependentDownloadableContribution extends - DownloadableContribution { +public abstract class HostDependentDownloadableContribution extends DownloadableContribution { public abstract String getHost(); @@ -53,25 +52,21 @@ public abstract class HostDependentDownloadableContribution extends if (osName.contains("Linux")) { if (osArch.contains("amd64")) { - // os.arch = amd64 return host.matches("x86_64-.*linux-gnu"); } else { - // 32 bit systems return host.matches("i[3456]86-.*linux-gnu"); } } if (osName.contains("Windows")) { - if (host.matches("i[3456]86-.*mingw32")) - return true; - if (host.matches("i[3456]86-.*cygwin")) - return true; + return host.matches("i[3456]86-.*mingw32") || host.matches("i[3456]86-.*cygwin"); } if (osName.contains("Mac")) { - if (osArch.contains("86")) { - if (host.matches("i[3456]86-apple-darwin.*")) - return true; + if (osArch.contains("x86_64")) { + return host.matches("x86_64-apple-darwin.*") || host.matches("i[3456]86-apple-darwin.*"); + } else { + return host.matches("i[3456]86-apple-darwin.*"); } }