android / android/android-test
Tests failing with StackOverflowError cause a secondary OOM in TestExecutor
- Vorherrschende Sprache
- Java
- Sterne
- 1.2k
- Forks
- 342
- Ø Merge
- 11 Std. 29 Min.
- Gemergte PRs (30 T.)
- 2
Beschreibung
### Description
### Steps to Reproduce
```java
@Test
public void testWithInfiniteRecursion() {
recurseInfinitely();
}
```
### Expected Results
Test runner reports the StackOverflowError.
### Actual Results
Test runner crashes, because it tries to write the entire stacktrace to the summary writer:
```
Test failed to run to completion. Reason: 'Instrumentation run failed due to 'Process crashed.''. Check device logcat for details
Crash Message:Failed to allocate a 8994568 byte allocation with 462080 free bytes and 451KB until OOM, target footprint 201326592, growth limit 201326592
java.lang.OutOfMemoryError: Failed to allocate a 8994568 byte allocation with 462080 free bytes and 451KB until OOM, target footprint 201326592, growth limit 201326592
at java.lang.StringFactory.newStringFromChars(StringFactory.java:260)
at java.lang.StringFactory.newStringFromBytes(StringFactory.java:245)
at java.lang.StringFactory.newStringFromBytes(StringFactory.java:54)
at java.io.ByteArrayOutputStream.toString(ByteArrayOutputStream.java:221)
at androidx.test.internal.runner.TestExecutor.execute(TestExecutor.java:68)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:389)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2189)
```
### AndroidX Test and Android OS Versions
AndroidX Test Runner: 1.1.2-alpha01
### Link to a public git repo demonstrating the problem:
Beitragsleitfaden
Rechercherichtung
Reproduziere den Fehler mit dem bereitgestellten testWithInfiniteRecursion-Beispiel und untersuche anschließend androidx.test.internal.runner.TestExecutor bei TestExecutor.java:68, wo der Stacktrace in den Summary Writer geschrieben wird. Als erledigt gilt die Aufgabe, wenn der Test Runner den StackOverflowError meldet, ohne mit einem sekundären OutOfMemoryError abzustürzen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, java
- Bereich
- mobile, testing
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 55/100