Closed Bug 1251053 Opened 8 years ago Closed 3 years ago

Make Android Unit tests run in parallel

Categories

(Firefox for Android Graveyard :: Testing, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: nalexander, Unassigned, Mentored)

References

Details

(Whiteboard: [lang=java][good next bug])

At https://dxr.mozilla.org/mozilla-central/source/mobile/android/app/build.gradle#150, we'd like to use the number of processors or hyperthreads, or some fixed constant > 1.

To get there we need to make some tests that currently bind ports either not bind ports, or bind ports more leniently.

On my machine this drops test run time from about 120s to about 20s.  \o/
This is a good mentor ticket.  To address this, first prepare a Fennec build.  (An artifact build will work fine.)  Then, change the constant in c#0 to 2 or 4.  Then, run |mach gradle tests| and witness the test failures.

Now, the interesting part -- dig into the HTTP test server port binding and make this robust in the face of parallel tests :)
Mentor: vivekb.balakrishnan
Can I work on this? Is it a good first bug?
(In reply to Akshay Jain from comment #2)
> Can I work on this? Is it a good first bug?

There's some learning to be done, but I think so!  Follow the instructions in #c1 and see where you get to.

mcomella, can you help mentor Akshay as well?  Thanks!
Flags: needinfo?(michael.l.comella)
(In reply to Nick Alexander :nalexander from comment #3)
> mcomella, can you help mentor Akshay as well?  Thanks!

I will do my best.

However, I have unit test failures locally (~95 failures – see bug 1271000) but Sebastian doesn't appear to be seeing them. The failures seem to be related to port binding so perhaps my tests are already running in parallel.

Akshay, if you don't see these failures locally, you should be able to move forward with this bug. However, if you see such errors, you may have to figure out bug 1271000 first in order to move forward – note that it's something that I was planning on looking in to within the next few days.

(In reply to Akshay Jain from comment #2)
> Can I work on this? Is it a good first bug?

I usually recommend simple first bugs that just involve getting the build system set up to start with – perhaps you'd like to try bug 1158979 and come back to this one once you're finished?
Mentor: michael.l.comella
Depends on: 1271000
Flags: needinfo?(michael.l.comella)
OK Michael. I will work on bug 1158979 and will come back to finish this unless someone wants to do it.
(In reply to Michael Comella (:mcomella) from comment #4)
> (In reply to Nick Alexander :nalexander from comment #3)
> However, I have unit test failures locally (~95 failures – see bug 1271000)
> but Sebastian doesn't appear to be seeing them.

I didn't have the appropriate crypto packages installed – check out https://wiki.mozilla.org/Mobile/Fennec/Android/Testing#JUnit4_tests for more.

> The failures seem to be
> related to port binding so perhaps my tests are already running in parallel.

Probably weren't.
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.