Backed out changeset 71edbf86ce85 (bug 1662855) for causing xpcshell failures.
authorMihai Alexandru Michis <malexandru@mozilla.com>
Thu, 03 Sep 2020 01:56:09 +0300
changeset 547586 e7ddaa6e27f81f2914614459ee1cd2e6e1ac8750
parent 547585 1c35c35dd96433999f0ea95b172b78c0afc3d721
child 547587 682c2791c258656f65bb9d55c3e893b2881ae5a5
push id37751
push usercbrindusan@mozilla.com
push dateThu, 03 Sep 2020 09:45:53 +0000
treeherdermozilla-central@0de10c26da55 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1662855
milestone82.0a1
backs out71edbf86ce85a204388832c6f9024b7d008cb80a
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 71edbf86ce85 (bug 1662855) for causing xpcshell failures. CLOSED TREE
netwerk/test/httpserver/httpd.manifest
netwerk/test/httpserver/moz.build
python/mozbuild/mozbuild/action/test_archive.py
testing/xpcshell/remotexpcshelltests.py
testing/xpcshell/runxpcshelltests.py
new file mode 100644
--- /dev/null
+++ b/netwerk/test/httpserver/httpd.manifest
@@ -0,0 +1,1 @@
+interfaces test_necko.xpt
--- a/netwerk/test/httpserver/moz.build
+++ b/netwerk/test/httpserver/moz.build
@@ -9,13 +9,14 @@ XPIDL_SOURCES += [
 ]
 
 XPIDL_MODULE = 'test_necko'
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']
 
 EXTRA_COMPONENTS += [
     'httpd.js',
+    'httpd.manifest',
 ]
 
 TESTING_JS_MODULES += [
     'httpd.js',
 ]
--- a/python/mozbuild/mozbuild/action/test_archive.py
+++ b/python/mozbuild/mozbuild/action/test_archive.py
@@ -266,16 +266,18 @@ ARCHIVE_FILES = {
             ],
             'dest': 'bin',
         },
         {
             'source': buildconfig.topobjdir,
             'base': 'dist/bin/components',
             'patterns': [
                 'httpd.js',
+                'httpd.manifest',
+                'test_necko.xpt',
             ],
             'dest': 'bin/components',
         },
         {
             'source': buildconfig.topsrcdir,
             'base': 'build/pgo/certs',
             'pattern': '**',
             'dest': 'certs',
--- a/testing/xpcshell/remotexpcshelltests.py
+++ b/testing/xpcshell/remotexpcshelltests.py
@@ -135,16 +135,17 @@ class RemoteXPCShellTestThread(xpcshell.
         headlist = test.get('head', '')
         return list(sanitize_list(headlist, 'head'))
 
     def buildXpcsCmd(self):
         # change base class' paths to remote paths and use base class to build command
         self.xpcshell = posixpath.join(self.remoteBinDir, "xpcw")
         self.headJSPath = posixpath.join(self.remoteScriptsDir, 'head.js')
         self.httpdJSPath = posixpath.join(self.remoteComponentsDir, 'httpd.js')
+        self.httpdManifest = posixpath.join(self.remoteComponentsDir, 'httpd.manifest')
         self.testingModulesDir = self.remoteModulesDir
         self.testharnessdir = self.remoteScriptsDir
         xpcsCmd = xpcshell.XPCShellTestThread.buildXpcsCmd(self)
         # remove "-g <dir> -a <dir>" and replace with remote alternatives
         del xpcsCmd[1:5]
         if self.options['localAPK']:
             xpcsCmd.insert(3, '--greomni')
             xpcsCmd.insert(4, self.remoteAPK)
@@ -442,16 +443,21 @@ class XPCShellRemote(xpcshell.XPCShellTe
                 print("*** Expected binary %s not found in %s!" %
                       (fname, self.localBin), file=sys.stderr)
 
         local = os.path.join(self.localBin, "components/httpd.js")
         remoteFile = posixpath.join(self.remoteComponentsDir, "httpd.js")
         self.device.push(local, remoteFile)
         self.device.chmod(remoteFile)
 
+        local = os.path.join(self.localBin, "components/httpd.manifest")
+        remoteFile = posixpath.join(self.remoteComponentsDir, "httpd.manifest")
+        self.device.push(local, remoteFile)
+        self.device.chmod(remoteFile)
+
         if self.options['localAPK']:
             remoteFile = posixpath.join(self.remoteBinDir,
                                         os.path.basename(self.options['localAPK']))
             self.device.push(self.options['localAPK'], remoteFile)
             self.device.chmod(remoteFile)
 
             self.pushLibs()
         else:
--- a/testing/xpcshell/runxpcshelltests.py
+++ b/testing/xpcshell/runxpcshelltests.py
@@ -165,16 +165,17 @@ class XPCShellTestThread(Thread):
 
         self.appPath = kwargs.get('appPath')
         self.xrePath = kwargs.get('xrePath')
         self.utility_path = kwargs.get('utility_path')
         self.testingModulesDir = kwargs.get('testingModulesDir')
         self.debuggerInfo = kwargs.get('debuggerInfo')
         self.jsDebuggerInfo = kwargs.get('jsDebuggerInfo')
         self.pluginsPath = kwargs.get('pluginsPath')
+        self.httpdManifest = kwargs.get('httpdManifest')
         self.httpdJSPath = kwargs.get('httpdJSPath')
         self.headJSPath = kwargs.get('headJSPath')
         self.testharnessdir = kwargs.get('testharnessdir')
         self.profileName = kwargs.get('profileName')
         self.singleFile = kwargs.get('singleFile')
         self.env = copy.deepcopy(kwargs.get('env'))
         self.symbolsPath = kwargs.get('symbolsPath')
         self.logfiles = kwargs.get('logfiles')
@@ -535,16 +536,17 @@ class XPCShellTestThread(Thread):
         #   do_load_child_test_harness() in head.js
         if not self.appPath:
             self.appPath = self.xrePath
 
         xpcsCmd = [
             self.xpcshell,
             '-g', self.xrePath,
             '-a', self.appPath,
+            '-r', self.httpdManifest,
             '-m',
             '-e', 'const _HEAD_JS_PATH = "%s";' % self.headJSPath,
             '-e', 'const _MOZINFO_JS_PATH = "%s";' % self.mozInfoJSPath,
             '-e', 'const _PREFS_FILE = "%s";' % self.prefsFile.replace('\\', '\\\\'),
         ]
 
         if self.testingModulesDir:
             # Escape backslashes in string literal.
@@ -1035,16 +1037,19 @@ class XPCShellTests(object):
                     self.xrePath = appBundlePath
         else:
             self.xrePath = os.path.abspath(self.xrePath)
 
         # httpd.js belongs in xrePath/components, which is Contents/Resources on mac
         self.httpdJSPath = os.path.join(self.xrePath, 'components', 'httpd.js')
         self.httpdJSPath = self.httpdJSPath.replace('\\', '/')
 
+        self.httpdManifest = os.path.join(self.xrePath, 'components', 'httpd.manifest')
+        self.httpdManifest = self.httpdManifest.replace('\\', '/')
+
         if self.mozInfo is None:
             self.mozInfo = os.path.join(self.testharnessdir, "mozinfo.json")
 
     def buildPrefsFile(self, extraPrefs):
         # Create the prefs.js file
 
         # In test packages used in CI, the profile_data directory is installed
         # in the SCRIPT_DIR.
@@ -1581,16 +1586,17 @@ class XPCShellTests(object):
         kwargs = {
             'appPath': self.appPath,
             'xrePath': self.xrePath,
             'utility_path': self.utility_path,
             'testingModulesDir': self.testingModulesDir,
             'debuggerInfo': self.debuggerInfo,
             'jsDebuggerInfo': self.jsDebuggerInfo,
             'pluginsPath': self.pluginsPath,
+            'httpdManifest': self.httpdManifest,
             'httpdJSPath': self.httpdJSPath,
             'headJSPath': self.headJSPath,
             'tempDir': self.tempDir,
             'testharnessdir': self.testharnessdir,
             'profileName': self.profileName,
             'singleFile': self.singleFile,
             'env': self.env,  # making a copy of this in the testthreads
             'symbolsPath': self.symbolsPath,