cashapp / paparazzi

Render your Android screens without a physical device or emulator
https://cashapp.github.io/paparazzi/
Apache License 2.0
2.28k stars 214 forks source link

OutOfMemoryError when running more than 1100 screenshot tests #1415

Closed MaratTursynbek closed 4 months ago

MaratTursynbek commented 4 months ago

Description

After updating to latest Paparazzi 1.3.3 and applying the fix in changelogs of 1.3.2 screenshot tests started to work until I reach test number around ~1100. After that all next tests fail with OutOfMemoryError. I saw this one https://github.com/cashapp/paparazzi/issues/1094 but it refers to https://github.com/cashapp/paparazzi/issues/915 where it says that we have to wait for Android Studio Iguana to be stable. I'm on stable version of Iguana so I'm not sure what else I can do to fix the error. Could someone help me with this one?

./gradlew app:testDebug
Screenshot 2024-05-07 at 16 42 13

Some info:

Android Studio Iguana | 2023.2.1 Patch 2 Build #AI-232.10300.40.2321.11668458, built on April 4, 2024 Runtime version: 17.0.9+0-17.0.9b1087.7-11185874 aarch64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. macOS 14.4.1 GC: G1 Young Generation, G1 Old Generation Memory: 8192M Cores: 12 Metal Rendering is ON Registry: debugger.new.tool.window.layout=true ide.instant.shutdown=false ide.experimental.ui=true

TWiStErRob commented 4 months ago

Paparazzi uses layoutlib (Android Studio "rendering engine") which is included in the usual release train (as was historically internal). When you see "we need AS version this and that" wrt Paparazzi, it usually means a PR like this: https://github.com/cashapp/paparazzi/pull/1314.

Maybe try https://github.com/cashapp/paparazzi/pull/1314#issuecomment-2031877074 ?

MaratTursynbek commented 4 months ago

Thank you @TWiStErRob it seems to be working with 1.3.4-SNAPSHOT version. However, I have faced same error as https://github.com/cashapp/paparazzi/issues/1376. I have org.gradle.configuration-cache=true in my gradle.properties. I can make tests run when I add --no-configuration-cache:

./gradlew --no-configuration-cache app:testDebug

Since 1.3.3 was running without --no-configuration-cache, do you think this could be fixed when 1.3.4 is released?

TWiStErRob commented 4 months ago

I think this can be closed as duplicate of #1314 then @jrodbx,

and @MaratTursynbek, you can Subscribe (right column) to #1376 + add your vote on it.

Unsure about fixing it, I hope it'll be, because it would be an immediate regression...

TWiStErRob commented 4 months ago

@MaratTursynbek #1376 is fixed on master, you can try again.

MaratTursynbek commented 4 months ago

@TWiStErRob thanks for getting back! I can confirm that with latest 1.3.4-SNAPSHOT version my screenshot tests are running fine without --no-configuration-cache. Thank you for addressing this issue in no time!