Bug 1449612 - [marionette] Improve logging when server socket failed to start. draft
authorHenrik Skupin <mail@hskupin.info>
Wed, 28 Mar 2018 19:17:46 +0200
changeset 774613 fe3fcc431d7dacfdc7141d06492fa1dc0f555aea
parent 773564 56d6db4ad38c869d0bbc2aea449a4a382f109163
push id104450
push userbmo:hskupin@gmail.com
push dateThu, 29 Mar 2018 07:37:45 +0000
bugs1449612
milestone61.0a1
Bug 1449612 - [marionette] Improve logging when server socket failed to start. Raises a better understandable error when the server socket cannot be created. It includes the port number, and removes the unhelpful output of the internal error. MozReview-Commit-ID: AD1leBlWXLR
testing/marionette/server.js
--- a/testing/marionette/server.js
+++ b/testing/marionette/server.js
@@ -74,19 +74,24 @@ server.TCPListener = class {
   driverFactory() {
     Preferences.set(PREF_CONTENT_LISTENER, false);
     return new GeckoDriver(Services.appinfo.ID, this);
   }
 
   set acceptConnections(value) {
     if (value) {
       if (!this.socket) {
-        const flags = KeepWhenOffline | LoopbackOnly;
-        const backlog = 1;
-        this.socket = new ServerSocket(this.port, flags, backlog);
+        try {
+          const flags = KeepWhenOffline | LoopbackOnly;
+          const backlog = 1;
+          this.socket = new ServerSocket(this.port, flags, backlog);
+        } catch (e) {
+          throw new Error(`Could not bind to port ${this.port} (${e.name})`);
+        }
+
         this.port = this.socket.port;
 
         this.socket.asyncListen(this);
         logger.debug("New connections are accepted");
       }
 
     } else if (this.socket) {
       this.socket.close();