Closed
Bug 1426586
Opened 7 years ago
Closed 7 years ago
Autophone - execute Autophone Device tests via Taskcluster
Categories
(Testing Graveyard :: Autophone, enhancement)
Testing Graveyard
Autophone
Tracking
(firefox62 fixed)
RESOLVED
FIXED
mozilla62
Tracking | Status | |
---|---|---|
firefox62 | --- | fixed |
People
(Reporter: bc, Assigned: bc)
References
Details
Attachments
(5 files, 25 obsolete files)
30.82 KB,
patch
|
bc
:
review+
|
Details | Diff | Splinter Review |
45.02 KB,
patch
|
Details | Diff | Splinter Review | |
13.39 KB,
patch
|
jonasfj
:
review+
|
Details | Diff | Splinter Review |
4.49 KB,
patch
|
gbrown
:
review+
jmaher
:
review+
|
Details | Diff | Splinter Review |
1.73 KB,
patch
|
jmaher
:
review+
|
Details | Diff | Splinter Review |
Autophone executes performance tests and unittests on real Android devices. It exists in https://github.com/mozilla/autophone and as such is completely outside the normal testing infrastructure.
By converting Autophone to use the Taskcluster infrastructure to execute Gecko tests we can obtain parity with other test frameworks and promote the maintainability and scalability of Android device testing.
Updated•7 years ago
|
Assignee | ||
Comment 1•7 years ago
|
||
Add support for android hardware using taskcluster workers.
Assignee | ||
Comment 2•7 years ago
|
||
Add android-hw-common-tests to taskcluster/ci/test/test-sets.yml
Assignee | ||
Comment 3•7 years ago
|
||
Add worker types proj-autophone/gecko-t-ap-unit-gs3, proj-autophone/gecko-t-ap-unit-pix for android-hw-common-tests
Assignee | ||
Comment 4•7 years ago
|
||
Assignee | ||
Updated•7 years ago
|
Attachment #8954313 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8954314 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8954315 -
Attachment is obsolete: true
Assignee | ||
Comment 5•7 years ago
|
||
Assignee | ||
Comment 6•7 years ago
|
||
Will probably remove this altogether but it is helpful atm.
Assignee | ||
Comment 7•7 years ago
|
||
Assignee | ||
Comment 8•7 years ago
|
||
Assignee | ||
Comment 9•7 years ago
|
||
Assignee | ||
Comment 10•7 years ago
|
||
Assignee | ||
Comment 11•7 years ago
|
||
I'll ask for review of this in Bug 1440714.
Assignee | ||
Comment 12•7 years ago
|
||
I'll ask for review of this in Bug 1440714.
Assignee | ||
Comment 13•7 years ago
|
||
I'll ask for review of this in Bug 1440714.
Assignee | ||
Comment 14•7 years ago
|
||
I'll ask for review of this in Bug 1440714.
Assignee | ||
Comment 15•7 years ago
|
||
Assignee | ||
Comment 16•7 years ago
|
||
Assignee | ||
Comment 17•7 years ago
|
||
A try run with the above patches using a local gs3 and bitbar pixels:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=44a59658315a960146d3d5060cb8913872ab9af3
Assignee | ||
Updated•7 years ago
|
Attachment #8966306 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966307 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966308 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966309 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966310 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966311 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966314 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966315 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966316 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966317 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966318 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8966319 -
Attachment is obsolete: true
Assignee | ||
Comment 18•7 years ago
|
||
Basically a modified clone of the android emulator mozharness config and script.
Geoff: I think we have an opportunity later to consolidate the emulator and hardware scripts since they are so very similar but I think it will be best if we keep them separate until we are in a good place.
Attachment #8982217 -
Flags: review?(gbrown)
Assignee | ||
Comment 19•7 years ago
|
||
Jonas: This add support for the 'script-engine' to the job transforms. It is (as noted in the comments) a clone of the code for 'native-engine'.
Attachment #8982218 -
Flags: review?(jopsen)
Assignee | ||
Comment 20•7 years ago
|
||
Geoff: This renames the android test platforms to be android-em so that we can distinguish between emulators and hardware.
Attachment #8982219 -
Flags: review?(gbrown)
Assignee | ||
Comment 21•7 years ago
|
||
Geoff, Joel: This adds the android hardware to the test platforms. Initially, I'm only enabling this on try until we have this running smoothly there.
Attachment #8982220 -
Flags: review?(jmaher)
Attachment #8982220 -
Flags: review?(gbrown)
Assignee | ||
Comment 22•7 years ago
|
||
Geoff, Joel: This defines the android-hw-common-tests which lists the tests being enabled for android hardware.
Attachment #8982223 -
Flags: review?(jmaher)
Attachment #8982223 -
Flags: review?(gbrown)
Assignee | ||
Comment 23•7 years ago
|
||
Geoff, Joel: This patch assigns the android-hw-common-tests to the various supported hardware and identifies the worker types and engine used in the taskcluster-workers.
Attachment #8982224 -
Flags: review?(jmaher)
Attachment #8982224 -
Flags: review?(gbrown)
Assignee | ||
Comment 24•7 years ago
|
||
Jonas, Geoff, Joel: This explicitly sets the worker types for the hardware. I'm not totally certain that using null for the default test platform is right, but it seems to work.
Attachment #8982225 -
Flags: review?(jopsen)
Attachment #8982225 -
Flags: review?(jmaher)
Attachment #8982225 -
Flags: review?(gbrown)
Assignee | ||
Comment 25•7 years ago
|
||
try runs with only slight differences with current patch versions:
<https://treeherder.mozilla.org/#/jobs?repo=try&author=bclary@mozilla.com&filter-tier=1&filter-tier=2&filter-tier=3&fromchange=1c3d1c2613ee346cb2dcae5ce83b9db06dec1420>
Comment 26•7 years ago
|
||
Comment on attachment 8982220 [details] [diff] [review]
test-platform-assignments.patch
Review of attachment 8982220 [details] [diff] [review]:
-----------------------------------------------------------------
some small nits- happy to consider them in a followup or carry the r+ forward
::: taskcluster/ci/test/misc.yml
@@ +85,5 @@
> chunks:
> by-test-platform:
> # android-em-4.3-arm7-api-16/debug -- not run
> android-em-4.3-arm7-api-16/opt: 4
> + android-hw.*: 4
could we do |android.*: 4|
@@ +188,5 @@
> allow-software-gl-layers: false
> run-on-projects:
> by-test-platform:
> + # Do not run on android hardware
> + android-hw.*: []
if we want test-verify to run on hardware, test-verify-gpu should run; but it will need a little bit of tweaking. we only have gpu to split out specific tests that are known to require gpu
::: taskcluster/ci/test/mochitest.yml
@@ +46,5 @@
> instance-size:
> by-test-platform:
> linux64-jsdcov/opt: xlarge
> android-em.*: xlarge
> + android-hw.*: large
do we need instance-size here? isn't it ignored?
::: taskcluster/ci/test/reftest.yml
@@ +46,5 @@
> chunks:
> by-test-platform:
> android-em-4.3-arm7-api-16/debug: 10
> android-em-7.0-x86/opt: 1
> + android.*: 4
I would make the 1 or 2; opt could run in ~20 minutes and debug ~45 minutes with 1 chunk.
@@ +77,5 @@
> by-test-platform:
> android-em-4.3-arm7-api-16/debug: 100
> android-em-7.0-x86/opt: 3
> android-em.*: 40
> + android-hw.*: 8
this is good if we have adjust the 7200 second timeout down to 3600; debug is <45 minutes; opt (g5 and p2) < 25 minutes.
@@ +118,5 @@
> by-test-platform:
> android-em-4.3-arm7-api-16/debug: 56
> android-em-7.0-x86/opt: 5
> android-em.*: 28
> + android-hw.*: 8
I would argue for 4 chunks
@@ +131,5 @@
> linux32/debug: both
> default: true
> max-run-time:
> by-test-platform:
> + android.*: 7200
current runtime with 8 chunks is <20 minutes/chunk; if we go with 4 chunks can we use 3600; if we keep 8, can we do 1800?
::: taskcluster/ci/test/test-platforms.yml
@@ +263,5 @@
>
> ##
> # Android platforms (matching /android-em.*/)
> +#
> +# android-em test platforms execute on android emulators.
do we need to add android-hw here?
Attachment #8982220 -
Flags: review?(jmaher) → review+
Comment 27•7 years ago
|
||
Comment on attachment 8982223 [details] [diff] [review]
add-android-hw-common-tests.patch
Review of attachment 8982223 [details] [diff] [review]:
-----------------------------------------------------------------
::: taskcluster/ci/test/test-sets.yml
@@ +372,5 @@
> + - mochitest-webgl
> + - reftest
> + - robocop
> + - test-verify
> + - xpcshell
I want to be careful that we do not allow this for motog5 as that is designed just for performance tests.
we will probably run many of these tests on aarch64, but not regular p2. The reason why is emulators will get us the regular arm coverage.
I would like to rethink this a bit more.
Attachment #8982223 -
Flags: review?(jmaher) → review-
Comment 28•7 years ago
|
||
Comment on attachment 8982224 [details] [diff] [review]
gecko-t-ap-unit-workertypes.patch
Review of attachment 8982224 [details] [diff] [review]:
-----------------------------------------------------------------
::: taskcluster/ci/test/test-platforms.yml
@@ +311,5 @@
> + build-platform: android-api-16/opt
> + test-sets:
> + - android-hw-common-tests
> +
> +android-hw-p2-8-0-android-aarch64/opt:
do we need a debug here?
::: taskcluster/taskgraph/util/workertypes.py
@@ +49,5 @@
> "scriptworker-prov-v1/shipit-dev": ('shipit', None),
> "scriptworker-prov-v1/treescript-v1": ('treescript', None),
> 'releng-hardware/gecko-t-osx-1010': ('generic-worker', 'macosx'),
> + 'proj-autophone/gecko-t-ap-unit-m5': ('script-engine', 'linux'),
> + 'proj-autophone/gecko-t-ap-unit-p2': ('script-engine', 'linux'),
proj-autophone? is that hardcoded into taskcluster? I think it is a fine name, just curious.
Attachment #8982224 -
Flags: review?(jmaher) → review+
Comment 29•7 years ago
|
||
Comment on attachment 8982225 [details] [diff] [review]
gecko-t-ap-unit-android-hw-common-tests.patch
Review of attachment 8982225 [details] [diff] [review]:
-----------------------------------------------------------------
could we do this with a transform instead of repeated code over and over again? The changes look fine, but I really don't like the cut/paste style of we have a cleaner solution. Possibly there is a good reason for not using a transform.
Attachment #8982225 -
Flags: review?(jmaher) → review-
Assignee | ||
Comment 30•7 years ago
|
||
(In reply to Joel Maher ( :jmaher ) (UTC-4) from comment #26)
> Comment on attachment 8982220 [details] [diff] [review]
> test-platform-assignments.patch
>
> Review of attachment 8982220 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> some small nits- happy to consider them in a followup or carry the r+ forward
>
> ::: taskcluster/ci/test/misc.yml
> @@ +85,5 @@
> > chunks:
> > by-test-platform:
> > # android-em-4.3-arm7-api-16/debug -- not run
> > android-em-4.3-arm7-api-16/opt: 4
> > + android-hw.*: 4
>
> could we do |android.*: 4|
It depends if we/gbrown want to treat all of the android's the same. We have android-em-(4.3-arm|4.2-x86|7.0-x86)
>
> @@ +188,5 @@
> > allow-software-gl-layers: false
> > run-on-projects:
> > by-test-platform:
> > + # Do not run on android hardware
> > + android-hw.*: []
>
> if we want test-verify to run on hardware, test-verify-gpu should run; but
> it will need a little bit of tweaking. we only have gpu to split out
> specific tests that are known to require gpu
>
It wasn't (isn't) clear to me but I wanted to make sure I wasn't requesting a virtual machine with gpu somewhere unintentionally. We can try it.
> ::: taskcluster/ci/test/mochitest.yml
> @@ +46,5 @@
> > instance-size:
> > by-test-platform:
> > linux64-jsdcov/opt: xlarge
> > android-em.*: xlarge
> > + android-hw.*: large
>
> do we need instance-size here? isn't it ignored?
It is ignored due to the later patch that explicitly sets the workertype but it is required. Again I picked large to keep from accidentally asking for an xlarge. The schema doesn't allows us to say null or none or something else as far as I know.
>
> ::: taskcluster/ci/test/reftest.yml
> @@ +46,5 @@
> > chunks:
> > by-test-platform:
> > android-em-4.3-arm7-api-16/debug: 10
> > android-em-7.0-x86/opt: 1
> > + android.*: 4
>
> I would make the 1 or 2; opt could run in ~20 minutes and debug ~45 minutes
> with 1 chunk.
I had
android-em.*: 4
android-hw.*: 4
I don't think we want the emulator to use 1 or 2.
We'd probably want to distinguish the m5 since it appears to be much slower.
I could split out android-em-4, android-em-7, android-hw-p2, android-hw-m5 and reduce the chunks for the p2.
>
> @@ +77,5 @@
> > by-test-platform:
> > android-em-4.3-arm7-api-16/debug: 100
> > android-em-7.0-x86/opt: 3
> > android-em.*: 40
> > + android-hw.*: 8
>
> this is good if we have adjust the 7200 second timeout down to 3600; debug
> is <45 minutes; opt (g5 and p2) < 25 minutes.
>
> @@ +118,5 @@
> > by-test-platform:
> > android-em-4.3-arm7-api-16/debug: 56
> > android-em-7.0-x86/opt: 5
> > android-em.*: 28
> > + android-hw.*: 8
>
> I would argue for 4 chunks
Ok.
>
> @@ +131,5 @@
> > linux32/debug: both
> > default: true
> > max-run-time:
> > by-test-platform:
> > + android.*: 7200
>
> current runtime with 8 chunks is <20 minutes/chunk; if we go with 4 chunks
> can we use 3600; if we keep 8, can we do 1800?
Again I combined the android-hw with the previous android-em. I can split out android-hw and reduce it.
>
> ::: taskcluster/ci/test/test-platforms.yml
> @@ +263,5 @@
> >
> > ##
> > # Android platforms (matching /android-em.*/)
> > +#
> > +# android-em test platforms execute on android emulators.
>
> do we need to add android-hw here?
In follow up patch.
(In reply to Joel Maher ( :jmaher ) (UTC-4) from comment #27)
> Comment on attachment 8982223 [details] [diff] [review]
> add-android-hw-common-tests.patch
>
> Review of attachment 8982223 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: taskcluster/ci/test/test-sets.yml
> @@ +372,5 @@
> > + - mochitest-webgl
> > + - reftest
> > + - robocop
> > + - test-verify
> > + - xpcshell
>
> I want to be careful that we do not allow this for motog5 as that is
> designed just for performance tests.
>
> we will probably run many of these tests on aarch64, but not regular p2.
> The reason why is emulators will get us the regular arm coverage.
>
> I would like to rethink this a bit more.
I was planning on making the assignments via the workertype via gecko-t-ap-unit-android-hw-common-tests.patch. That would give us fine control over what is run without having lots of test sets. I can adapt to the preferred style whatever we decide that is.
(In reply to Joel Maher ( :jmaher ) (UTC-4) from comment #28)
> Comment on attachment 8982224 [details] [diff] [review]
> gecko-t-ap-unit-workertypes.patch
>
> Review of attachment 8982224 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: taskcluster/ci/test/test-platforms.yml
> @@ +311,5 @@
> > + build-platform: android-api-16/opt
> > + test-sets:
> > + - android-hw-common-tests
> > +
> > +android-hw-p2-8-0-android-aarch64/opt:
>
> do we need a debug here?
>
There isn't one (yet). The way I did it originally I didn't make the distinction and got messages in the taskgraph generation about there not being a android-hw-p2-8-0-android-aarch64/debug and the task being dropped so I was very explicit. I can look at it more.
> ::: taskcluster/taskgraph/util/workertypes.py
> @@ +49,5 @@
> > "scriptworker-prov-v1/shipit-dev": ('shipit', None),
> > "scriptworker-prov-v1/treescript-v1": ('treescript', None),
> > 'releng-hardware/gecko-t-osx-1010': ('generic-worker', 'macosx'),
> > + 'proj-autophone/gecko-t-ap-unit-m5': ('script-engine', 'linux'),
> > + 'proj-autophone/gecko-t-ap-unit-p2': ('script-engine', 'linux'),
>
> proj-autophone? is that hardcoded into taskcluster? I think it is a fine
> name, just curious.
Well, not in taskcluster itself but in the taskcluster client configurations. We picked it early on and have just kept running with it.
Assignee | ||
Comment 31•7 years ago
|
||
(In reply to Joel Maher ( :jmaher ) (UTC-4) from comment #29)
> Comment on attachment 8982225 [details] [diff] [review]
> gecko-t-ap-unit-android-hw-common-tests.patch
>
> Review of attachment 8982225 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> could we do this with a transform instead of repeated code over and over
> again? The changes look fine, but I really don't like the cut/paste style
> of we have a cleaner solution. Possibly there is a good reason for not
> using a transform.
We might be able to do so, but we need to make sure we have an explicit worker type so that we take the first branch in
https://searchfox.org/mozilla-central/source/taskcluster/taskgraph/transforms/tests.py#918
Assignee | ||
Comment 32•7 years ago
|
||
PS. This also gives us very visible fine control over which worker types are used to run the tests. I like that. We could easily modify these so that there are different worker types defined for the tests rather than the identical ones I am starting with. For example, p2 aarch64 but not arm7 or p2 but not m5 etc.
I'm not sure but it seems at least until we know what we will be running it would be confusing to do this as a transform. But good idea in general.
Your call.
![]() |
||
Updated•7 years ago
|
Attachment #8982219 -
Flags: review?(gbrown) → review+
![]() |
||
Comment 33•7 years ago
|
||
Comment on attachment 8982220 [details] [diff] [review]
test-platform-assignments.patch
Review of attachment 8982220 [details] [diff] [review]:
-----------------------------------------------------------------
::: taskcluster/ci/test/misc.yml
@@ +85,5 @@
> chunks:
> by-test-platform:
> # android-em-4.3-arm7-api-16/debug -- not run
> android-em-4.3-arm7-api-16/opt: 4
> + android-hw.*: 4
I think |android.*: 4| would be okay. Maybe remove the "not run" comment at the same time.
::: taskcluster/ci/test/mochitest.yml
@@ +402,5 @@
> loopback-video: true
> max-run-time:
> by-test-platform:
> windows.*: 5400
> + android.*: 7200
The 7200 seconds (2 hours) for emulator is pretty exceptional. If you can run faster on hardware, you should reduce this, ideally to the 3600 default.
Attachment #8982220 -
Flags: review?(gbrown) → review+
![]() |
||
Updated•7 years ago
|
Attachment #8982224 -
Flags: review?(gbrown) → review+
![]() |
||
Comment 34•7 years ago
|
||
Comment on attachment 8982217 [details] [diff] [review]
android_hardware_unittest.patch
Review of attachment 8982217 [details] [diff] [review]:
-----------------------------------------------------------------
Let's be sure to follow up on --total-chunks and --deviceSerial for geckoview-junit.
I wouldn't mind seeing android_common.py leveraged before check-in, but we can re-visit that later, perhaps when we consolidate emulator and hardware scripts.
::: testing/mozharness/configs/android/android_hw.py
@@ +32,5 @@
> + "find_links": [
> + "https://pypi.pub.build.mozilla.org/pub",
> + ],
> + "pip_index": False,
> + "suite_definitions": {
Oh no! I had really hoped you would re-use android_common.py. I notice the extra log- arguments and --deviceSerial. Probably those could be used by the emulator as well....
@@ +53,5 @@
> + "--log-tbpl-level=%(log_tbpl_level)s",
> + "--extra-profile-file=fonts",
> + "--extra-profile-file=hyphenation",
> + "--screenshot-on-fail",
> + "--total-chunks=20",
Why --total-chunks? That should come from the taskcluster yml.
@@ +75,5 @@
> + "--log-raw-level=%(log_raw_level)s",
> + "--log-errorsummary=%(error_summary_file)s",
> + "--log-tbpl-level=%(log_tbpl_level)s",
> + "--screenshot-on-fail",
> + "--total-chunks=10",
Ditto.
@@ +340,5 @@
> + "options": [
> + "--certificate-path=%(certs_path)s",
> + "--remote-webserver=%(remote_webserver)s",
> + "--symbols-path=%(symbols_path)s",
> + "--utility-path=%(utility_path)s",
Why no --deviceSerial?
::: testing/mozharness/scripts/android_hardware_unittest.py
@@ +310,5 @@
> + def _restart_adbd(self):
> + self._run_with_timeout(30, [self.adb_path, 'kill-server'])
> + self._run_with_timeout(30, [self.adb_path, 'root'])
> +
> + def _screenshot(self, prefix):
Screenshots are useful to show the state of the emulator, but probably not useful for bitbar?
Attachment #8982217 -
Flags: review?(gbrown) → review+
![]() |
||
Comment 35•7 years ago
|
||
Comment on attachment 8982225 [details] [diff] [review]
gecko-t-ap-unit-android-hw-common-tests.patch
Review of attachment 8982225 [details] [diff] [review]:
-----------------------------------------------------------------
I don't have a strong opinion on transform vs yml configuration.
Attachment #8982225 -
Flags: review?(gbrown) → review+
![]() |
||
Comment 36•7 years ago
|
||
Comment on attachment 8982223 [details] [diff] [review]
add-android-hw-common-tests.patch
Review of attachment 8982223 [details] [diff] [review]:
-----------------------------------------------------------------
That's an impressive list of tests!
When I read that, it does suggest to me "all of these tests will be run on all android-hw devices". If that's not the case, I'd be more inclined to have multiple android-hw test sets defined here. But I'm not sure I understand all the consideration...maybe bc and jmaher should work this out.
Attachment #8982223 -
Flags: review?(gbrown)
![]() |
||
Comment 37•7 years ago
|
||
Comment on attachment 8982217 [details] [diff] [review]
android_hardware_unittest.patch
Review of attachment 8982217 [details] [diff] [review]:
-----------------------------------------------------------------
::: testing/mozharness/scripts/android_hardware_unittest.py
@@ +543,5 @@
> + logcat_filename = 'logcat-%s.log' % self.device_serial
> + logcat_path = os.path.join(self.abs_dirs['abs_blob_upload_dir'],
> + logcat_filename)
> + self.logcat_file = open(logcat_path, 'w')
> + logcat_cmd = [self.adb_path, '-s', self.device_serial, '-v',
oops! Missing 'logcat' here, so your logs show:
11:27:27 INFO - adb -s ZY322LDS6T -v threadtime Trace:S StrictMode:S ExchangeService:S
11:27:27 INFO - Running timeout 30 adb -s ZY322LDS6T shell ps
adb: usage: unknown command -v
...and you are missing the logcat artifact!
Assignee | ||
Comment 38•7 years ago
|
||
(In reply to Geoff Brown [:gbrown] from comment #33)
> Comment on attachment 8982220 [details] [diff] [review]
> test-platform-assignments.patch
>
> Review of attachment 8982220 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: taskcluster/ci/test/misc.yml
> @@ +85,5 @@
> > chunks:
> > by-test-platform:
> > # android-em-4.3-arm7-api-16/debug -- not run
> > android-em-4.3-arm7-api-16/opt: 4
> > + android-hw.*: 4
>
> I think |android.*: 4| would be okay. Maybe remove the "not run" comment at
> the same time.
>
Ok.
> ::: taskcluster/ci/test/mochitest.yml
> @@ +402,5 @@
> > loopback-video: true
> > max-run-time:
> > by-test-platform:
> > windows.*: 5400
> > + android.*: 7200
>
> The 7200 seconds (2 hours) for emulator is pretty exceptional. If you can
> run faster on hardware, you should reduce this, ideally to the 3600 default.
Ok.
(In reply to Geoff Brown [:gbrown] from comment #34)
> Comment on attachment 8982217 [details] [diff] [review]
> android_hardware_unittest.patch
>
> Review of attachment 8982217 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Let's be sure to follow up on --total-chunks and --deviceSerial for
> geckoview-junit.
>
Done.
> I wouldn't mind seeing android_common.py leveraged before check-in, but we
> can re-visit that later, perhaps when we consolidate emulator and hardware
> scripts.
>
Sounds good.
> ::: testing/mozharness/configs/android/android_hw.py
> @@ +32,5 @@
> > + "find_links": [
> > + "https://pypi.pub.build.mozilla.org/pub",
> > + ],
> > + "pip_index": False,
> > + "suite_definitions": {
>
> Oh no! I had really hoped you would re-use android_common.py. I notice the
> extra log- arguments and --deviceSerial. Probably those could be used by the
> emulator as well....
>
Ok.
> @@ +53,5 @@
> > + "--log-tbpl-level=%(log_tbpl_level)s",
> > + "--extra-profile-file=fonts",
> > + "--extra-profile-file=hyphenation",
> > + "--screenshot-on-fail",
> > + "--total-chunks=20",
>
> Why --total-chunks? That should come from the taskcluster yml.
Copy/paste from an old version of android_common.py that was removed in Bug 1431433.
I'll remove them all.
>
> @@ +75,5 @@
> > + "--log-raw-level=%(log_raw_level)s",
> > + "--log-errorsummary=%(error_summary_file)s",
> > + "--log-tbpl-level=%(log_tbpl_level)s",
> > + "--screenshot-on-fail",
> > + "--total-chunks=10",
>
> Ditto.
>
> @@ +340,5 @@
> > + "options": [
> > + "--certificate-path=%(certs_path)s",
> > + "--remote-webserver=%(remote_webserver)s",
> > + "--symbols-path=%(symbols_path)s",
> > + "--utility-path=%(utility_path)s",
>
> Why no --deviceSerial?
>
Brain fart? Fixed.
> ::: testing/mozharness/scripts/android_hardware_unittest.py
> @@ +310,5 @@
> > + def _restart_adbd(self):
> > + self._run_with_timeout(30, [self.adb_path, 'kill-server'])
> > + self._run_with_timeout(30, [self.adb_path, 'root'])
> > +
> > + def _screenshot(self, prefix):
>
> Screenshots are useful to show the state of the emulator, but probably not
> useful for bitbar?
They can do screenshots for us. I don't see why they wouldn't be useful there as well.
(In reply to Geoff Brown [:gbrown] from comment #36)
> Comment on attachment 8982223 [details] [diff] [review]
> add-android-hw-common-tests.patch
>
> Review of attachment 8982223 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> That's an impressive list of tests!
>
> When I read that, it does suggest to me "all of these tests will be run on
> all android-hw devices". If that's not the case, I'd be more inclined to
> have multiple android-hw test sets defined here. But I'm not sure I
> understand all the consideration...maybe bc and jmaher should work this out.
Ok. Let's figure this out when we have a better idea of what will be actually running in production.
Thanks!
Assignee | ||
Comment 39•7 years ago
|
||
(In reply to Geoff Brown [:gbrown] from comment #37)
> Comment on attachment 8982217 [details] [diff] [review]
> android_hardware_unittest.patch
>
> Review of attachment 8982217 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: testing/mozharness/scripts/android_hardware_unittest.py
> @@ +543,5 @@
> > + logcat_filename = 'logcat-%s.log' % self.device_serial
> > + logcat_path = os.path.join(self.abs_dirs['abs_blob_upload_dir'],
> > + logcat_filename)
> > + self.logcat_file = open(logcat_path, 'w')
> > + logcat_cmd = [self.adb_path, '-s', self.device_serial, '-v',
>
> oops! Missing 'logcat' here, so your logs show:
>
> 11:27:27 INFO - adb -s ZY322LDS6T -v threadtime Trace:S StrictMode:S
> ExchangeService:S
> 11:27:27 INFO - Running timeout 30 adb -s ZY322LDS6T shell ps
> adb: usage: unknown command -v
>
> ...and you are missing the logcat artifact!
doh!
Comment 40•7 years ago
|
||
Comment on attachment 8982218 [details] [diff] [review]
mozharness-test-job-transform.patch
Review of attachment 8982218 [details] [diff] [review]:
-----------------------------------------------------------------
The idea with script-engine is the same as scriptworker, you define a scrip that takes a custom payload.
If you want to use it like native-engine (ie. it has the same payload format), then don't make a new wrapper for it.
The question you have to ask is:
- What is the payload format
- How do you write a wrapper for that:
- is it pass-through without any transforms, or,
- is it generalized
(probably not worth the effort)
Hit me up on IRC Wednesday, and we jump on vidyo on chat about this :)
Attachment #8982218 -
Flags: review?(jopsen) → review-
Comment 41•7 years ago
|
||
Comment on attachment 8982225 [details] [diff] [review]
gecko-t-ap-unit-android-hw-common-tests.patch
Review of attachment 8982225 [details] [diff] [review]:
-----------------------------------------------------------------
I have no real insights on this.
Attachment #8982225 -
Flags: review?(jopsen)
Assignee | ||
Updated•7 years ago
|
Attachment #8982217 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8982218 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8982219 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8982220 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8982223 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8982224 -
Attachment is obsolete: true
Assignee | ||
Updated•7 years ago
|
Attachment #8982225 -
Attachment is obsolete: true
Assignee | ||
Comment 42•7 years ago
|
||
New order for the patches.
This patch is an un bit rotted version of the original. carrying forwards gbrown's r+.
Attachment #8986353 -
Flags: review+
Assignee | ||
Comment 43•7 years ago
|
||
updated version carrying forward gbrown's r+.
Assignee | ||
Comment 44•7 years ago
|
||
Removed the extra tests and used a different test set name: android-hw-aarch64-unittests. This includes mochitest-media and jit tests on Pixel 2 aarch64.
Attachment #8986356 -
Flags: review?(jmaher)
Attachment #8986356 -
Flags: review?(gbrown)
Assignee | ||
Comment 45•7 years ago
|
||
As we discussed this changes the implementation name to script-engine-autophone.
Attachment #8986357 -
Flags: review?(jopsen)
Assignee | ||
Comment 46•7 years ago
|
||
Reduced to only the mochitest-media and jit tests.
Attachment #8986358 -
Flags: review?(jmaher)
Attachment #8986358 -
Flags: review?(gbrown)
Assignee | ||
Comment 47•7 years ago
|
||
try run: Fuzzy query=^test-android-hw-p2 jittest | mochitest-media
https://treeherder.mozilla.org/#/jobs?repo=try&revision=336b9b9a56357e176f455f24ed0894dd2780ae5e&filter-tier=1&filter-tier=2&filter-tier=3
try run: try: -b do -p android-x86,android-api-16,android-aarch64 -u all -t none
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d3022625d05cd75be098d970a227a969cd3afff6&filter-tier=1&filter-tier=2&filter-tier=3
Only the first two patches android-em.patch, android_hardware_unittest.patch can be landed prior to turning on the tests. The others must land together when the tests are enabled.
Comment 48•7 years ago
|
||
Comment on attachment 8986358 [details] [diff] [review]
test-platform-assignments.patch
Review of attachment 8986358 [details] [diff] [review]:
-----------------------------------------------------------------
nice and simple
Attachment #8986358 -
Flags: review?(jmaher) → review+
Comment 49•7 years ago
|
||
Comment on attachment 8986356 [details] [diff] [review]
03 add-android-hw-common-tests.patch
Review of attachment 8986356 [details] [diff] [review]:
-----------------------------------------------------------------
some small questions, happy to r+ after answers are given in bug or irc
::: taskcluster/ci/test/test-platforms.yml
@@ +309,5 @@
> + build-platform: android-aarch64/opt
> + test-sets:
> + - android-hw-aarch64-unittests
> +
> +android-hw-p2-8-0-android-aarch64/debug:
do we have debug aarch64 builds?
::: taskcluster/ci/test/test-sets.yml
@@ +369,5 @@
> - mochitest-plain-headless
> +
> +android-hw-aarch64-unittests:
> + - jittest
> + - mochitest-media
do we want mochitest-media on aarch64? I thought this was for 32 bit regular geckoview?
Attachment #8986356 -
Flags: review?(jmaher) → review-
Assignee | ||
Comment 50•7 years ago
|
||
(In reply to Joel Maher ( :jmaher ) (UTC-4) from comment #49)
> Comment on attachment 8986356 [details] [diff] [review]
> 03 add-android-hw-common-tests.patch
>
> Review of attachment 8986356 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> some small questions, happy to r+ after answers are given in bug or irc
>
> ::: taskcluster/ci/test/test-platforms.yml
> @@ +309,5 @@
> > + build-platform: android-aarch64/opt
> > + test-sets:
> > + - android-hw-aarch64-unittests
> > +
> > +android-hw-p2-8-0-android-aarch64/debug:
>
> do we have debug aarch64 builds?
>
Not yet but there was no reason not to have them according to snorp so I filed Bug 1467868.
> ::: taskcluster/ci/test/test-sets.yml
> @@ +369,5 @@
> > - mochitest-plain-headless
> > +
> > +android-hw-aarch64-unittests:
> > + - jittest
> > + - mochitest-media
>
> do we want mochitest-media on aarch64? I thought this was for 32 bit
> regular geckoview?
It seemed to me they really didn't care about 32bit and that 64bit was the future. I'll let cpeterson and snorp make the call. According to my estimates we can't support both unless we have more devices.
Flags: needinfo?(snorp)
Flags: needinfo?(cpeterson)
![]() |
||
Updated•7 years ago
|
Attachment #8986358 -
Flags: review?(gbrown) → review+
Comment 51•7 years ago
|
||
(In reply to Bob Clary [:bc:] from comment #50)
> > do we want mochitest-media on aarch64? I thought this was for 32 bit
> > regular geckoview?
>
> It seemed to me they really didn't care about 32bit and that 64bit was the
> future. I'll let cpeterson and snorp make the call. According to my
> estimates we can't support both unless we have more devices.
If we only have resources to test 32bit xor 64bit, then I think we should test 32bit. Like you said, 64bit-only is the future for Android, but we currently only ship 32bit builds of Fennec, Focus/Klar, and Firefox Reality. We don't know when we will ship 64bit builds.
Flags: needinfo?(snorp)
Flags: needinfo?(cpeterson)
Assignee | ||
Comment 52•7 years ago
|
||
Chris: Then should I be testing Fennec and not geckoview-androidTest.apk (org.mozilla.geckoview.test.TestRunnerActivity) ?
Flags: needinfo?(cpeterson)
Comment 53•7 years ago
|
||
(In reply to Bob Clary [:bc:] from comment #52)
> Chris: Then should I be testing Fennec and not geckoview-androidTest.apk
> (org.mozilla.geckoview.test.TestRunnerActivity) ?
When do we plan to retire our existing Android test devices? As long as we are still testing Fennec on those devices, I think we can focus on testing geckoview-androidTest.apk on Bitbar.
Flags: needinfo?(cpeterson)
Assignee | ||
Comment 54•7 years ago
|
||
I had thought the OG Autophone would be retired when we have perf tests running under Raptor. I had thought a couple of months but jmaher says more likely late Q3 or Q4.
The other option is not to run the jit tests until we have more devices since they take much longer than the mda tests.
I just realized that my time estimates are based only on aarch64 opt builds since that is all we have available at the moment. But once aarch64 debug builds become available, the current patches will automatically begin to run the jit tests on both opt and debug which will blow our time budget with the current number of devices. I could turn off aarch64 debug jit tests so we would keep under budget or just turn off the jit tests entirely for now.
Comment 55•7 years ago
|
||
to add more context, we are running some perf tests on autophone, but not mochitest-media or jittests (jittests are new for autophone).
once we have mochitest-media/jittest running we will focus on perf:
raptor-speedometer (and if we are lucky compare against chrome)
raptor-webgl benchmark (unity?)
tbd-input latency
tbd-battery measurements
then porting over other perf scenarios like startup and pageload.
Assignee | ||
Comment 56•7 years ago
|
||
mda on arm7 opt,debug; jit arm7 opt
Attachment #8986356 -
Attachment is obsolete: true
Attachment #8986356 -
Flags: review?(gbrown)
Attachment #8986616 -
Flags: review?(jmaher)
Attachment #8986616 -
Flags: review?(gbrown)
Assignee | ||
Comment 57•7 years ago
|
||
removed geckoview-androidTest.apk from mda.
Attachment #8986358 -
Attachment is obsolete: true
Attachment #8986619 -
Flags: review?(jmaher)
Attachment #8986619 -
Flags: review?(gbrown)
Assignee | ||
Comment 58•7 years ago
|
||
No longer depends on: 1469646
Comment 59•7 years ago
|
||
(In reply to Bob Clary [:bc:] from comment #54)
> I had thought the OG Autophone would be retired when we have perf tests
> running under Raptor. I had thought a couple of months but jmaher says more
> likely late Q3 or Q4.
One concern: sphilp mentioned in email that the Raptor tests depend on a WebExtension and, at this time, GeckoView doesn't support WebExtensions (or any legacy Fennec add-ons). We might start look into WebExtension support in Q3 or Q4.
> The other option is not to run the jit tests until we have more devices
> since they take much longer than the mda tests.
>
> I just realized that my time estimates are based only on aarch64 opt builds
> since that is all we have available at the moment. But once aarch64 debug
> builds become available, the current patches will automatically begin to run
> the jit tests on both opt and debug which will blow our time budget with the
> current number of devices. I could turn off aarch64 debug jit tests so we
> would keep under budget or just turn off the jit tests entirely for now.
I'd rather we run some jit tests than none, but anything aarch64 is a lower priority than 32bit ARM.
Bob, do you need any more information from me about GeckoView's test priorities for Bitbar?
Flags: needinfo?(bob)
Assignee | ||
Comment 60•7 years ago
|
||
comment 56: jit arm7 opt
comment 58: coverage.
If that is good enough jit coverage, no. I 'm good.
Flags: needinfo?(bob)
Updated•7 years ago
|
Attachment #8986357 -
Flags: review?(jopsen) → review+
Updated•7 years ago
|
Attachment #8986619 -
Flags: review?(jmaher) → review+
Comment 61•7 years ago
|
||
Comment on attachment 8986616 [details] [diff] [review]
03 add-android-hw-common-tests.patch
Review of attachment 8986616 [details] [diff] [review]:
-----------------------------------------------------------------
one remaining question.
::: taskcluster/ci/test/test-sets.yml
@@ +368,5 @@
> mochitest-headless:
> - mochitest-plain-headless
> +
> +android-hw-arm7-opt-unittests:
> + - jittest
how do we ensure that jittest runs on aarch64 and not on 32 bit?
Attachment #8986616 -
Flags: review?(jmaher) → review-
Assignee | ||
Comment 62•7 years ago
|
||
As I believed I was instructed, I removed all aarch64 tests and configured it to run only on 32bit.
Please provide an exact list of tests and architectures you want to be tested.
Flags: needinfo?(jmaher)
Comment 63•7 years ago
|
||
I thought we were doing:
* 32 bit fennec mochitest-media
* 64 bit jittest geckoview
did we have jittest before on autophone? If so, then we should run 32 bit on fennec, if not- this is a new request specifically for arm64 and we should look into the future for 64 bit jittest and geckoview.
We have been shipping Fennec for many years and we should do what we can to run what we had in the past for coverage. If we are standing up new coverage, then lets be forward looking.
Flags: needinfo?(jmaher)
Assignee | ||
Comment 64•7 years ago
|
||
We didn't have jittest on Autophone.
jittest is a compiled test and doesn't use fennec or geckoview.
Please approve:
32bit opt/debug mochitest-media on fennec.
64bit opt only jittests.
Flags: needinfo?(jmaher)
Comment 65•7 years ago
|
||
this sounds good based on requests and discussion in this bug to date.
Flags: needinfo?(jmaher)
Assignee | ||
Comment 66•7 years ago
|
||
Attachment #8986616 -
Attachment is obsolete: true
Attachment #8986616 -
Flags: review?(gbrown)
Attachment #8986735 -
Flags: review?(jmaher)
Comment 67•7 years ago
|
||
Comment on attachment 8986735 [details] [diff] [review]
add-android-hw-common-tests.patch
Review of attachment 8986735 [details] [diff] [review]:
-----------------------------------------------------------------
looks good, thanks for making this happen!
Attachment #8986735 -
Flags: review?(jmaher) → review+
![]() |
||
Updated•7 years ago
|
Attachment #8986619 -
Flags: review?(gbrown) → review+
Comment 68•7 years ago
|
||
Pushed by bclary@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/baace08171da
Rename android emulator test platforms to android-em, r=gbrown
https://hg.mozilla.org/integration/mozilla-inbound/rev/13c99a5c12ff
Add mozharness script and config for android hardware tests, r=gbrown
https://hg.mozilla.org/integration/mozilla-inbound/rev/7f5be9c3698e
Add android-hw unittests to taskcluster/ci/test/{test-platforms,test-sets}.yml, r=jmaher
https://hg.mozilla.org/integration/mozilla-inbound/rev/8ddc31e62cce
Add job transforms for android hardware tests, r=jonasfj
https://hg.mozilla.org/integration/mozilla-inbound/rev/176d8c0698f3
Add android hardware test platforms for android-hw, r=gbrown,jmaher
Assignee | ||
Comment 69•7 years ago
|
||
The mda tests are running on android-hw-p2-8-0-arm7-api-16 but I am missing the jit tests on android-hw-p2-8-0-android-aarch64 for some reason.
Assignee | ||
Comment 70•7 years ago
|
||
I think the jit tests are missing just because the patches (so far) haven't affected the skip-unless-schedules jit. We'll see as we get more pushes.
Comment 71•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/baace08171da
https://hg.mozilla.org/mozilla-central/rev/13c99a5c12ff
https://hg.mozilla.org/mozilla-central/rev/7f5be9c3698e
https://hg.mozilla.org/mozilla-central/rev/8ddc31e62cce
https://hg.mozilla.org/mozilla-central/rev/176d8c0698f3
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox62:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Blocks: 1608592
Updated•3 years ago
|
Product: Testing → Testing Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•