Skip to content

coverage: kill FileVersionInfo Is*/IsNot* and WhoseParent mutation survivors#161

Merged
vbreuss merged 1 commit into
mainfrom
coverage/kill-fileversioninfo-whoseparent-mutants
May 31, 2026
Merged

coverage: kill FileVersionInfo Is*/IsNot* and WhoseParent mutation survivors#161
vbreuss merged 1 commit into
mainfrom
coverage/kill-fileversioninfo-whoseparent-mutants

Conversation

@vbreuss

@vbreuss vbreuss commented May 31, 2026

Copy link
Copy Markdown
Member

Add tests targeting surviving string mutants reported on the Stryker dashboard:

  • FileVersionInfo Is*/IsNot* (IsDebug, IsPatched, IsPreRelease, IsPrivateBuild, IsSpecialBuild): the opposite-direction expectation strings were never rendered. Exercise them via DoesNotComplyWith, which flips the grammar so both literals appear in a failure message.
  • FileInfo.WhoseParent / DirectoryInfo.WhoseParent: assert the ' whose parent ' connector by chaining HasName().And.WhoseParent.
  • FileInfo.WhoseParent: cover the GetDirectoryOrThrow message for a root file whose Directory is null.

…rvivors

Add tests targeting surviving string mutants reported on the Stryker
dashboard:

- FileVersionInfo Is*/IsNot* (IsDebug, IsPatched, IsPreRelease,
  IsPrivateBuild, IsSpecialBuild): the opposite-direction expectation
  strings were never rendered. Exercise them via DoesNotComplyWith,
  which flips the grammar so both literals appear in a failure message.
- FileInfo.WhoseParent / DirectoryInfo.WhoseParent: assert the
  ' whose parent ' connector by chaining HasName().And.WhoseParent.
- FileInfo.WhoseParent: cover the GetDirectoryOrThrow message for a
  root file whose Directory is null.
@vbreuss vbreuss self-assigned this May 31, 2026
@vbreuss vbreuss added the coverage Additional tests for edge cases or improvement of test coverage label May 31, 2026
@vbreuss vbreuss enabled auto-merge (squash) May 31, 2026 19:23
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

Test Results

    7 files  ± 0      7 suites  ±0   56s ⏱️ -1s
  975 tests +13    974 ✅ +13  1 💤 ±0  0 ❌ ±0 
5 803 runs  +69  5 802 ✅ +69  1 💤 ±0  0 ❌ ±0 

Results for commit 7e9fecb. ± Comparison against base commit 16f0663.

@vbreuss vbreuss merged commit b5ebfe6 into main May 31, 2026
12 checks passed
@vbreuss vbreuss deleted the coverage/kill-fileversioninfo-whoseparent-mutants branch May 31, 2026 19:27
@github-actions

Copy link
Copy Markdown

🚀 Benchmark Results

Details

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.300
[Host] : .NET 10.0.8 (10.0.8, 10.0.826.23019), X64 RyuJIT x86-64-v3
DefaultJob : .NET 10.0.8 (10.0.8, 10.0.826.23019), X64 RyuJIT x86-64-v3

Method Mean Error StdDev Gen0 Gen1 Allocated
Dummy_aweXpect 4.556 μs 0.0499 μs 0.0442 μs 0.4349 0.0916 7.19 KB

@github-actions

Copy link
Copy Markdown

👽 Mutation Results

Mutation testing badge

aweXpect.Testably

Details
File Score Killed Survived Timeout No Coverage Ignored Compile Errors Total Detected Total Undetected Total Mutants

The final mutation score is NaN%

Coverage Thresholds: high:80 low:60 break:0

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown

This is addressed in release v1.0.0.

@github-actions github-actions Bot added the state: released The issue is released label Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coverage Additional tests for edge cases or improvement of test coverage state: released The issue is released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant