| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 
 | From: Simon McVittie <smcv@debian.org>
Date: Tue, 11 Sep 2018 15:59:31 +0100
Subject: tests: Add the ability to skip tests according to dpkg-architecture
This avoids needing to work out what the value of XPCOMABI will be
for a particular Debian architecture. It cannot be used in
upstreamable patches, though.
Forwarded: not-needed, Debian-specific
---
 js/src/tests/lib/manifest.py | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/js/src/tests/lib/manifest.py b/js/src/tests/lib/manifest.py
index dcad53b..59f968a 100644
--- a/js/src/tests/lib/manifest.py
+++ b/js/src/tests/lib/manifest.py
@@ -3,6 +3,7 @@
 # This includes classes for representing and parsing JS manifests.
 
 import os
+import json
 import posixpath
 import re
 import sys
@@ -33,18 +34,30 @@ class XULInfo:
         """Return JS that when executed sets up variables so that JS expression
         predicates on XUL build info evaluate properly."""
 
+        debian = {}
+        p = Popen(
+            ['dpkg-architecture', '-a' + os.environ['DEB_HOST_ARCH']],
+            stdout=PIPE,
+            universal_newlines=True,
+        )
+        for line in p.stdout:
+            k, v = line.rstrip('\n').split('=', 1)
+            debian[k] = v
+        p.wait()
+
         return (
             "var winWidget = {};"
             "var gtkWidget = {};"
             "var cocoaWidget = {};"
             "var is64Bit = {};"
-            "var xulRuntime = {{ shell: true }};"
+            "var xulRuntime = {{ debian: {}, shell: true }};"
             "var release_or_beta = getBuildConfiguration('release_or_beta');"
             "var isDebugBuild={}; var Android={}; ".format(
                 str(self.os == "WINNT").lower(),
                 str(self.os == "Darwin").lower(),
                 str(self.os == "Linux").lower(),
                 str("x86-" not in self.abi).lower(),
+                json.dumps(debian),
                 str(self.isdebug).lower(),
                 str(self.os == "Android").lower(),
             )
 |