Skip to content

Migrate transformer functional tests back to unit tests - #2138

Draft
Goooler wants to merge 18 commits into
mainfrom
g/20260731/to-unit-tests
Draft

Migrate transformer functional tests back to unit tests#2138
Goooler wants to merge 18 commits into
mainfrom
g/20260731/to-unit-tests

Conversation

@Goooler

@Goooler Goooler commented Jul 31, 2026

Copy link
Copy Markdown
Member

Speeds up builds.

@Goooler
Goooler force-pushed the g/20260731/to-unit-tests branch 3 times, most recently from 0e67fd1 to a7b8db0 Compare July 31, 2026 04:18
@Goooler Goooler changed the title Migrate functional tests to unit tests Migrate transformer functional tests back to unit tests Jul 31, 2026
@Goooler
Goooler requested a review from Copilot July 31, 2026 05:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates several transformer-related behaviors (and dependency-filter wildcard matching) from functional tests into unit tests to reduce overall build time while keeping coverage for key edge cases.

Changes:

  • Replaced multiple functional/integration transformer scenarios with equivalent unit tests that directly exercise transformer APIs and validate produced JAR entries.
  • Added new focused unit tests for previously functional-only behaviors (e.g., preserve-first-found, include/exclude resource transformers, Groovy extension module merging, properties comment stripping).
  • Moved wildcard dependency-exclude coverage from functional plugin tests to a dedicated DefaultDependencyFilter unit test.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt Adds unit tests for XML appending/DTD handling and nested merge behavior.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformerTest.kt Adds unit coverage for comment-stripping behavior when merging properties.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PreserveFirstFoundResourceTransformerTest.kt New unit test covering preserve-first-found matching semantics.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/MergeLicenseResourceTransformerTest.kt Adds unit test for custom output path/separator behavior.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/Log4j2PluginsCacheFileTransformerTest.kt Annotates/links the existing unit test to the tracked regression issue.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/IncludeResourceTransformerTest.kt New unit tests for including a file as a resource in the output JAR.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/GroovyExtensionModuleTransformerTest.kt New unit coverage for merging legacy/modern descriptors and relocation.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/DontIncludeResourceTransformerTest.kt New unit tests for resource exclusion matching behavior.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/AppendingTransformerTest.kt Adds unit tests for appending resources and custom separators.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ApacheNoticeResourceTransformerTest.kt Adds unit test for overriding NOTICE output path/content formatting.
src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/internal/DefaultDependencyFilterTest.kt New unit test covering wildcard/exact dependency notation matching.
src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt Removes functional test now covered by unit tests.
src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/TransformersTest.kt Removes transformer scenarios that are now unit-tested.
src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/ServiceFileTransformerTest.kt Removes functional relocation scenario (now covered in unit tests).
src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/PropertiesFileTransformerTest.kt Removes functional properties transformer tests migrated to unit tests.
src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/GroovyExtensionModuleTransformerTest.kt Simplifies functional coverage while unit tests cover detailed merge cases.
src/functionalTest/kotlin/com/github/jengelman/gradle/plugins/shadow/FilteringTest.kt Removes wildcard dependency-exclude functional coverage migrated to unit test.
Suppressed comments (1)

src/test/kotlin/com/github/jengelman/gradle/plugins/shadow/transformers/XmlAppendingTransformerTest.kt:101

  • The expected output also hard-codes the external .org DOCTYPE systemId; if the input is changed to a reserved .invalid URL (recommended to avoid any chance of network access), this assertion should be updated to match.
            <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE properties SYSTEM "https://invalid-dtd-host-123456789.org/dtd/properties.dtd">
            <properties version="1.0">

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Goooler

This comment was marked as outdated.

Goooler and others added 11 commits August 1, 2026 10:57
- Add IncludeResourceTransformerTest, DontIncludeResourceTransformerTest,
  PreserveFirstFoundResourceTransformerTest unit tests
- Delete PropertiesFileTransformerTest from functionalTest (all covered by unit tests)
- Delete mergeLog4j2PluginCacheFiles from TransformersTest (covered by unit tests)
- Delete includeResource, excludeResource, preserveFirstFoundResource from TransformersTest
  (now covered by new unit tests)
- Remove serviceResourceTransformerWithRelocation from ServiceFileTransformerTest
  (covered by unit ServiceFileTransformerTest.relocatedClasses/mergeRelocatedFiles)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Zongle Wang <wangzongler@gmail.com>
@Goooler
Goooler force-pushed the g/20260731/to-unit-tests branch from 327ff6d to 62e49c9 Compare August 1, 2026 02:58
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.

2 participants