Bug 1064002 - Switch Android jobs to use the in-tree categories and options and use the testdirs entry. r=ahal
authorArmen Zambrano Gasparnian <armenzg@mozilla.com>
Mon, 12 Jan 2015 09:51:11 -0500 (2015-01-12)
changeset 3538 8d9a05daf751ade6b4c8536f0fb238f07cbd3ab6
parent 3537 5fe2aaab2c6a5e4ac5951c21239ebd73c5213418
child 3539 3f86e521b169dd363e5b547c6e771d19c6b6b674
push id2757
push userarmenzg@mozilla.com
push dateMon, 12 Jan 2015 14:51:47 +0000 (2015-01-12)
reviewersahal
bugs1064002
Bug 1064002 - Switch Android jobs to use the in-tree categories and options and use the testdirs entry. r=ahal
configs/android/androidarm.py
mozharness/mozilla/testing/errors.py
scripts/android_emulator_unittest.py
--- a/configs/android/androidarm.py
+++ b/configs/android/androidarm.py
@@ -70,50 +70,38 @@ config = {
             "ssl_port": "4460", # starting ssl port to use for the server
             "emulator_port": 5560,
             "sut_port1": 20707,
             "sut_port2": 20706
         }
     ],
     "test_suite_definitions": {
         "jsreftest-1": {
-            "category": "reftest",
-            "extra_args": ["../jsreftest/tests/jstests.list",
-                "--total-chunks=6", "--this-chunk=1",
-                "--extra-profile-file=jsreftest/tests/user.js"]
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=1"],
         },
         "jsreftest-2": {
-            "category": "reftest",
-            "extra_args": ["../jsreftest/tests/jstests.list",
-                "--total-chunks=6", "--this-chunk=2",
-                "--extra-profile-file=jsreftest/tests/user.js"]
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=2"],
         },
         "jsreftest-3": {
-            "category": "reftest",
-            "extra_args": ["../jsreftest/tests/jstests.list",
-                "--total-chunks=6", "--this-chunk=3",
-                "--extra-profile-file=jsreftest/tests/user.js"]
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=3"],
         },
         "jsreftest-4": {
-            "category": "reftest",
-            "extra_args": ["../jsreftest/tests/jstests.list",
-                "--total-chunks=6", "--this-chunk=4",
-                "--extra-profile-file=jsreftest/tests/user.js"]
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=4"],
         },
         "jsreftest-5": {
-            "category": "reftest",
-            "extra_args": ["../jsreftest/tests/jstests.list",
-                "--total-chunks=6", "--this-chunk=5",
-                "--extra-profile-file=jsreftest/tests/user.js"]
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=5"],
         },
         "jsreftest-6": {
-            "category": "reftest",
-            "extra_args": ["../jsreftest/tests/jstests.list",
-                "--total-chunks=6", "--this-chunk=6",
-                "--extra-profile-file=jsreftest/tests/user.js"]
+            "category": "jsreftest",
+            "extra_args": ["--this-chunk=6"],
         },
         "mochitest-1": {
             "category": "mochitest",
             "extra_args": ["--total-chunks=16", "--this-chunk=1", "--run-only-tests=android23.json"],
         },
         "mochitest-2": {
             "category": "mochitest",
             "extra_args": ["--total-chunks=16", "--this-chunk=2", "--run-only-tests=android23.json"],
@@ -170,22 +158,22 @@ config = {
             "category": "mochitest",
             "extra_args": ["--total-chunks=16", "--this-chunk=15", "--run-only-tests=android23.json"],
         },
         "mochitest-16": {
             "category": "mochitest",
             "extra_args": ["--total-chunks=16", "--this-chunk=16", "--run-only-tests=android23.json"],
         },
         "mochitest-gl-1": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=2", "--this-chunk=1", "--test-manifest=gl.json"],
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=1"],
         },
         "mochitest-gl-2": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=2", "--this-chunk=2", "--test-manifest=gl.json"],
+            "category": "mochitest-gl",
+            "extra_args": ["--this-chunk=2"],
         },
         "reftest-1": {
             "category": "reftest",
             "extra_args": ["--total-chunks=16", "--this-chunk=1",
                 "tests/layout/reftests/reftest.list"]
         },
         "reftest-2": {
             "category": "reftest",
@@ -258,65 +246,50 @@ config = {
                 "tests/layout/reftests/reftest.list"]
         },
         "reftest-16": {
             "category": "reftest",
             "extra_args": ["--total-chunks=16", "--this-chunk=16",
                 "tests/layout/reftests/reftest.list"]
         },
         "crashtest-1": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=2", "--this-chunk=1",
-                "tests/testing/crashtest/crashtests.list"]
+            "category": "crashtest",
+            "extra_args": ["--this-chunk=1"],
         },
         "crashtest-2": {
-            "category": "reftest",
-            "extra_args": ["--total-chunks=2", "--this-chunk=2",
-                "tests/testing/crashtest/crashtests.list"]
+            "category": "crashtest",
+            "extra_args": ["--this-chunk=2"],
         },
         "xpcshell-1": {
             "category": "xpcshell",
-            "extra_args": ["--total-chunks=3", "--this-chunk=1",
-                # XXX --manifest is superceded by testing/config/mozharness/android_arm_config.py.
-                # Remove when Gecko 35 no longer in tbpl.
-                "--manifest=tests/xpcshell_android.ini"]
+            "extra_args": ["--total-chunks=3", "--this-chunk=1"],
         },
         "xpcshell-2": {
             "category": "xpcshell",
-            "extra_args": ["--total-chunks=3", "--this-chunk=2",
-                # XXX --manifest is superceded by testing/config/mozharness/android_arm_config.py.
-                # Remove when Gecko 35 no longer in tbpl.
-                "--manifest=tests/xpcshell_android.ini"]
+            "extra_args": ["--total-chunks=3", "--this-chunk=2"],
         },
         "xpcshell-3": {
             "category": "xpcshell",
-            "extra_args": ["--total-chunks=3", "--this-chunk=3",
-                # XXX --manifest is superceded by testing/config/mozharness/android_arm_config.py.
-                # Remove when Gecko 35 no longer in tbpl.
-                "--manifest=tests/xpcshell_android.ini"]
+            "extra_args": ["--total-chunks=3", "--this-chunk=3"],
         },
         "robocop-1": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=4", "--this-chunk=1", "--robocop-path=../..",
-                "--robocop-ids=fennec_ids.txt", "--robocop=robocop.ini"],
+            "category": "robocop",
+            "extra_args": ["--this-chunk=1"],
         },
         "robocop-2": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=4", "--this-chunk=2", "--robocop-path=../..",
-                "--robocop-ids=fennec_ids.txt", "--robocop=robocop.ini"],
+            "category": "robocop",
+            "extra_args": ["--this-chunk=2"],
         },
         "robocop-3": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=4", "--this-chunk=3", "--robocop-path=../..",
-                "--robocop-ids=fennec_ids.txt", "--robocop=robocop.ini"],
+            "category": "robocop",
+            "extra_args": ["--this-chunk=3"],
         },
         "robocop-4": {
-            "category": "mochitest",
-            "extra_args": ["--total-chunks=4", "--this-chunk=4", "--robocop-path=../..",
-                "--robocop-ids=fennec_ids.txt", "--robocop=robocop.ini"],
+            "category": "robocop",
+            "extra_args": ["--this-chunk=4"],
         },
     }, # end of "test_definitions"
     # test harness options are located in the gecko tree
     "in_tree_config": "config/mozharness/android_arm_config.py",
     "download_minidump_stackwalk": True,
     "default_blob_upload_servers": [
          "https://blobupload.elasticbeanstalk.com",
     ],
