Skip to content

Commit

Permalink
fix simulator run parallel with android
Browse files Browse the repository at this point in the history
  • Loading branch information
saikrishna321 committed Apr 1, 2021
1 parent 84b1c3a commit c6735df
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 11 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "appium-device-plugin",
"version": "1.0.0-beta.2",
"version": "1.0.0-beta.3",
"description": "An appium 2.0 plugin that manages and create driver session on available devices",
"main": "./lib/index.js",
"scripts": {
Expand Down
13 changes: 13 additions & 0 deletions src/CapabilityManager.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import getPort from 'get-port';

export async function androidCapabilities(caps, freeDevice) {
caps.firstMatch[0]['appium:udid'] = freeDevice.udid;
caps.firstMatch[0]['appium:deviceName'] = freeDevice.udid;
caps.firstMatch[0]['appium:systemPort'] = await getPort();
}

export async function iOSCapabilities(caps, freeDevice) {
caps.firstMatch[0]['appium:udid'] = freeDevice.udid;
caps.firstMatch[0]['appium:deviceName'] = freeDevice.udid;
caps.firstMatch[0]['appium:wdaLocalPort'] = await getPort();
}
3 changes: 2 additions & 1 deletion src/Devices.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ export default class Devices {
getFreeDevice(platform) {
log.info(`Finding Free Device for Platform ${platform}`);
return actualDevices.find(
(device) => device.busy === false && device.platform === platform
(device) =>
device.busy === false && device.platform.toLowerCase() === platform
);
}

Expand Down
12 changes: 4 additions & 8 deletions src/plugin.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import BasePlugin from '@appium/base-plugin';
import AndroidDeviceManager from './AndroidDeviceManager';
import getPort from 'get-port';
import { androidCapabilities, iOSCapabilities } from './CapabilityManager';
import log from './logger';
import Devices from './Devices';
import SimulatorManager from './SimulatorManager';
Expand Down Expand Up @@ -32,15 +32,11 @@ export default class DevicePlugin extends BasePlugin {
await fetchDevices();
freeDevice = devices.getFreeDevice(caps.firstMatch[0]['platformName']);
if (freeDevice && caps.firstMatch[0]['platformName'] === 'android') {
caps.firstMatch[0]['appium:udid'] = freeDevice.udid;
caps.firstMatch[0]['appium:deviceName'] = freeDevice.udid;
caps.firstMatch[0]['appium:systemPort'] = await getPort();
await androidCapabilities(caps, freeDevice);
devices.blockDevice(freeDevice);
log.info(`Device UDID ${freeDevice.udid} is blocked for execution.`);
} else if (freeDevice && caps.firstMatch[0]['platformName'] === 'iOS') {
caps.firstMatch[0]['appium:udid'] = freeDevice.udid;
caps.firstMatch[0]['appium:deviceName'] = freeDevice.udid;
caps.firstMatch[0]['appium:wdaLocalPort'] = await getPort();
} else if (freeDevice && caps.firstMatch[0]['platformName'] === 'ios') {
await iOSCapabilities(caps, freeDevice);
devices.blockDevice(freeDevice);
log.info(`Device UDID ${freeDevice.udid} is blocked for execution.`);
} else {
Expand Down

0 comments on commit c6735df

Please sign in to comment.