mirror of
https://github.com/arduino/Arduino.git
synced 2024-11-29 10:24:12 +01:00
Make SystemProfilerParser.extractVIDAndPID() static
There is no need to instantiate a SystemProfilerParser object each time extractVIDAndPID is invoked. Added also `synchronized` keword to avoid reentrance problems if the method is being used in multiple threads.
This commit is contained in:
parent
9f5efe210a
commit
28ad89d694
@ -33,50 +33,51 @@ import org.junit.Test;
|
||||
import processing.app.TestHelper;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static processing.app.macosx.SystemProfilerParser.extractVIDAndPID;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class SystemProfilerParserTest {
|
||||
|
||||
@Test
|
||||
public void shouldCorrectlyParse() throws Exception {
|
||||
String output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output.txt"));
|
||||
String output = getFileContent("system_profiler_output.txt");
|
||||
assertEquals("0X2341_0X0044", extractVIDAndPID(output, "/dev/cu.usbmodemfa121"));
|
||||
assertEquals("0X2341_0X0044", extractVIDAndPID(output, "/dev/tty.usbmodemfa121"));
|
||||
|
||||
assertEquals("0X2341_0X0044", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodemfa121"));
|
||||
assertEquals("0X2341_0X0044", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodemfa121"));
|
||||
output = getFileContent("system_profiler_output2.txt");
|
||||
assertEquals("0X2341_0X8036", extractVIDAndPID(output, "/dev/cu.usbmodemfd131"));
|
||||
assertEquals("0X2341_0X8036", extractVIDAndPID(output, "/dev/tty.usbmodemfd131"));
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output2.txt"));
|
||||
output = getFileContent("system_profiler_output3.txt");
|
||||
assertEquals("0X2341_0X8041", extractVIDAndPID(output, "/dev/cu.usbmodemfd121"));
|
||||
assertEquals("0X2341_0X8041", extractVIDAndPID(output, "/dev/tty.usbmodemfd121"));
|
||||
|
||||
assertEquals("0X2341_0X8036", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodemfd131"));
|
||||
assertEquals("0X2341_0X8036", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodemfd131"));
|
||||
output = getFileContent("system_profiler_output4.txt");
|
||||
assertEquals("0X2341_0X0041", extractVIDAndPID(output, "/dev/cu.usbmodem411"));
|
||||
assertEquals("0X2341_0X0041", extractVIDAndPID(output, "/dev/tty.usbmodem411"));
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output3.txt"));
|
||||
output = getFileContent("system_profiler_output5.txt");
|
||||
assertEquals("0X2341_0X8041", extractVIDAndPID(output, "/dev/cu.usbmodem621"));
|
||||
assertEquals("0X2341_0X8041", extractVIDAndPID(output, "/dev/tty.usbmodem621"));
|
||||
|
||||
assertEquals("0X2341_0X8041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodemfd121"));
|
||||
assertEquals("0X2341_0X8041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodemfd121"));
|
||||
output = getFileContent("system_profiler_output6.txt");
|
||||
assertEquals("0X2341_0X8041", extractVIDAndPID(output, "/dev/cu.usbmodem1421"));
|
||||
assertEquals("0X2341_0X8041", extractVIDAndPID(output, "/dev/tty.usbmodem1421"));
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output4.txt"));
|
||||
output = getFileContent("system_profiler_output7.txt");
|
||||
assertEquals("0X2341_0X8036", extractVIDAndPID(output, "/dev/cu.usbmodem24131"));
|
||||
assertEquals("0X2341_0X8036", extractVIDAndPID(output, "/dev/tty.usbmodem24131"));
|
||||
assertEquals("0X0403_0X6015", extractVIDAndPID(output, "/dev/cu.usbserial-DN0031EV"));
|
||||
assertEquals("0X0403_0X6015", extractVIDAndPID(output, "/dev/tty.usbserial-DN0031EV"));
|
||||
|
||||
assertEquals("0X2341_0X0041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodem411"));
|
||||
assertEquals("0X2341_0X0041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodem411"));
|
||||
output = getFileContent("system_profiler_output8.txt");
|
||||
assertEquals("0X03EB_0X2157", extractVIDAndPID(output, "/dev/tty.usbmodemfd132"));
|
||||
}
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output5.txt"));
|
||||
|
||||
assertEquals("0X2341_0X8041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodem621"));
|
||||
assertEquals("0X2341_0X8041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodem621"));
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output6.txt"));
|
||||
|
||||
assertEquals("0X2341_0X8041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodem1421"));
|
||||
assertEquals("0X2341_0X8041", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodem1421"));
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output7.txt"));
|
||||
|
||||
assertEquals("0X2341_0X8036", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbmodem24131"));
|
||||
assertEquals("0X2341_0X8036", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodem24131"));
|
||||
assertEquals("0X0403_0X6015", new SystemProfilerParser().extractVIDAndPID(output, "/dev/cu.usbserial-DN0031EV"));
|
||||
assertEquals("0X0403_0X6015", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbserial-DN0031EV"));
|
||||
|
||||
output = TestHelper.inputStreamToString(SystemProfilerParserTest.class.getResourceAsStream("system_profiler_output8.txt"));
|
||||
|
||||
assertEquals("0X03EB_0X2157", new SystemProfilerParser().extractVIDAndPID(output, "/dev/tty.usbmodemfd132"));
|
||||
private String getFileContent(String filename) throws IOException {
|
||||
InputStream resource = SystemProfilerParserTest.class.getResourceAsStream(filename);
|
||||
return TestHelper.inputStreamToString(resource);
|
||||
}
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ public class Platform extends processing.app.Platform {
|
||||
}
|
||||
|
||||
try {
|
||||
String vidPid = new SystemProfilerParser().extractVIDAndPID(devicesListOutput, serial);
|
||||
String vidPid = SystemProfilerParser.extractVIDAndPID(devicesListOutput, serial);
|
||||
|
||||
if (vidPid == null) {
|
||||
return super.resolveDeviceAttachedTo(serial, packages, devicesListOutput);
|
||||
|
@ -19,19 +19,12 @@ public class SystemProfilerParser {
|
||||
private static final String DEV_TTY_USBMODEM = "/dev/tty.usbmodem";
|
||||
private static final String DEV_CU_USBMODEM = "/dev/cu.usbmodem";
|
||||
|
||||
private final Pattern vidRegex;
|
||||
private final Pattern serialNumberRegex;
|
||||
private final Pattern locationRegex;
|
||||
private final Pattern pidRegex;
|
||||
private static final Pattern serialNumberRegex = Pattern.compile("^Serial Number: (.+)$");
|
||||
private static final Pattern locationRegex = Pattern.compile("^Location ID: (.+)$");
|
||||
private static final Pattern pidRegex = Pattern.compile("^Product ID: (.+)$");
|
||||
private static final Pattern vidRegex = Pattern.compile("^Vendor ID: (.+)$");
|
||||
|
||||
public SystemProfilerParser() {
|
||||
this.serialNumberRegex = Pattern.compile("^Serial Number: (.+)$");
|
||||
this.locationRegex = Pattern.compile("^Location ID: (.+)$");
|
||||
this.pidRegex = Pattern.compile("^Product ID: (.+)$");
|
||||
this.vidRegex = Pattern.compile("^Vendor ID: (.+)$");
|
||||
}
|
||||
|
||||
public String extractVIDAndPID(String output, String serial) throws IOException {
|
||||
public synchronized static String extractVIDAndPID(String output, String serial) throws IOException {
|
||||
BufferedReader reader = new BufferedReader(new StringReader(output));
|
||||
|
||||
String devicePrefix;
|
||||
|
Loading…
Reference in New Issue
Block a user