--- a/mozharness/mozilla/testing/errors.py
+++ b/mozharness/mozilla/testing/errors.py
@@ -22,16 +22,17 @@ from mozharness.base.log import INFO, WA
     'regex': re.compile(r'''(\d+ INFO (Passed|Failed|Todo):\ +(\d+)|\t(Passed|Failed|Todo): (\d+))'''),
     'pass_group': "Passed",
     'fail_group': "Failed",
     'known_fail_group': "Todo",
 }
 
 TinderBoxPrintRe = {
     "mochitest_summary": _mochitest_summary,
+    "mochitest-gl_summary": _mochitest_summary,
     "reftest_summary": {
         'regex': re.compile(r'''REFTEST INFO \| (Successful|Unexpected|Known problems): (\d+) \('''),
         'pass_group': "Successful",
         'fail_group': "Unexpected",
         'known_fail_group': "Known problems",
     },
     "crashtest_summary": {
         'regex': re.compile(r'''REFTEST INFO \| (Successful|Unexpected|Known problems): (\d+) \('''),
old mode 100755
new mode 100644
--- a/scripts/android_emulator_unittest.py
+++ b/scripts/android_emulator_unittest.py
@@ -114,33 +114,37 @@ class AndroidEmulatorTest(BlobUploadMixi
         self.host_utils_url = c.get('host_utils_url')
         self.minidump_stackwalk_path = c.get("minidump_stackwalk_path")
         self.emulators = c.get('emulators')
         self.test_suite_definitions = c['test_suite_definitions']
         self.test_suites = c.get('test_suites')
         for suite in self.test_suites:
             assert suite in self.test_suite_definitions
 
+    def _query_tests_dir(self, suite_name):
+        dirs = self.query_abs_dirs()
+        suite_category = self.test_suite_definitions[suite_name]["category"]
+        try:
+            test_dir = self.tree_config["suite_definitions"][suite_category]["testsdir"]
+        except:
+            test_dir = suite_category
+
+        return os.path.join(dirs['abs_test_install_dir'], test_dir)
+
     def query_abs_dirs(self):
         if self.abs_dirs:
             return self.abs_dirs
         abs_dirs = super(AndroidEmulatorTest, self).query_abs_dirs()
         dirs = {}
         dirs['abs_test_install_dir'] = os.path.join(
             abs_dirs['abs_work_dir'], 'tests')
         dirs['abs_xre_dir'] = os.path.join(
             abs_dirs['abs_work_dir'], 'hostutils')
-        dirs['abs_mochitest_dir'] = os.path.join(
-            dirs['abs_test_install_dir'], 'mochitest')
         dirs['abs_modules_dir'] = os.path.join(
             dirs['abs_test_install_dir'], 'modules')
-        dirs['abs_reftest_dir'] = os.path.join(
-            dirs['abs_test_install_dir'], 'reftest')
-        dirs['abs_xpcshell_dir'] = os.path.join(
-            dirs['abs_test_install_dir'], 'xpcshell')
         dirs['abs_blob_upload_dir'] = os.path.join(
             abs_dirs['abs_work_dir'], 'blobber_upload_dir')
         for key in dirs.keys():
             if key not in abs_dirs:
                 abs_dirs[key] = dirs[key]
         self.abs_dirs = abs_dirs
         return self.abs_dirs
 
@@ -392,17 +396,17 @@ class AndroidEmulatorTest(BlobUploadMixi
         if suite_category not in self.tree_config["suite_definitions"]:
             self.fatal("Key '%s' not defined in the in-tree config! Please add it to '%s'. "
                        "See bug 981030 for more details." % (suite_category,
                        os.path.join('gecko', 'testing', self.config['in_tree_config'])))
         cmd = [
             self.query_python_path('python'),
             '-u',
             os.path.join(
-                dirs["abs_%s_dir" % suite_category],
+                self._query_tests_dir(suite_name),
                 self.tree_config["suite_definitions"][suite_category]["run_filename"]
             ),
         ]
 
         raw_log_file = os.path.join(dirs['abs_blob_upload_dir'],
                                     '%s_raw.log' % suite_name)
         str_format_values = {
             'app': self._query_package_name(),
@@ -450,17 +454,17 @@ class AndroidEmulatorTest(BlobUploadMixi
          - subprocess object that is running the test on the emulator
          - the filename where the stdout is going to
          - the stdout where the output is going to
          - the suite name that is associated
         """
         dirs = self.query_abs_dirs()
         cmd = self._build_command(self.emulators[emulator_index], suite_name)
         try:
-            cwd = dirs['abs_%s_dir' % self.test_suite_definitions[suite_name]["category"]]
+            cwd = self._query_tests_dir(suite_name)
         except:
             self.fatal("Don't know how to run --test-suite '%s'!" % suite_name)
 
         env = self.query_env()
         if self.query_minidump_stackwalk():
             env['MINIDUMP_STACKWALK'] = self.minidump_stackwalk_path
         env['MOZ_UPLOAD_DIR'] = self.query_abs_dirs()['abs_blob_upload_dir']
         env['MINIDUMP_SAVE_PATH'] = self.query_abs_dirs()['abs_blob_upload_dir']