New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 767486 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocked on:
issue 767507



Sign in to add a comment

SpellCheckMenuTest#testDeleteMisspelledWord is flaky

Project Member Reported by jbudorick@chromium.org, Sep 21 2017

Issue description

On the trybot: https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=chrome_public_test_apk%20(with%20patch)&tests=org.chromium.chrome.browser.input.SpellCheckMenuTest%23testDeleteMisspelledWord

Elsewhere: https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=chrome_public_test_apk&tests=org.chromium.chrome.browser.input.SpellCheckMenuTest%23testDeleteMisspelledWord

Most of its flakes get silently covered by @RetryOnFailure (so I'm not disabling it), but this is failing at a remarkably high rate on the first try. Failures typically look like:

junit.framework.AssertionFailedError: Criteria not met in allotted time.
	at junit.framework.Assert.fail(Assert.java:50)
	at junit.framework.Assert.assertTrue(Assert.java:20)
	at org.chromium.content.browser.test.util.CriteriaHelper.pollInstrumentationThread(CriteriaHelper.java:79)
	at org.chromium.content.browser.test.util.CriteriaHelper.pollUiThread(CriteriaHelper.java:117)
	at org.chromium.content.browser.test.util.CriteriaHelper.pollUiThread(CriteriaHelper.java:138)
	at org.chromium.chrome.browser.input.SpellCheckMenuTest.testDeleteMisspelledWord(SpellCheckMenuTest.java:74)
	at java.lang.reflect.Method.invokeNative(Method.java)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:52)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.chromium.base.test.ScreenshotOnFailureStatement.evaluate(ScreenshotOnFailureStatement.java:37)
	at org.chromium.chrome.test.ChromeActivityTestRule$1.evaluate(ChromeActivityTestRule.java:65)
	at android.support.test.internal.statement.UiThreadStatement.evaluate(UiThreadStatement.java:55)
	at android.support.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:270)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.chromium.base.test.BaseJUnit4ClassRunner.runChild(BaseJUnit4ClassRunner.java:175)
	at org.chromium.base.test.BaseJUnit4ClassRunner.runChild(BaseJUnit4ClassRunner.java:40)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.chromium.base.test.BaseJUnit4ClassRunner.run(BaseJUnit4ClassRunner.java:164)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
	at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
	at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart(BaseChromiumAndroidJUnitRunner.java:98)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)

from https://luci-milo.appspot.com/buildbot/tryserver.chromium.android/linux_android_rel_ng/389849 (which, full disclosure, was from one of my CLs)
 
Blockedon: 767507
Project Member

Comment 2 by bugdroid1@chromium.org, Oct 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2958d0e0dd8c09245f9e40200b2ce0b5df749e53

commit 2958d0e0dd8c09245f9e40200b2ce0b5df749e53
Author: Ryan Landay <rlanday@chromium.org>
Date: Tue Oct 03 19:04:32 2017

Consolidate TextSuggestionMenuTest and SpellCheckMenuTest

Currently, SpellCheckMenuTest is separate from TextSuggestionMenuTest because
TextSuggestionMenuTest is a content layer test but SpellCheckMenuTest is a
Chrome test, since it actually needs the spell checker to run and mark a word as
misspelled. This has been causing some flakiness, mostly (but not entirely)
papered over by a RetryOnFailure annotation.

I've now figured out how to read and write DocumentMarkers directly from a
content test, so in this CL, I'm moving the test in SpellCheckMenuTest into
TextSuggestionMenuTest and removing its reliance on actually running the spell
checker. This should hopefully fix the residual flakiness issues.

I'm also adding a check in testApplyMisspellingSuggestion() that the suggestion
marker is removed properly, now that I know how to do that.

Bug:  767486 
Change-Id: Ia7d100e985e5b5eb6929b06544d0ad18cbffa998
Reviewed-on: https://chromium-review.googlesource.com/696490
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Ryan Landay <rlanday@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506129}
[modify] https://crrev.com/2958d0e0dd8c09245f9e40200b2ce0b5df749e53/chrome/android/java_sources.gni
[delete] https://crrev.com/c0623c968f2610133bc1b98bb203d2b12e10e090/chrome/android/javatests/src/org/chromium/chrome/browser/input/SpellCheckMenuTest.java
[modify] https://crrev.com/2958d0e0dd8c09245f9e40200b2ce0b5df749e53/content/public/android/javatests/src/org/chromium/content/browser/input/TextSuggestionMenuTest.java
[modify] https://crrev.com/2958d0e0dd8c09245f9e40200b2ce0b5df749e53/third_party/WebKit/Source/core/testing/Internals.cpp

Status: Fixed (was: Assigned)

Sign in to add a comment