gson-comments/shrinker-test
Marcono1234 b5bc7b903a
Run shrinker-test for JDK 21 CI build (#2570)
The latest R8 version seems to support JDK 21 now.
2023-12-06 14:52:02 -08:00
..
src Formats codebase (#2531) 2023-11-06 11:59:01 -08:00
common.pro Add shrinker-test examples with never-referenced constructors (#2478) 2023-09-05 06:47:54 -07:00
pom.xml Run shrinker-test for JDK 21 CI build (#2570) 2023-12-06 14:52:02 -08:00
proguard.pro Add shrinker-test examples with never-referenced constructors (#2478) 2023-09-05 06:47:54 -07:00
r8.pro Add shrinker-test examples with never-referenced constructors (#2478) 2023-09-05 06:47:54 -07:00
README.md Add ProGuard / R8 integration tests & add default ProGuard rules (#2397) 2023-05-28 12:24:05 -07:00

shrinker-test

This Maven module contains integration tests which check the behavior of Gson when used in combination with code shrinking and obfuscation tools, such as ProGuard or R8.

The code which is shrunken is under src/main/java; it should not contain any important assertions in case the code shrinking tools affect these assertions in any way. The test code under src/test/java executes the shrunken and obfuscated JAR and verifies that it behaves as expected.

The tests might be a bit brittle, especially the R8 test setup. Future ProGuard and R8 versions might cause the tests to behave differently. In case tests fail the ProGuard and R8 mapping files created in the target directory can help with debugging. If necessary rewrite tests or even remove them if they cannot be implemented anymore for newer ProGuard or R8 versions.

Important: Because execution of the code shrinking tools is performed during the Maven build, trying to directly run the integration tests from the IDE might not work, or might use stale results if you changed the configuration in between. Run mvn clean verify before trying to run the integration tests from the IDE.