summaryrefslogtreecommitdiffstats
path: root/build/compare-mozconfig/compare-mozconfigs-wrapper.py
diff options
context:
space:
mode:
Diffstat (limited to 'build/compare-mozconfig/compare-mozconfigs-wrapper.py')
-rw-r--r--build/compare-mozconfig/compare-mozconfigs-wrapper.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/build/compare-mozconfig/compare-mozconfigs-wrapper.py b/build/compare-mozconfig/compare-mozconfigs-wrapper.py
new file mode 100644
index 000000000..e1888eed7
--- /dev/null
+++ b/build/compare-mozconfig/compare-mozconfigs-wrapper.py
@@ -0,0 +1,68 @@
+#!/usr/bin/python
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from __future__ import unicode_literals
+
+import logging
+import mozunit
+import subprocess
+import sys
+import unittest
+
+from os import path
+from buildconfig import substs
+
+log = logging.getLogger(__name__)
+
+def determine_platform():
+ platform_mapping = {'WINNT': {'x86_64': 'win64',
+ 'i686': 'win32'},
+ 'Darwin': {'x86_64': 'macosx-universal',
+ 'i386':'macosx-universal'},
+ 'Linux': {'x86_64': 'linux64',
+ 'i686': 'linux32'}}
+
+ os_type = substs['OS_TARGET']
+ cpu_type = substs['TARGET_CPU']
+ return platform_mapping.get(os_type, {}).get(cpu_type, None)
+
+
+class TestCompareMozconfigs(unittest.TestCase):
+ def test_compare_mozconfigs(self):
+ """ A wrapper script that calls compare-mozconfig.py
+ based on the platform that the machine is building for"""
+ platform = determine_platform()
+
+ if platform is not None:
+ python_exe = substs['PYTHON']
+ topsrcdir = substs['top_srcdir']
+
+ # construct paths and args for compare-mozconfig
+ browser_dir = path.join(topsrcdir, 'browser')
+ script_path = path.join(topsrcdir, 'build/compare-mozconfig/compare-mozconfigs.py')
+ whitelist_path = path.join(browser_dir, 'config/mozconfigs/whitelist')
+ beta_mozconfig_path = path.join(browser_dir, 'config/mozconfigs', platform, 'beta')
+ release_mozconfig_path = path.join(browser_dir, 'config/mozconfigs', platform, 'release')
+ nightly_mozconfig_path = path.join(browser_dir, 'config/mozconfigs', platform, 'nightly')
+
+ log.info("Comparing beta against nightly mozconfigs")
+ ret_code = subprocess.call([python_exe, script_path, '--whitelist',
+ whitelist_path, '--no-download',
+ platform + ',' + beta_mozconfig_path +
+ ',' + nightly_mozconfig_path])
+
+ if ret_code > 0:
+ return ret_code
+
+ log.info("Comparing release against nightly mozconfigs")
+ ret_code = subprocess.call([python_exe, script_path, '--whitelist',
+ whitelist_path, '--no-download',
+ platform + ',' + release_mozconfig_path +
+ ',' + nightly_mozconfig_path])
+
+ self.assertEqual(0, ret_code)
+
+if __name__ == '__main__':
+ mozunit.main()