From 29396f82d6aa3db2a6c7a1bc94db36e9864f2b5d Mon Sep 17 00:00:00 2001 From: sebv Date: Sun, 1 Jun 2014 23:38:51 +0800 Subject: [PATCH] dynamic bootstrap + minor changes --- lib/devices/ios/ios.js | 55 ++++++++++++++++++++--------------- lib/devices/ios/uiauto.js | 9 ++++++ lib/server/helpers.js | 6 ++-- lib/server/logger.js | 3 ++ package.json | 4 +-- submodules/appium-instruments | 2 +- submodules/appium-uiauto | 2 +- 7 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 lib/devices/ios/uiauto.js diff --git a/lib/devices/ios/ios.js b/lib/devices/ios/ios.js index ecac6b7f0..d4294b4cf 100644 --- a/lib/devices/ios/ios.js +++ b/lib/devices/ios/ios.js @@ -30,7 +30,7 @@ var path = require('path') , mkdirp = require('mkdirp') , getSimRoot = settings.getSimRoot , fruitstrap = path.resolve(__dirname, '../../../build/fruitstrap/fruitstrap') - , uiauto = require('appium-uiauto') + , prepareBootstrap = require('./uiauto').prepareBootstrap , UnknownError = errors.UnknownError; // XML Plist library helper @@ -286,8 +286,11 @@ IOS.prototype.start = function (cb, onDie) { IOS.prototype.createInstruments = function (cb) { logger.debug("Creating instruments"); - this.instruments = this.makeInstruments(); - cb(); + this.makeInstruments(function (err, instruments) { + if (err) return cb(err); + this.instruments = instruments; + cb(); + }.bind(this)); }; IOS.prototype.startInstruments = function (cb) { @@ -309,22 +312,27 @@ IOS.prototype.startInstruments = function (cb) { }.bind(this)); }; -IOS.prototype.makeInstruments = function () { - return new Instruments({ - app: this.args.app || this.args.bundleId - , udid: this.args.udid - , processArguments: this.args.processArguments - , ignoreStartupExit: this.shouldIgnoreInstrumentsExit() - , bootstrap: uiauto.bootstrap - , template: this.args.automationTraceTemplatePath - , sock: sock - , withoutDelay: this.args.withoutDelay - , xcodeVersion: this.xcodeVersion - , webSocket: this.args.webSocket - , launchTimeout: this.args.launchTimeout - , flakeyRetries: this.args.backendRetries - , simulatorSdkAndDevice: this.iOSSDKVersion >= 7.1 ? this.getDeviceString() : null - }); +IOS.prototype.makeInstruments = function (cb) { + prepareBootstrap({ verboseInstruments: !this.args.quiet }).then( + function (bootstrapPath) { + var instruments = new Instruments({ + app: this.args.app || this.args.bundleId + , udid: this.args.udid + , processArguments: this.args.processArguments + , ignoreStartupExit: this.shouldIgnoreInstrumentsExit() + , bootstrap: bootstrapPath + , template: this.args.automationTraceTemplatePath + , sock: sock + , withoutDelay: this.args.withoutDelay + , xcodeVersion: this.xcodeVersion + , webSocket: this.args.webSocket + , launchTimeout: this.args.launchTimeout + , flakeyRetries: this.args.backendRetries + , simulatorSdkAndDevice: this.iOSSDKVersion >= 7.1 ? this.getDeviceString() : null + }); + cb(null, instruments); + }.bind(this), function (err) { cb(err); } + ); }; IOS.prototype.shouldIgnoreInstrumentsExit = function () { @@ -578,10 +586,11 @@ IOS.prototype.instantLaunchAndQuit = function (cb) { "to populate the applications and preference dirs"); this.setDeviceAndLaunchSimulator(function (err) { if (err) return cb(err); - var instrumentsIsDeadLongLiveInstruments = this.makeInstruments(); - instrumentsIsDeadLongLiveInstruments.launchAndKill(1000, function (err) { - if (err) return cb(err); - this.endSimulator(cb); + this.makeInstruments(function (err, instruments) { + instruments.launchAndKill(1000, function (err) { + if (err) return cb(err); + this.endSimulator(cb); + }.bind(this)); }.bind(this)); }.bind(this)); }; diff --git a/lib/devices/ios/uiauto.js b/lib/devices/ios/uiauto.js new file mode 100644 index 000000000..97285d8a3 --- /dev/null +++ b/lib/devices/ios/uiauto.js @@ -0,0 +1,9 @@ +// Gets instrument from npm package and setup logger +"use strict"; + +var uiauto = require('appium-uiauto'), + logger = uiauto.logger; + +logger.init(require('../../server/logger.js').get('appium')); + +module.exports = uiauto; diff --git a/lib/server/helpers.js b/lib/server/helpers.js index 50d73cfca..28a9881fb 100644 --- a/lib/server/helpers.js +++ b/lib/server/helpers.js @@ -226,17 +226,17 @@ module.exports.startListening = function (server, args, parser, appiumVer, appiu if (appiumRev) { welcome += " (REV " + appiumRev + ")"; } - logger.info(welcome); + logger.warn(welcome); var logMessage = "Appium REST http interface listener started on " + args.address + ":" + args.port; - logger.info(logMessage); + logger.warn(logMessage); startAlertSocket(server, appiumServer); if (args.nodeconfig !== null) { gridRegister.registerNode(args.nodeconfig, args.address, args.port); } var showArgs = getNonDefaultArgs(parser, args); if (_.size(showArgs)) { - logger.info("Non-default server args: " + JSON.stringify(showArgs)); + logger.warn("Non-default server args: " + JSON.stringify(showArgs)); } }); server.on('error', function (err) { diff --git a/lib/server/logger.js b/lib/server/logger.js index 27f01a084..b456ae254 100644 --- a/lib/server/logger.js +++ b/lib/server/logger.js @@ -44,6 +44,9 @@ module.exports.init = function (args) { if (args.quiet) { logger.transports.console.level = 'warn'; + } else { + //TODO: pass loglevel in server args + logger.transports.console.level = process.env.APPIUM_LOGLEVEL || 'info'; } if (args.log) { diff --git a/package.json b/package.json index 4c94f80b3..bde31aee1 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,8 @@ "adm-zip": "~0.4.4", "appium-adb": "~1.0.1", "appium-atoms": "~0.0.5", - "appium-instruments": "~0.1.21", - "appium-uiauto": "~0.0.20", + "appium-instruments": "1.0.0-beta1", + "appium-uiauto": "1.0.0-beta1", "argparse": "~0.1.15", "async": "~0.9.0", "binary-cookies": "~0.1.1", diff --git a/submodules/appium-instruments b/submodules/appium-instruments index 67980fd08..483a6dcf1 160000 --- a/submodules/appium-instruments +++ b/submodules/appium-instruments @@ -1 +1 @@ -Subproject commit 67980fd08fc475f7997a181b8e71652a87f61067 +Subproject commit 483a6dcf13f8b94f563feee5a62c9900a17fa680 diff --git a/submodules/appium-uiauto b/submodules/appium-uiauto index 8f22246b1..f0c7f9c77 160000 --- a/submodules/appium-uiauto +++ b/submodules/appium-uiauto @@ -1 +1 @@ -Subproject commit 8f22246b104ef8cf6257496a20ba216cf3b42c88 +Subproject commit f0c7f9c774260eb8366906f428355ad1a189ff45