test(it): Redesign Invoker coverage matrix - #386
Draft
keeganwitt wants to merge 3 commits into
Draft
Conversation
Replace history-shaped fixtures with behavior-named workflows and add focused lifecycle assertions for test GroovyDoc and stub cleanup. Co-Authored-By: Codex <noreply@openai.com>
Explain the behavior-oriented integration test matrix and direct parameter-only coverage to unit tests. Co-Authored-By: Codex <noreply@openai.com>
Add behavior-named fixtures for parameter metadata and stub classpath isolation, and retain annotation compile coverage in the default compile fixture. Co-Authored-By: Codex <noreply@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the history-shaped Maven Invoker fixture suite with 20 flat, behavior-named workflows and documents the coverage contract for future additions.
The redesign keeps Invoker coverage focused on user-visible Maven/Groovy execution boundaries: lifecycle wiring, classpath selection, reactor behavior, generated bytecode/artifacts, forked JVM behavior, shaded Groovy discovery, and Maven-plugin consumption. A follow-up provenance audit found a few old fixtures were feature/regression boundaries rather than arbitrary variants, so this version restores those behaviors under descriptive names instead of preserving old fixture names.
Conditions tested by the old suite
basicCompile,advancedCompile,astCompilebasicCompilelater carried issue #186 annotation coverageconfigScriptCompileparametersCompiletestDependencyCompilemixedCompile,mixedCompile2,mixedCompileCircularmixedCompileMultiModule,mixedCompileMultiModule2basicGenerateStubs,advancedGenerateStubscleanClasspathCompilecleanClasspathGenerateStubsbasicExecute,advancedExecutemultimoduleProjectClasspath,multimodulePluginClasspath,multimodulePluginAndProjectClasspath,multimodulePluginAndProjectClasspath2basicGroovydoc,advancedGroovydocbasicGroovydocJarmixedGroovydoc,mixedGroovydoc2forkedCompile,forkedCompilePluginClasspath,forkedCompileProjectAndPluginClasspathforkedStubsforkedGroovyDocpluginClasspath,pluginAndProjectClasspath,testDependencyCompileshadedGroovymavenPluginConditions tested by the new suite
compile-defaultcompile-config-scriptcompile-parameterscompile-mixed-java-groovycompile-reactorstubs-main-and-teststubs-cleanupcompile-classpath-isolationstubs-classpath-isolationexecute-inline-and-fileexecute-reactor-classpathgroovydoc-main-and-jargroovydoc-test-and-test-jarforked-jvm-compile-and-stubsforked-jvm-groovydocclasspath-project-onlyclasspath-plugin-onlyclasspath-project-and-pluginshaded-groovymaven-plugin-consumerConditions intentionally no longer tested as separate Invoker projects
basic,advanced, and AST-flavored compile projectscompile-default,compile-config-script, andcompile-parametersbased on observable behavior.forked-jvm-compile-and-stubs.New or restored conditions added by this redesign
groovydocTestsgoal produces test GroovyDoc outputgroovydoc-test-and-test-jargroovydocTests-jarattaches/packages test documentationgroovydoc-test-and-test-jarremoveTestStubsremoves the generated test-stub source root from the Maven modelstubs-cleanupcompile-parametersstubs-classpath-isolationcompile-defaultforked-jvm-compile-and-stubsclasspath-project-only,classpath-plugin-only,classpath-project-and-plugingroovydoc-main-and-jar,groovydoc-test-and-test-jarsrc/it/README.md,AGENTS.mdVerification
.\mvnw.cmd '-Dinvoker.test=compile-default' invoker:run.\mvnw.cmd '-Dinvoker.test=compile-parameters' invoker:run.\mvnw.cmd '-Dinvoker.test=stubs-classpath-isolation' invoker:run.\mvnw.cmd '-Dinvoker.test=compile-classpath-isolation' invoker:rungit diff --check.\mvnw.cmd test.\mvnw.cmd invoker:runThe full Groovy 2.5, 3, 4, and 5 matrix remains for CI.