Bug 1310855 - Remove hasNode xpcshell.ini variable r?mcmanus draft
authorNicholas Hurley <hurley@todesschaf.org>
Tue, 18 Oct 2016 10:54:33 -0700
changeset 434857 d116b27077860dcf64282bdbbb09bbc8db10d193
parent 434838 060f80b690b8aaa5d927e03578673a3eff3b4c64
child 536144 7f704ee3ed85388fc1a0c41c56b70b60decb8e9b
push id34856
push userbmo:hurley@todesschaf.org
push dateMon, 07 Nov 2016 17:53:37 +0000
reviewersmcmanus
bugs1310855
milestone52.0a1
Bug 1310855 - Remove hasNode xpcshell.ini variable r?mcmanus MozReview-Commit-ID: Hx2e1JYfUfy
dom/push/test/xpcshell/xpcshell.ini
netwerk/test/unit/xpcshell.ini
testing/xpcshell/runxpcshelltests.py
--- a/dom/push/test/xpcshell/xpcshell.ini
+++ b/dom/push/test/xpcshell/xpcshell.ini
@@ -56,28 +56,49 @@ run-sequentially = This will delete all 
 
 #http2 test
 [test_resubscribe_4xxCode_http2.js]
 [test_resubscribe_5xxCode_http2.js]
 [test_resubscribe_listening_for_msg_error_http2.js]
 [test_register_5xxCode_http2.js]
 [test_updateRecordNoEncryptionKeys_http2.js]
 [test_register_success_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_register_error_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_unregister_success_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_notification_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_registration_success_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_registration_error_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_clearAll_successful.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = This will delete all existing push subscriptions.
--- a/netwerk/test/unit/xpcshell.ini
+++ b/netwerk/test/unit/xpcshell.ini
@@ -223,17 +223,20 @@ skip-if = bits != 32
 [test_httpsuspend.js]
 [test_idnservice.js]
 [test_idn_blacklist.js]
 [test_idn_urls.js]
 [test_idna2008.js]
 # IDNA2008 depends on ICU, not available on android
 skip-if = os == "android"
 [test_immutable.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_localstreams.js]
 [test_large_port.js]
 [test_mismatch_last-modified.js]
 [test_MIME_params.js]
 [test_mozTXTToHTMLConv.js]
 [test_multipart_byteranges.js]
 [test_multipart_streamconv.js]
@@ -282,20 +285,26 @@ fail-if = os == "android"
 [test_safeoutputstream.js]
 [test_simple.js]
 [test_sockettransportsvc_available.js]
 [test_socks.js]
 # Bug 675039: test fails consistently on Android
 fail-if = os == "android"
 # http2 unit tests require us to have node available to run the spdy and http2 server
 [test_http2.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_altsvc.js]
-skip-if = !hasNode
+# This used to be hasNode, but that caused too many issues with tests being
+# silently disabled, so now we explicitly call out the platforms not known
+# to have node installed.
+skip-if = os == "android"
 run-sequentially = node server exceptions dont replay well
 [test_speculative_connect.js]
 [test_standardurl.js]
 [test_standardurl_default_port.js]
 [test_standardurl_port.js]
 [test_streamcopier.js]
 [test_traceable_channel.js]
 [test_unescapestring.js]
--- a/testing/xpcshell/runxpcshelltests.py
+++ b/testing/xpcshell/runxpcshelltests.py
@@ -11,25 +11,23 @@ import math
 import mozdebug
 import mozinfo
 import os
 import os.path
 import random
 import re
 import shutil
 import signal
-import subprocess
 import sys
 import tempfile
 import time
 import traceback
 
 from collections import deque, namedtuple
 from distutils import dir_util
-from distutils.version import LooseVersion
 from multiprocessing import cpu_count
 from argparse import ArgumentParser
 from subprocess import Popen, PIPE, STDOUT
 from tempfile import mkdtemp, gettempdir
 from threading import (
     Timer,
     Thread,
     Event,
@@ -984,38 +982,26 @@ class XPCShellTests(object):
           On a remote system, we need to overload this to work on the remote filesystem.
         """
         return os.path.abspath(dirname)
 
     def trySetupNode(self):
         """
           Run node for HTTP/2 tests, if available, and updates mozinfo as appropriate.
         """
-        nodeMozInfo = {'hasNode': False} # Assume the worst
         nodeBin = None
 
         # We try to find the node executable in the path given to us by the user in
         # the MOZ_NODE_PATH environment variable
         localPath = os.getenv('MOZ_NODE_PATH', None)
         if localPath and os.path.exists(localPath) and os.path.isfile(localPath):
-            try:
-                version_str = subprocess.check_output([localPath, "--version"],
-                                                      stderr=subprocess.STDOUT)
-                # nodejs prefixes its version strings with "v"
-                version = LooseVersion(version_str.lstrip('v'))
-                # Use node only if node version is >=5.0.0 because
-                # node did not support ALPN until this version.
-                if version >= LooseVersion("5.0.0"):
-                    nodeBin = localPath
-            except (subprocess.CalledProcessError, OSError), e:
-                self.log.error('Could not retrieve node version: %s' % str(e))
+            nodeBin = localPath
 
         if os.getenv('MOZ_ASSUME_NODE_RUNNING', None):
             self.log.info('Assuming required node servers are already running')
-            nodeMozInfo['hasNode'] = True
         elif nodeBin:
             self.log.info('Found node at %s' % (nodeBin,))
 
             def startServer(name, serverJs):
                 if os.path.exists(serverJs):
                     # OK, we found our server, let's try to get it running
                     self.log.info('Found %s at %s' % (name, serverJs))
                     try:
@@ -1024,29 +1010,26 @@ class XPCShellTests(object):
                         process = Popen([nodeBin, serverJs], stdin=PIPE, stdout=PIPE,
                                 stderr=PIPE, env=self.env, cwd=os.getcwd())
                         self.nodeProc[name] = process
 
                         # Check to make sure the server starts properly by waiting for it to
                         # tell us it's started
                         msg = process.stdout.readline()
                         if 'server listening' in msg:
-                            nodeMozInfo['hasNode'] = True
                             searchObj = re.search( r'HTTP2 server listening on port (.*)', msg, 0)
                             if searchObj:
                               self.env["MOZHTTP2_PORT"] = searchObj.group(1)
                     except OSError, e:
                         # This occurs if the subprocess couldn't be started
                         self.log.error('Could not run %s server: %s' % (name, str(e)))
 
             myDir = os.path.split(os.path.abspath(__file__))[0]
             startServer('moz-http2', os.path.join(myDir, 'moz-http2', 'moz-http2.js'))
 
-        mozinfo.update(nodeMozInfo)
-
     def shutdownNode(self):
         """
           Shut down our node process, if it exists
         """
         for name, proc in self.nodeProc.iteritems():
             self.log.info('Node %s server shutting down ...' % name)
             if proc.poll() is not None:
                 self.log.info('Node server %s already dead %s' % (name, proc.poll()))