Closed Bug 1452694 Opened 2 years ago Closed 2 years ago

Use TestRunnerActivity for geckoview mochitest/reftest

Categories

(Firefox for Android :: Testing, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
Firefox 61
Tracking Status
firefox61 --- fixed

People

(Reporter: gbrown, Assigned: gbrown)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

Let's follow-up on https://bugzilla.mozilla.org/show_bug.cgi?id=1448188#c10:

(In reply to Jim Chen [:jchen] [:darchons] from comment #10)
> I think we want to eventually be using TestRunnerActivity, which is
> different from geckoview_example/GeckoViewActivity, for mochitests/reftests
> (Bug 1291387). TestRunnerActivity is included in the new androidTest APK.

Can we start using TestRunnerActivity for geckoview mochitest/reftest trials now?

It seems to work at least as well as GeckoViewActivity.


Is this an appropriate way to start it, for mochitests?

am start -W -n org.mozilla.geckoview.test/org.mozilla.geckoview.test.TestRunnerActivity -a android.intent.action.Main --es env9 MOZ_CRASHREPORTER_NO_REPORT=1 --es env8 R_LOG_DESTINATION=stderr --es args '-no-remote -profile /sdcard/tests/profile//' --es env3 DISABLE_UNSAFE_CPOW_WARNINGS=1 --es env2 R_LOG_VERBOSE=1 --es env1 XPCOM_DEBUG_BREAK=stack --es env0 MOZ_CRASHREPORTER=1 --es env7 MOZ_LOG_FILE=/sdcard/tests/mozlog/moz.log --es env6 MOZ_CRASHREPORTER_SHUTDOWN=1 --es env5 MOZ_IN_AUTOMATION=1 --es env4 MOZ_DISABLE_NONLOCAL_CONNECTIONS=1 --ez use_multiprocess False --es env14 MOZ_HIDE_RESULTS_TABLE=1 --es env13 R_LOG_LEVEL=6 --es env12 MOZ_PROCESS_LOG=/tmp/tmp4Xjd5rpidlog --es env11 NO_EM_RESTART=1 --es env10 MOZ_DEVELOPER_REPO_DIR=/home/gbrown/src -d 'http://mochi.test:8888/tests?autorun=1&closeWhenDone=1&logFile=%2Fsdcard%2Ftests%2Flogs%2Fmochitest.log&fileLevel=INFO&consoleLevel=INFO&hideResultsTable=1&manifestFile=tests.json&dumpOutputDirectory=%2Fsdcard%2Ftests'
Flags: needinfo?(snorp)
Flags: needinfo?(nchen)
Yup that looks right to me.
Flags: needinfo?(snorp)
I think we'll still want to run the geckoview_example smoketest, etc., at least for a little while, alongside new mochi/reftests in TestRunnerActivity.

I have cloned launch_geckoview_example to launch_geckoview_testrunner and updated some plumbing. This won't be used in any automation jobs yet, but switching mochitest/reftest from fennec to TestRunnerActivity will be as easy as changing the taskcluster target, as seen in:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=0e144a417471b3d1381e15ef06b5e4faa5c506e3
Flags: needinfo?(nchen)
Attachment #8966402 - Flags: review?(bob)
See Also: → 1452399
Comment on attachment 8966402 [details] [diff] [review]
add launch_geckoview_testrunner to ADBAndroid

Review of attachment 8966402 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with the change to consolidate launch_geckoview_example/launch_geckoview_testrunner via launch_activity and with an answer to whether we want to check for geckoview_example in remoteautomation.py.

::: build/mobile/remoteautomation.py
@@ +247,4 @@
>                  else:
>                      args = args[:-1]
>                  if 'geckoview' in app:
> +                    self.device.launch_geckoview_testrunner(app, e10s=True, moz_env=env, extra_args=args, url=url)

We don't want to check for geckoview_example?

Follow-up bug to handle e10s configurations?

::: testing/mozbase/mozdevice/mozdevice/adb_android.py
@@ +543,5 @@
> +                                "%s.TestRunnerActivity" % app_name,
> +                                intent, url=url, extras=extras,
> +                                wait=wait, fail_if_running=fail_if_running,
> +                                timeout=timeout)
> +

This essentially duplicates launch_geckoview_example with the one line change s/GeckoViewActivity/TestRunnerActivity/. It is not clear to me that this would be restricted to geckoview. Perhaps just launch_activity. I think I would like to have just one method:

def launch_activity(self, app_name, intent="android.intent.action.Main",
                    activity_name=None,
                    moz_env=None, extra_args=None, url=None, e10s=False,
                    wait=True, fail_if_running=True, timeout=None):
...

        self.launch_application(app_name,
                                activity_name,
                                intent, url=url, extras=extras,
                                wait=wait, fail_if_running=fail_if_running,
                                timeout=timeout)

If we want to keep the distinction rather than having to remember and type the activity name we could just dispatch

    def launch_geckoview_example(self, app_name, intent="android.intent.action.Main",
                                 moz_env=None, extra_args=None, url=None, e10s=False,
                                 wait=True, fail_if_running=True, timeout=None):

        self.launch_activity(self, app_name, intent=intent,
                             activity_name="%s.GeckoViewActivity" % app_name,
                              moz_env=moz_env, extra_args=extra_args, url=url, e10s=e10s,
                              wait=wait, fail_if_running=fail_if_running, timeout=timeout):

    def launch_geckoview_testrunner(self, app_name, intent="android.intent.action.Main",
                                 moz_env=None, extra_args=None, url=None, e10s=False,
                                 wait=True, fail_if_running=True, timeout=None):

        self.launch_activity(self, app_name, intent=intent,
                             activity_name="%s.TestRunnerActivity" % app_name,
                              moz_env=moz_env, extra_args=extra_args, url=url, e10s=e10s,
                              wait=wait, fail_if_running=fail_if_running, timeout=timeout):
Attachment #8966402 - Flags: review?(bob) → review+
(In reply to Bob Clary [:bc:] from comment #3)
> ::: build/mobile/remoteautomation.py
> @@ +247,4 @@
> >                  else:
> >                      args = args[:-1]
> >                  if 'geckoview' in app:
> > +                    self.device.launch_geckoview_testrunner(app, e10s=True, moz_env=env, extra_args=args, url=url)
> 
> We don't want to check for geckoview_example?

No. remoteautomation is only used by mochitest and reftest, and I'm pretty sure we do not want to run those in geckoview_example.
I agree with launch_activity - hopefully this is what you had in mind?

https://treeherder.mozilla.org/#/jobs?repo=try&revision=396ad317d4df1a0f8198b194db0f4b02a46c584d verifies the existing geckoview smoketest. I expect failures on mochitest/reftest but will verify that they at least launch TestRunnerActivity.
Attachment #8966402 - Attachment is obsolete: true
Attachment #8966700 - Flags: review?(bob)
Comment on attachment 8966700 [details] [diff] [review]
transform launch_geckoview_example into more general launch_activity

Review of attachment 8966700 [details] [diff] [review]:
-----------------------------------------------------------------

wfm. r+
Attachment #8966700 - Flags: review?(bob) → review+
Pushed by gbrown@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/893740eee615
Use TestRunnerActivity for geckoview mochitest/reftest; r=bc
https://hg.mozilla.org/mozilla-central/rev/893740eee615
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
Blocks: 1425322
See Also: → 1479584
You need to log in before you can comment on or make changes to this bug.