Commit Graph

474 Commits

Author SHA1 Message Date
vadimt 29d8b54957 Disabling events checks for successful gestures by default
Launcher tests will still perform checks upon every gesture completion.

All tests using tapl will still use events for diagnostics if the
gesture fails.

The benefit is that system health and other platform tests won't have to
use expensive logcat, and moreover, wait seconds for the events to
appear in logcat because of buffering in logcat.

Change-Id: I3b5a0965d9432144d0c4a8b40ebe2fa89b19a689
2020-01-22 19:16:32 -08:00
vadimt cffe99f0bb Automatically diagnosing known flakes
It often takes a long time to fix a flake; meanwhile it takes a lot of
time for sheriffs to identify whether to register a new flake for a
failure.

This CL adds automatic identifies identification of one know flake type.
Once identified, it rewrites the error so that:
1. Flakes clustering tool that has only rudimentary clustering, places
all flakes of this kind in the same cluster (not multiple ones like
now). This is a step towards using clustering tool for monitoring
flakes;
2. Sheriff immediately sees that the issue is known.

Change-Id: I86a0762665cb21434289e1be00b60bd76fec4142
2020-01-21 13:29:37 -08:00
TreeHugger Robot 2abd13a80b Merge "Fix BaseSwipeDetector#setState() called inside another setState()" into ub-launcher3-master 2020-01-15 22:03:01 +00:00
TreeHugger Robot 8b0e50fecf Merge "Tracing launcher package name" into ub-launcher3-master 2020-01-14 18:41:53 +00:00
vadimt cef8008bfa Tracing launcher package name
I suspect that when the test starts, launcher package may be
com.google.android.setupwizard

Bug: 145935261
Change-Id: Ibf5e9785cd73762cbf2cdc8569482d77db782897
2020-01-13 17:10:12 -08:00
TreeHugger Robot 3d76dadcd6 Merge "Recognizing running "prebuilt" launcher and manually built platform" into ub-launcher3-master 2020-01-14 00:45:46 +00:00
Tony Wickham 3f330429a3 Fix BaseSwipeDetector#setState() called inside another setState()
Clients of BaseSwipeDetector are required to call finishedScrolling(),
which calls setState(IDLE). An obvious place to call this is in
onDragEnd(), which itself is called from a setState(SETTLING). If the
client does this, then the SETTLING state actually clobbers the IDLE
state, leading to undefined behavior. The reason we don't see this in
practice is because we usually call finishedScrolling() after an
animation from onDragEnd() instead of calling it immediately.

To fix this, we add a simple queue such that any calls to setState()
while one is in progress have to wait and are executed in turn. This
ensures we get all the proper state callbacks and end in the correct
one.

Also fix an incorrect call in AbstractStateChangeTouchController which
was masked by this bug. We were calling setState(IDLE) in onDragStart(),
which only worked because the original setState(DRAGGING) incorrectly
clobbered this. Now we only setState(IDLE) (via finishedScrolling())
when we fully clear the state, i.e. when the interaction is finished.

Test: added testInterleavedSetState

Bug: 141939911
Change-Id: Iae630ee7101921b57a85d40646468cf19f59b674
2020-01-09 15:39:38 -08:00
vadimt 1eb46b85ec Recognizing running "prebuilt" launcher and manually built platform
In scenarios like: atest NexusLauncherOutOfProcTests against the
platform built from command line, and Launcher from the platform, we are
not failing now, and @Stability treats it as a PLATFORM_POSTSUBMIT run.

Change-Id: Ia504216d238e58b2786f3749b737dfb95a2ede96
2020-01-08 17:32:15 -08:00
Pinyao Ting 654adf657e integration test for open settings menu from workspace.
compare pid of launcher process after test execution to verify launcher isn't crashed when running in oop test.

Bug: 147235759
Change-Id: Id13c47f5c4e388cc8e95b19d099e94a2e540bf3f
Test: fun flake locally
2020-01-08 17:01:39 -08:00
TreeHugger Robot 2e0b8e39c7 Merge "Revert "include integration test for open settings menu from workspace"" into ub-launcher3-master 2020-01-08 18:46:01 +00:00
Pinyao Ting cd1cc0efc1 Revert "include integration test for open settings menu from workspace"
This reverts commit e94baee999.

