Skip to content

Close processor test coverage gaps: end-to-end parsing, missing attribute tests #592

Description

@stalep

Context

Gap analysis of ProcessorTest coverage (from #591 investigation) identified several areas where the annotation processor generates correct metadata (verified via assertEquivalence) but the generated path is not exercised end-to-end through parsing and execution.

Test Gaps to Close

Missing from assertEquivalence itself

  • selectorType is not compared between reflection and generated options

Features with equivalence tests but no end-to-end parsing on generated path

  • @OptionList parsing (--items a,b,c)
  • @OptionGroup parsing (-Dkey=value)
  • Negatable option parsing (--no-verbose)
  • acceptNameWithoutDashes parsing (format json without --)
  • allowedValues rejection (invalid value → error)
  • exclusiveWith rejection (both mutually exclusive options set → error)
  • Option alias parsing (--ea as synonym for --enableassertions)
  • stopAtFirstPositional parsing
  • Custom callback execution (validator/completer invoked during parse)

Features with zero test coverage

  • descriptionUrl / url on options (no test command uses non-default values)
  • helpUrl on @CommandDefinition (no test command uses non-default value)
  • Command-level completeFallback (only option-level tested)
  • Private mixin assertEquivalence (only native-image config tested)

Context

These gaps were identified during the #591 implementation and scoped out to keep the change focused. The core processor functionality is well-tested via assertEquivalence, but end-to-end tests would catch integration issues between the generated metadata and the parser/executor.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions