diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-08-04 18:24:10 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-08-04 18:24:10 +0200 |
| commit | 1d52f141fac437caac5b4d126ec641adc3303890 (patch) | |
| tree | 42bccf54bd2114d7820e340049898e40fe9d64d4 /tests | |
| parent | 6630ac7b85b2726df247c9fefa120e35e79dcd24 (diff) | |
| download | cgeo-1d52f141fac437caac5b4d126ec641adc3303890.zip cgeo-1d52f141fac437caac5b4d126ec641adc3303890.tar.gz cgeo-1d52f141fac437caac5b4d126ec641adc3303890.tar.bz2 | |
make flaky GPX test more stable
* have a longer overall timeout waiting for messages
* finish as early as a terminating message is recognized
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/src/cgeo/geocaching/files/GPXImporterTest.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/tests/src/cgeo/geocaching/files/GPXImporterTest.java b/tests/src/cgeo/geocaching/files/GPXImporterTest.java index 02c997c..f72cf4a 100644 --- a/tests/src/cgeo/geocaching/files/GPXImporterTest.java +++ b/tests/src/cgeo/geocaching/files/GPXImporterTest.java @@ -266,9 +266,9 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase { notifyAll(); } - public synchronized void waitForCompletion(final long milliseconds, final int maxMessages) { + public synchronized void waitForCompletion(final long milliseconds) { try { - while (System.currentTimeMillis() - lastMessage <= milliseconds && messages.size() <= maxMessages) { + while (System.currentTimeMillis() - lastMessage <= milliseconds && !hasTerminatingMessage()) { wait(milliseconds); } } catch (InterruptedException e) { @@ -276,9 +276,14 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase { } } + private boolean hasTerminatingMessage() { + Message recentMessage = messages.get(messages.size() - 1); + return recentMessage.what == GPXImporter.IMPORT_STEP_CANCELED || recentMessage.what == GPXImporter.IMPORT_STEP_FINISHED || recentMessage.what == GPXImporter.IMPORT_STEP_FINISHED_WITH_ERROR; + } + public void waitForCompletion() { - // Use reasonable defaults - waitForCompletion(1000, 10); + // wait a maximum of 10 seconds + waitForCompletion(10000); } } |
