Skip to content

Add a parser for Stryker#299

Merged
uhafner merged 10 commits into
jenkinsci:mainfrom
akash-manna-sky:stryker-parser
Jun 9, 2026
Merged

Add a parser for Stryker#299
uhafner merged 10 commits into
jenkinsci:mainfrom
akash-manna-sky:stryker-parser

Conversation

@akash-manna-sky

Copy link
Copy Markdown
Contributor

Add a parser for Stryker

Fixes #298

Testing done

Submitter checklist

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests that demonstrate the feature works or the issue is fixed

@akash-manna-sky akash-manna-sky marked this pull request as ready for review June 8, 2026 07:16
@uhafner uhafner added the feature New features label Jun 8, 2026

@uhafner uhafner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Awesome! Thank you very much for this contribution. Good to see that the PIT model fits also for a totally different mutation format.

Comment thread pom.xml Outdated
Comment on lines +125 to +127
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.2</version>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use the 3.x release line of Jackson?

.withSourceFile(fileName)
.withMutatedClass(toMutatedClass(relativePath))
.withMutatedMethod("mutation-" + id)
.withMutatedMethodSignature(StringUtils.EMPTY)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is the default

Suggested change
.withMutatedMethodSignature(StringUtils.EMPTY)

Comment on lines +147 to +159
if (!node.isArray()) {
return StringUtils.EMPTY;
}

var builder = new StringBuilder();
var iterator = node.elements();
while (iterator.hasNext()) {
if (!builder.isEmpty()) {
builder.append(',');
}
builder.append(iterator.next().asText(StringUtils.EMPTY));
}
return builder.toString();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Isn't there a simpler way in Jackson 3 that uses a stream to get the result?

@github-actions github-actions Bot requested a review from uhafner June 9, 2026 03:01
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

☀️   Quality Monitor

Tests

   JUnit   Unit Tests: ✅ successful — 391 passed $\color{green}{\textsf{(+23)}}$
   ⛔   Architecture Tests: ✅ successful — 10 passed $\textsf{(±0)}$

Coverage for New Code

   〰️   Line Coverage: 97.53% — 2 missed lines
   ➰   Branch Coverage: 100.00% — perfect 🎉
   PIT   Mutation Coverage: 96.30% — 1 survived mutations
   💪   Test Strength: 100.00% — perfect 🎉

Coverage for Whole Project

   〰️   Line Coverage: 95.78% $\color{green}{\textsf{(+0.05)}}$ — 131 missed lines
   ➰   Branch Coverage: 91.37% $\color{green}{\textsf{(+0.21)}}$ — 113 missed branches
   PIT   Mutation Coverage: 89.44% $\color{green}{\textsf{(+0.13)}}$ — 160 survived mutations
   💪   Test Strength: 92.49% $\color{green}{\textsf{(+0.07)}}$ — 110 survived mutations in tested code

Style

   CheckStyle   CheckStyle: No warnings $\textsf{(±0)}$
   PMD   PMD: No warnings $\textsf{(±0)}$
   ☕   Java Compiler: No warnings $\textsf{(±0)}$

Bugs

   SpotBugs   SpotBugs: No bugs $\textsf{(±0)}$
   🐛   Error Prone: No bugs $\textsf{(±0)}$

API Problems

   🚫   Revapi: 6 warnings $\color{green}{\textsf{(+5)}}$ — normal: 4, low: 2

Vulnerabilities

   🛡️   OWASP Dependency Check: No vulnerabilities $\textsf{(±0)}$

Software Metrics

   🌀   Cyclomatic Complexity: 949 (total)
   💭   Cognitive Complexity: 739 (total)
   ➿   N-Path Complexity: 1508 (total)
   📏   Lines of Code: 9597 (total)
   📝   Non Commenting Source Statements: 3862 (total)
   🔗   Class Cohesion: 54.55% (maximum)
   ⚖️   Weight of Class: 100.00% (maximum)

📌 Reference Results

Delta reports computed against the reference results of 0f28aa7 in workflow run 26680627502.

🚦 Quality Gates

Overall Status: ✅ SUCCESS

✅ Passed Gates

  • ✅ Overall Tests Success Rate: 100.00 >= 100.00
  • ✅ Line Coverage in New Code: 97.53 >= 90.00
  • ✅ Branch Coverage in New Code: 100.00 >= 90.00
  • ✅ Mutation Coverage in New Code: 96.30 >= 90.00
  • ✅ Potential Bugs in Whole Project: 0.00 <= 0.00
  • ✅ Style Violation in Whole Project: 0.00 <= 0.00

Created by Quality Monitor v4.15.0 (#82d77af). More details are shown in the GitHub Checks Result.

@uhafner uhafner merged commit b9da99e into jenkinsci:main Jun 9, 2026
31 checks passed
@akash-manna-sky akash-manna-sky deleted the stryker-parser branch June 9, 2026 11:50
@akash-manna-sky

Copy link
Copy Markdown
Contributor Author

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a parser for Stryker

2 participants