Fix a race condition that makes tests unstable

Change-Id: Ic19d380eb64855884bc6ded8547c200dd772ffe9
main
Jean Chalard 2012-02-07 19:22:37 +09:00
parent 4c5daa8a55
commit 816a8a0fd8
2 changed files with 15 additions and 1 deletions

View File

@ -186,7 +186,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
private View mKeyPreviewBackingView;
private View mSuggestionsContainer;
private SuggestionsView mSuggestionsView;
private Suggest mSuggest;
/* package for tests */ Suggest mSuggest;
private CompletionInfo[] mApplicationSpecifiedCompletions;
private InputMethodManagerCompatWrapper mImm;

View File

@ -111,6 +111,20 @@ public class InputLogicTests extends ServiceTestCase<LatinIME> {
mLatinIME.onStartInputView(ei, false);
mLatinIME.onCreateInputMethodInterface().startInput(ic, ei);
mInputConnection = ic;
// Wait for the main dictionary to be loaded (we need it for auto-correction tests)
int remainingAttempts = 10;
while (remainingAttempts > 0 && !mLatinIME.mSuggest.hasMainDictionary()) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// Don't do much
} finally {
--remainingAttempts;
}
}
if (!mLatinIME.mSuggest.hasMainDictionary()) {
throw new RuntimeException("Can't initialize the main dictionary");
}
}
// type(int) and type(String): helper methods to send a code point resp. a string to LatinIME.