Bug 1191324 - Extend Marionette to allow automation of telemetry tests; r?maja_zf draft
authorAndré Reinald <areinald@mozilla.com>
Mon, 11 Apr 2016 16:19:49 +0200
changeset 349408 5329e23d3b0cbeef7cb22533578bb09d08b2a763
parent 345540 762ae81a07f6d749dd12f6b049c001dabb30328d
child 351010 68abdb2e234cb17763a1b5f3aa1c692245c5b384
push id15079
push userareinald@mozilla.com
push dateMon, 11 Apr 2016 14:20:12 +0000
reviewersmaja_zf
bugs1191324
milestone48.0a1
Bug 1191324 - Extend Marionette to allow automation of telemetry tests; r?maja_zf Changed directory structure, not yet files. MozReview-Commit-ID: S6UZ6VCfit
testing/marionette/harness/marionette/marionette2_test.py
testing/marionette/harness/marionette/runner/base2.py
testing/marionette/harness/marionette/runtests2.py
testing/marionette/harness/marionette/tests2/test_marionette2.py
testing/marionette/harness/marionette/tests2/unit-tests.ini
testing/marionette/harness/session/runner/base2.py
testing/marionette/harness/session/runtests.py
testing/marionette/harness/session/session_test.py
testing/marionette/harness/session/tests/test_marionette2.py
testing/marionette/harness/session/tests/unit-tests.ini
testing/marionette/mach_commands.py
rename from testing/marionette/harness/marionette/runner/base2.py
rename to testing/marionette/harness/session/runner/base2.py
rename from testing/marionette/harness/marionette/runtests2.py
rename to testing/marionette/harness/session/runtests.py
rename from testing/marionette/harness/marionette/marionette2_test.py
rename to testing/marionette/harness/session/session_test.py
rename from testing/marionette/harness/marionette/tests2/test_marionette2.py
rename to testing/marionette/harness/session/tests/test_marionette2.py
rename from testing/marionette/harness/marionette/tests2/unit-tests.ini
rename to testing/marionette/harness/session/tests/unit-tests.ini
--- a/testing/marionette/mach_commands.py
+++ b/testing/marionette/mach_commands.py
@@ -68,16 +68,56 @@ def run_marionette(tests, b2g_path=None,
                                             args,
                                             {"mach": sys.stdout})
     failed = MarionetteHarness(MarionetteTestRunner, args=args).run()
     if failed > 0:
         return 1
     else:
         return 0
 
+def setup_argument_parser2():
+    from marionette.runner.base2 import BaseMarionette2Arguments
+    return BaseMarionette2Arguments()
+
+def run_marionette2(tests, testtype=None,
+    binary=None, topsrcdir=None, **kwargs):
+    from mozlog.structured import commandline
+
+    from marionette.runtests2 import (
+        Marionette2TestRunner,
+        BaseMarionette2Arguments,
+        Marionette2Harness
+    )
+
+    parser = BaseMarionette2Arguments()
+    commandline.add_logging_group(parser)
+    args = parser.parse_args()
+
+    if not tests:
+        tests = [os.path.join(topsrcdir,
+                 'testing/marionette/harness/marionette/tests2/unit-tests.ini')]
+    args.tests = tests
+
+    args.binary = binary
+    path, exe = os.path.split(args.binary)
+
+    for k, v in kwargs.iteritems():
+        setattr(args, k, v)
+
+    parser.verify_usage(args)
+
+    args.logger = commandline.setup_logging("Marionette Unit Tests",
+                                            args,
+                                            {"mach": sys.stdout})
+    failed = Marionette2Harness(Marionette2TestRunner, args=args).run()
+    if failed > 0:
+        return 1
+    else:
+        return 0
+
 @CommandProvider
 class B2GCommands(MachCommandBase):
     def __init__(self, context):
         MachCommandBase.__init__(self, context)
 
         for attr in ('b2g_home', 'device_name'):
             setattr(self, attr, getattr(context, attr, None))
     @Command('marionette-webapi', category='testing',
@@ -119,65 +159,22 @@ class MachCommands(MachCommandBase):
             tests = []
             for obj in kwargs['test_objects']:
                 tests.append(obj['file_relpath'])
             del kwargs['test_objects']
 
         kwargs['binary'] = self.get_binary_path('app')
         return run_marionette(tests, topsrcdir=self.topsrcdir, **kwargs)
 
-def setup_argument_parser2():
-    from marionette.runner.base2 import BaseMarionette2Arguments
-    return BaseMarionette2Arguments()
-
-def run_marionette2(tests, testtype=None,
-    binary=None, topsrcdir=None, **kwargs):
-    from mozlog.structured import commandline
-
-    from marionette.runtests2 import (
-        Marionette2TestRunner,
-        BaseMarionette2Arguments,
-        Marionette2Harness
-    )
-
-    parser = BaseMarionette2Arguments()
-    commandline.add_logging_group(parser)
-    args = parser.parse_args()
-
-    if not tests:
-        tests = [os.path.join(topsrcdir,
-                 'testing/marionette/harness/marionette/tests2/unit-tests.ini')]
-    args.tests = tests
-
-    args.binary = binary
-    path, exe = os.path.split(args.binary)
-
-    for k, v in kwargs.iteritems():
-        setattr(args, k, v)
-
-    parser.verify_usage(args)
-
-    args.logger = commandline.setup_logging("Marionette Unit Tests",
-                                            args,
-                                            {"mach": sys.stdout})
-    failed = Marionette2Harness(Marionette2TestRunner, args=args).run()
-    if failed > 0:
-        return 1
-    else:
-        return 0
-
-@CommandProvider
-class MachCommands2(MachCommandBase):
-    @Command('marionette2-test', category='testing',
-        description='Run a Marionette2 test (Check UI or the internal JavaScript using marionette).',
+    @Command('marionette-session-test', category='testing',
+        description='Run a Marionette-Session test (Check Telemetry using marionette).',
         conditions=[conditions.is_firefox],
         parser=setup_argument_parser2,
     )
     def run_marionette2_test(self, tests, **kwargs):
         if 'test_objects' in kwargs:
             tests = []
             for obj in kwargs['test_objects']:
                 tests.append(obj['file_relpath'])
             del kwargs['test_objects']
 
-        from pudb import set_trace; set_trace() #AR TODO: remove this line
         kwargs['binary'] = self.get_binary_path('app')
         return run_marionette2(tests, topsrcdir=self.topsrcdir, **kwargs)