Reason for revert: Test failing

Change-Id: Icb5d27488618a9b70b83d7ab582082c396578700
2020-01-08 01:15:29 +00:00
TreeHugger Robot 108cc51e03 Merge "include integration test for open settings menu from workspace" into ub-launcher3-master 2020-01-06 23:22:45 +00:00
Sunny Goyal 9ae9b60043 Updating Robolectric tests
> Adding multi-thread support
> Simulating actual loader loading flow
> Moving some android tests to robolectic

Change-Id: Ie17a448f20e8a4b1f18ecc33d22054bbf9e18729
2020-01-06 11:05:42 -08:00
Pinyao Ting e94baee999 include integration test for open settings menu from workspace
Bug: 146432215
Change-Id: I2d42984dd77506385230744361ae74944cc9b3bd
2019-12-20 15:37:36 -08:00
TreeHugger Robot c9a907bec1 Merge "Removing temporary workarounds to make tests pass on Cuttlefish" into ub-launcher3-master 2019-12-16 22:37:09 +00:00
vadimt 08eca2fa2e Removing temporary workarounds to make tests pass on Cuttlefish
Bug: 136278866
Change-Id: Ie537a578bb871921c0cbea1f197261e703de98f5
2019-12-12 18:15:48 -08:00
vadimt 2eb48498b4 Improving navigation mode switch rule and around
Logging assertion failures.
Modifying waits for condition to avoid timing out the whole test if the
iteration takes too long in favor of failing with an actionable diag.

Bug: 145985438
Change-Id: Ie32d93e1548ce6ec64c38449eb1be1287ff9cf56
2019-12-12 15:10:52 -08:00
TreeHugger Robot 98833d525c Merge "Updating some non-final static objects" into ub-launcher3-master 2019-12-11 22:07:53 +00:00
TreeHugger Robot 7d2f42d97a Merge "Moving logging Launcher and platform versions before matching" into ub-launcher3-master 2019-12-11 21:30:35 +00:00
Sunny Goyal 73b5a27b14 Updating some non-final static objects
Updating various static objects to use a standard pattern so that
it is easier to track and cleanup those objects

Bug: 141376165
Change-Id: Ia539cbfa338d544dddad771c5027b6748762768b
2019-12-11 13:22:58 -08:00
Sunny Goyal 337c81f664 Removing static instances of UserManagerCompat and AppWidgetManager
> Changing the lifecycle to follow other static objects in Launcher
> Removing compat interface and inlining everything to helpers

Bug: 141376165
Change-Id: I82bd5db1969101de9a7eac77f32728d70195bb35
2019-12-11 10:03:19 -08:00
vadimt 61e285245e Moving logging Launcher and platform versions before matching
I suspect that sometimes APIs return versions that are different from
ones in the bugreport. We want to see them before possible non-match
failures.

Bug: 145935261
Change-Id: Ia1a9208de111368245eac9147ae4a189db823105
2019-12-09 18:15:33 -08:00
Sunny Goyal 4b5b0eb60d Moving some tests to robolectric
> Adding support for simulating model load

Bug: 130562632
Change-Id: I1de8c0abe2e74d4e7e47e18914316c339920609a
2019-12-09 11:17:12 -08:00
vadimt f9e559275d Making the default launcher rule outer for the Portrait-Landscape one
Portrait-Landscape uses Launcher activity and needs it to be set up
correctly.

Change-Id: I13c9712647b3e45a259039d7968bb95cfe8158ef
2019-11-19 13:36:29 -08:00
Pinyao Ting 44677f7e88 fix custom shortcut test
Bug: 143725213
Change-Id: I296452faea67568b39a35968bb813dc4e51a51fc
2019-11-14 14:13:22 -08:00
Pinyao Ting fed4d8e8da disable custom shortcut test in oop
am: d9dd8ef3ba

Change-Id: I6cb1f18c3e7ca1cd79aa5f58a0e03ef07eb797ee
2019-11-13 10:40:01 -08:00
Pinyao Ting d9dd8ef3ba disable custom shortcut test in oop
Bug: 142154748
Change-Id: I08ec8f665a3cc45610f8f2b27a60f7334a2b1b24
2019-11-12 23:37:20 -08:00
vadimt b0a14e96ae Removing temporary tweaks to make tests pass in presubmit
Now that we have a more reliable build of CF

Bug: 142828227
Change-Id: Ib385443048b6ccd9e1eb3372dc39947536f948bd
2019-11-11 09:23:28 -08:00
vadimt 137f5b62ac Improve diags when system errors cause failing Launcher tests
Now, for example, we won't diagnose a locked phone as a
"home button not showing in 3-button mode", even though it's technically
correct.

Change-Id: Ibdfa0741af7ff8545a811f6702dda74dc6c31c2e
2019-11-04 14:50:22 -08:00
Pinyao Ting 5eee5f4da0 enable custom shortcut test
Bug: 141568904
Change-Id: Ie51ef6f7a2f5d4579689a82184bdd7681a266d04
2019-10-31 17:09:40 -07:00
Sunny Goyal 3808a69a6c Storing BitmapInfo instead of icon and color directly in itemInfo
This will allow subclassing BitmapInfo to support custom icon/dynamic
icons which can be loaded on the background thread instead of going
through IconFactory which runs on UiThread

Change-Id: Ieced6e91330bdff1b505826d097a8df711dfe967
2019-10-28 11:12:47 -07:00
vadimt b7eedb4579 Support for overriding test run flavor
Change-Id: I054a1eaa888cd97a7c7fa5fcc65513d6d89c3a1c
2019-10-25 16:44:29 -07:00
vadimt 23c8341096 Removing tracing and @Stability for a fixed bug
Bug: 142514365
Change-Id: I147850db274c465fb964eca30b97b3ebaaa2ccf6
2019-10-25 11:21:33 -07:00
TreeHugger Robot f13109df05 Merge "Refactor SwipeDetector to track both axes" into ub-launcher3-qt-future-dev 2019-10-24 19:24:12 +00:00
Tony Wickham eed585b0c3 Refactor SwipeDetector to track both axes
Existing clients now use the SingleAxisSwipeDetector subclass. A
followup CL will add BothAxesSwipeDetector, whose first client will be
the quick switch from home controller.

Bug: 126596417
Change-Id: I54c71088cfe99ff28cdc719a1eb7a7d06ac95d2d
Merged-In: I54c71088cfe99ff28cdc719a1eb7a7d06ac95d2d
2019-10-24 18:56:44 +00:00
Tony Wickham 5aeb3b84b8 Refactor SwipeDetector to track both axes
Existing clients now use the SingleAxisSwipeDetector subclass. A
followup CL will add BothAxesSwipeDetector, whose first client will be
the quick switch from home controller.

Bug: 126596417
Change-Id: I54c71088cfe99ff28cdc719a1eb7a7d06ac95d2d
2019-10-24 10:38:17 -07:00
Tony Wickham bc42d64c85 Fix testQuickSwitchFromApp
Instead of starting getAppPackageName() and relying on it being our Test
Pin Item activity, instead launch our own test activities with the
FLAG_ACTIVITY_MULTIPLE_TASK and FLAG_ACTIVITY_NEW_DOCUMENT flags.

Test:
- Locally run testQuickSwitchFromApp() from Android Studio
- flake -oop -t com.android.quickstep.TaplTestsQuickstep#testQuickSwitchFromApp

Bug: 140252765
Change-Id: Ie137261ce65bfd3dd39df78d57784854a026e967
2019-10-23 23:42:19 +00:00
Tony Wickham 476b7d4378 Fix testQuickSwitchFromApp
Instead of starting getAppPackageName() and relying on it being our Test
Pin Item activity, instead launch our own test activities with the
FLAG_ACTIVITY_MULTIPLE_TASK and FLAG_ACTIVITY_NEW_DOCUMENT flags.

Test:
- Locally run testQuickSwitchFromApp() from Android Studio
- flake -oop -t com.android.quickstep.TaplTestsQuickstep#testQuickSwitchFromApp

Bug: 140252765
Change-Id: Ie137261ce65bfd3dd39df78d57784854a026e967
Merged-In: Ie137261ce65bfd3dd39df78d57784854a026e967
2019-10-23 23:40:57 +00:00
vadimt ad81b816f0 Step 4 from the plan below:
1. Skip all tests that fail in inproc mode on CF (this CL)
2. Observe postsubmit and make sure no inproc tests are failing or too
flaky on CF
3. Enable presubmit
4. Switch to skipping tests from step 1 only for inproc presubmit;
they'll start failing in postsubmit
5. Gradually make all tests pass and not flaky and enable them back on
presubmit

Bug: 142828227
Change-Id: I0092d6b92b0358866f8cbf9e00dbe3fabe23703d
2019-10-17 17:52:29 -07:00
TreeHugger Robot 35903d2cb2 Merge "Reducing the time for expected launcher initialization back to 10 sec" into ub-launcher3-master 2019-10-17 07:18:37 +00:00
vadimt 6332b7d73c Reducing the time for expected launcher initialization back to 10 sec
It was temporarily raised to 60 sec.

https://googleplex-android-review.git.corp.google.com/9563509
should've fixed some problems with loading time, but likely not all.

We need to observe whether this test starts flaking again.

testDragIcon will run only in Launcher postsubmit, and won't block
merges to platform if it fails.

Bug: 142514365
Change-Id: I2b9a9d043346ebda721221cefd6118a1a799501f
2019-10-16 17:49:29 -07:00
vadimt 3680357a67 Preparing to enabling Inproc launcher tests as presubmit
The plan:
1. Skip all tests that fail in inproc mode on CF (this CL)
2. Observe postsubmit and make sure no inproc tests are failing or too
flaky on CF
3. Enable presubmit
4. Switch to skipping tests from step 1 only for inproc presubmit;
they'll start failing in postsubmit
5. Gradually make all tests pass and not flaky and enable them back on
presubmit

Bug: 142828227
Change-Id: I6ea3d53771503e8fd968555bb2e4cb1be10d83ef
2019-10-16 17:35:18 -07:00
Winson Chung 40f8756793 Merge "Fix a couple trace issues" into ub-launcher3-master 2019-10-16 20:54:43 +00:00
Winson Chung 5cc62c7d0b Fix a couple trace issues
- Adding trace tokens since we can be starting/ending traces out of order
- Fixing issue with draw hitting twice causing the trace stack to be
  popped twice
- Fix issue with endFlagOverrides not removing from the stack

Bug: 142803200

Change-Id: I8649b94249910a352f00f2f2c2459c355d2bab00
2019-10-16 12:34:58 -07:00
Sunny Goyal 8409284b2c Merge "Cleaning up properly after RaceConditionReproducerTest" into ub-launcher3-master 2019-10-16 19:11:23 +00:00
Sunny Goyal bffbd7521d Cleaning up properly after RaceConditionReproducerTest
Change-Id: I43362fbc63789d3ce3468266a5189a9f9d209d00
2019-10-16 11:57:43 -07:00
vadimt 36d7be7fc9 Implementing test stability attribute
Change-Id: I5d78a19039ab2bcdb217886fdaca29e3df412780
2019-10-15 18:40:53 -07:00
Pinyao Ting b3d3ca87dd temporarily disable a regression test to unblock merging to master
The test case testDragCustomShortcut was created initially to prevent future regression on custom shortcut (b/141568904), which was caused by ag/9342399.

Some times after ag/9342399 was reverted on ub-launcher3-master, a different error is causing custom shortcut to not working intermittently (b/141528961). Since this is different from b/141568904, it should not be a blocker to merging to master.

Bug: 141568904
Change-Id: Ia11e1ae44d0ef86c16876c002954aa662f1edbc8
2019-10-15 21:32:47 +00:00
TreeHugger Robot 6c12641bee Merge "Unifying various tracing calls" into ub-launcher3-master 2019-10-14 22:29:59 +00:00
Sunny Goyal 17c72fbb60 Unifying various tracing calls
Change-Id: Iedf6662ad1d7281b850bdc43b3a1e373ce535ac6
2019-10-14 14:23:19 -07:00