Closed Bug 739415 Opened 12 years ago Closed 12 years ago

Need more comprehensive talos pan/zoom checkerboarding tests

Categories

(Firefox for Android Graveyard :: General, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 14

People

(Reporter: kats, Assigned: kats)

References

Details

Attachments

(3 files)

We need a talos checkerboarding measurement test that incorporates at least the following:

- scroll on one axis followed by scroll on another axis
- pinch zoom
- double-tap zoom
- multi-fling panning with different velocities on each fling (like a real user would do)
Comment on attachment 609786 [details] [diff] [review]
(1/3) Add ability to log exceptions to robocop log

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

oh, this could give us error messages from tests, I like it.
Attachment #609786 - Flags: review?(jmaher) → review+
Comment on attachment 609787 [details] [diff] [review]
(2/3) Add ability to have other data files with test cases

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

looks pretty straightforward, not fully sure what an asset it though.
Attachment #609787 - Flags: review?(jmaher) → review+
Comment on attachment 609788 [details] [diff] [review]
(3/3) Add another checkerboarding test case that replays actual user motion events

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

can we doccument what testCheck2 is really measuring as well.  Will 5 runs be adequate for getting an average to report?

::: mobile/android/base/tests/testCheck2.java.in
@@ +17,5 @@
> +
> +        mDriver.startCheckerboardRecording();
> +        // replay the events
> +        try {
> +            mer.replayEvents(getAsset("testcheck2-motionevents"));

would we want to load the events and parse then before we start the checkerboardrecording?  maybe:
mer.loadEvents(getAsset("testcheck2-motionevents"));
mDriver.startCheckerboardRecording();
try {
    mer.replayEvents();
}
Attachment #609788 - Flags: review?(jmaher) → review+
(In reply to Joel Maher (:jmaher) from comment #6)
> 
> can we doccument what testCheck2 is really measuring as well.  Will 5 runs
> be adequate for getting an average to report?
> 

Ok, will do. And yes, 5 runs should be fine for an average. I've been running this and testCheck with 10 iterations locally but I haven't been seeing that much variation in the numbers so 5 runs should be fine.

> would we want to load the events and parse then before we start the
> checkerboardrecording?  maybe:
> mer.loadEvents(getAsset("testcheck2-motionevents"));
> mDriver.startCheckerboardRecording();
> try {
>     mer.replayEvents();
> }

I considered doing this but I didn't really want to load the entire file and create all the MotionEvent objects together because if we had really large event files then that would eat up a lot of memory and potentially affect the test run by leaving less memory for the java code to run in. The current approach might suffer from small I/O latencies as it's reading the file, but since all the events are timestamped anyway it shouldn't make a huge difference with respect to the fling velocities and general viewport movement that results.

Also the way I implemented the "real-time" delay between injecting events means that if a few events are delayed and then there's a time gap between events, the injection will "catch up" to where it's supposed to be, rather than maintaining that delay all the way through.
https://hg.mozilla.org/mozilla-central/rev/5fb45a56e2af
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: