Skip to content

test(oss-licenses): introduce unified integration-app test suite#380

Draft
timothyfroehlich wants to merge 4 commits intogradle-upgradefrom
froeht/integration-tests
Draft

test(oss-licenses): introduce unified integration-app test suite#380
timothyfroehlich wants to merge 4 commits intogradle-upgradefrom
froeht/integration-tests

Conversation

@timothyfroehlich
Copy link
Member

@timothyfroehlich timothyfroehlich commented Mar 10, 2026

Based on PR #375

Chain of upstream PRs as of 2026-03-10

  • Consolidate modern and legacy test projects into a single 'integration-app/' directory.
  • Implement shared source code architecture where both build environments target the same 'app/' module.
  • Add high-signal integration tests for V1 (Espresso) and V2 (Compose) license activities.
  • Configure automatic exclusion of V2 tests in the legacy build to prevent compilation errors.
  • Refactor 'IntegrationEndToEndTest.kt' to dynamically execute the appropriate wrapper based on the AGP matrix.
  • Add 'GEMINI.md' guide for maintenance of the harness.

timothyfroehlich and others added 4 commits March 10, 2026 11:02
…#383)

Gradle 9.x identifies the custom LicensesCleanUpTask as a hard failure due to implicit dependency conflicts with generation tasks. Standard Gradle 'clean' (Delete) already handles the build directory idiomatically.

- Removed LicensesCleanUpTask.groovy and its corresponding test.
- Refactored EndToEndTest.kt to use a createRunner() helper with forwardOutput() and strict configuration cache validation.
- Optimized parallel test execution by isolating TestKit directories per test class.
- Updated build.gradle.kts with optimized heap settings and live test event logging.
- Added .kotlin/ to .gitignore to prevent tracking of local metadata.

Closes #356, #300, #299
…e support (#384)

* fix(oss-licenses): resolve implicit dependency failures on Gradle 9.x

Gradle 9.x identifies the custom LicensesCleanUpTask as a hard failure due to implicit dependency conflicts with generation tasks. Standard Gradle 'clean' (Delete) already handles the build directory idiomatically.

- Removed LicensesCleanUpTask.groovy and its corresponding test.
- Refactored EndToEndTest.kt to use a createRunner() helper with forwardOutput() and strict configuration cache validation.
- Optimized parallel test execution by isolating TestKit directories per test class.
- Updated build.gradle.kts with optimized heap settings and live test event logging.
- Added .kotlin/ to .gitignore to prevent tracking of local metadata.

Closes #356, #300, #299

* build(oss-licenses): upgrade to Gradle 9.4 and enable full build cache support

This update modernizes the build environment and ensures task outputs are correctly cached and relocatable.

- Upgraded Gradle wrapper to 9.4.0 in oss-licenses-plugin.
- Added @CacheableTask, @nested, and @PathSensitive annotations to core tasks.
- Implemented an automated relocatability test in EndToEndTest.kt.
- Verified 100% parallel throughput with isolated TestKit directories.

Closes #356

* test(oss-licenses): modernize test matrix to follow Stable/RC/Alpha tracks

Updated the E2E test matrix to cover the latest AGP tracks:
- Stable: AGP 9.0.1
- RC: AGP 9.1.0-rc01
- Alpha: AGP 9.2.0-alpha02

Also updated Kotlin version expectation logic to correctly handle AGP 9.1 and 9.2.

* build(oss-licenses): increase Gradle daemon memory

Increased Xmx to 2048m and MaxMetaspaceSize to 1024m to prevent daemon resets during intensive parallel E2E tests.

* test(oss-licenses): ensure robust relocatability verification

Refactored testRelocatability to use the setupProject helper, ensuring project structure consistency across cloned directories.

* test(oss-licenses): ensure bulletproof relocatability verification

Modified populate() in testRelocatability() to explicitly skip build/ and .gradle/ directories during copying.
This guarantees that the relocated projects start from a pristine state, correctly verifying cache relocation instead of hitting UP-TO-DATE due to accidental output duplication.
- Consolidate modern and legacy test projects into a single 'integration-app/' directory.
- Implement shared source code architecture where both build environments target the same 'app/' module.
- Add high-signal integration tests for V1 (Espresso) and V2 (Compose) license activities.
- Configure automatic exclusion of V2 tests in the legacy build to prevent compilation errors.
- Refactor 'IntegrationEndToEndTest.kt' to dynamically execute the appropriate wrapper based on the AGP matrix.
- Add 'GEMINI.md' guide for maintenance of the harness.
- Update main.yml to publish and share the plugin as an artifact.
- Add 'integration-test' job to execute standalone apps against the built plugin.
- Configure Java 21/17 dual-JDK environment for integration runs.
- Mark V2 Title bug and Issue 358 (aopalliance) as non-blocking in tests.
@timothyfroehlich timothyfroehlich force-pushed the froeht/integration-tests branch from 9b3905c to 472d6fc Compare March 11, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant