Skip to content

Fuzz: report a regression only when the fuzzed commit contains the fix - #1733

Merged
meziantou merged 1 commit into
mainfrom
feature/great-maxwell-a05b95
Oct 18, 2026
Merged

meziantou merged 1 commit into
mainfrom
feature/great-maxwell-a05b95

Conversation

@meziantou

Copy link
Copy Markdown
Owner

Why

The fuzz run 39145766253 fuzzed a branch (e002ab92) based on a commit older than the fixes of #1672-#1690. It found those defects again and opened 18 "reproduces again" issues (#1713-#1730), none of which reproduces on main.

What

  • report.ps1: for a finding whose latest issue is closed as completed, the script finds the commit that closed the issue (the merge commit of the closing pull request, or the closing commit, from the ClosedEvent.closer of the issue timeline) and checks with git merge-base --is-ancestor that the fuzzed commit contains it. When it does not, the finding is skipped as known. When the closing commit is unknown (issue closed manually, commit missing from the clone), the finding is still reported as a regression.
  • -DryRun now looks up the existing issues when -Repository is set (still read-only), so a dry run shows which findings would be skipped.
  • fuzz.yml: the report job checks out the full history (fetch-depth: 0), as merge-base needs both commits.
  • README.md: describes the rule in "Weekly run" and the dry run options.

Validation

Dry run with fake findings that use the signatures of existing issues, with -CommitSha e002ab92 (the commit of the run above):

Fixed in #1682 by 4b31bc262796b9298ee8c87ca731aae4c5736983, which e002ab920c50168715721938bf7a2176c4429c1f does not contain: Finding 6f13ff0038fd6c8c
Known in #1723: Finding 7f8c3a697ab200c3

A run of a branch that does not have the fix of an issue closed as completed finds the defect again. The report now finds the commit that closed the issue and skips the finding when the fuzzed commit does not contain it.
@meziantou
meziantou enabled auto-merge (squash) October 18, 2026 18:15
@meziantou
meziantou merged commit fa16ec9 into main Oct 18, 2026
14 checks passed
@meziantou
meziantou deleted the feature/great-maxwell-a05b95 branch October 18, 2026 18:17
This was referenced Oct 18, 2026
vdolek pushed a commit to EvilBrainsTechnology/EvilCase that referenced this pull request Oct 20, 2026
Updated
[Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer)
from 3.0.299 to 3.0.312.

<details>
<summary>Release notes</summary>

_Sourced from [Meziantou.Analyzer's
releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._

## 3.0.312

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.312>

## What's Changed
* Read the usage of the cache entries once before sorting them for the
eviction by @​meziantou in
meziantou/Meziantou.Analyzer#1734


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.311...3.0.312

## 3.0.311

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.311>

## What's Changed
* Fuzz: remove the Moq, MSTest, Newtonsoft.Json, NUnit and Serilog
package references by @​meziantou in
meziantou/Meziantou.Analyzer#1712
* Fuzz: report a regression only when the fuzzed commit contains the fix
by @​meziantou in
meziantou/Meziantou.Analyzer#1733
* MA0110: track the node to fix when the regex is in an attribute of the
type by @​meziantou in
meziantou/Meziantou.Analyzer#1731


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.310...3.0.311

## 3.0.310

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.310>

## What's Changed
* MA0190: find the method declaration after updating the call sites by
@​meziantou in meziantou/Meziantou.Analyzer#1708
* MA0011: do not bind the invocations of attribute arguments
speculatively by @​meziantou in
meziantou/Meziantou.Analyzer#1709
* Fuzz: do not blame the rules for the inputs on which Roslyn fails by
@​meziantou in meziantou/Meziantou.Analyzer#1710
* MA0010: do not offer the code fix when the class has no name by
@​meziantou in meziantou/Meziantou.Analyzer#1700


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.309...3.0.310

## 3.0.309

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.309>

## What's Changed
* MA0110: keep the variable when it cannot be removed or renamed by
@​meziantou in meziantou/Meziantou.Analyzer#1698
* MA0071: do not move the attributes of the else block by @​meziantou in
meziantou/Meziantou.Analyzer#1699
* MA0077: do not throw when Equals(T) is declared several times by
@​meziantou in meziantou/Meziantou.Analyzer#1701
* MA0187: do not offer the code fix when the property has no name by
@​meziantou in meziantou/Meziantou.Analyzer#1702
* MA0102: do not offer the code fix when the diagnostic is not on a
member by @​meziantou in
meziantou/Meziantou.Analyzer#1703
* MA0117: do not offer the code fix when the property has no name by
@​meziantou in meziantou/Meziantou.Analyzer#1704
* MA0189: do not offer the code fix when the fixed buffer has no name or
type by @​meziantou in
meziantou/Meziantou.Analyzer#1705
* MA0089: fix the single-character constants that are not literals by
@​meziantou in meziantou/Meziantou.Analyzer#1706
* MA0004: fix the await expressions without semicolon by @​meziantou in
meziantou/Meziantou.Analyzer#1707


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.308...3.0.309

## 3.0.308

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.308>

## What's Changed
* MA0137, MA0138: do not offer the rename when the name would be empty
or the declaration does not compile by @​meziantou in
meziantou/Meziantou.Analyzer#1697
* MA0067: do not report System.Guid used as an attribute by @​meziantou
in meziantou/Meziantou.Analyzer#1696


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.307...3.0.308

## 3.0.307

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.307>

## What's Changed
* MA0002: insert the comparer at the right position when an extension
method is called as a static method by @​meziantou in
meziantou/Meziantou.Analyzer#1670
* MA0044: do not offer the code fix when ToString is used as a statement
by @​meziantou in
meziantou/Meziantou.Analyzer#1669
* MA0185: do not offer the code fix when string.Create is used as a
statement by @​meziantou in
meziantou/Meziantou.Analyzer#1668
* MA0101: do not offer the code fix for interpolated strings by
@​meziantou in meziantou/Meziantou.Analyzer#1667
* MA0187: do not offer the code fix when the class has an explicit
constructor by @​meziantou in
meziantou/Meziantou.Analyzer#1666
* MA0004: fix the code fix when the await expression is an argument by
@​meziantou in meziantou/Meziantou.Analyzer#1665
* MA0102: do not report partial members by @​meziantou in
meziantou/Meziantou.Analyzer#1664
* MA0093: do not offer EventArgs.Empty when the event args are generic
by @​meziantou in
meziantou/Meziantou.Analyzer#1663
* MA0053: do not report classes used as generic constraints by
@​meziantou in meziantou/Meziantou.Analyzer#1662
* Overload finder: Half is not implicitly convertible to float or double
by @​meziantou in
meziantou/Meziantou.Analyzer#1661
* MA0042, MA0045: make the enclosing function async in the code fix by
@​meziantou in meziantou/Meziantou.Analyzer#1660


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.306...3.0.307

## 3.0.306

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.306>

## What's Changed
* Allow the fuzzer to open up to 50 issues per run by @​meziantou in
meziantou/Meziantou.Analyzer#1652
* Build the fuzz project after the other builds of build_with_analyzers
by @​meziantou in
meziantou/Meziantou.Analyzer#1671
* MA0038: fix the analyzer crash on invalid code and the code fixes that
break the code by @​meziantou in
meziantou/Meziantou.Analyzer#1653
* MA0194: do not throw on invalid code by @​meziantou in
meziantou/Meziantou.Analyzer#1654
* MA0009, MA0023: do not throw when the GeneratedRegex arguments are
invalid by @​meziantou in
meziantou/Meziantou.Analyzer#1655
* MA0110: do not report invalid patterns and fix the partial property
used as a statement by @​meziantou in
meziantou/Meziantou.Analyzer#1656
* MA0182: remove all the parts of a partial type and analyze the
delegate signatures by @​meziantou in
meziantou/Meziantou.Analyzer#1657
* MA0036: do not report classes that contain protected members by
@​meziantou in meziantou/Meziantou.Analyzer#1658
* MA0137, MA0138: do not rename a method to a name that is already used
by @​meziantou in
meziantou/Meziantou.Analyzer#1659


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.305...3.0.306

## 3.0.305

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.305>

## What's Changed
* MA0008: do not overflow the stack on cyclic struct layouts by
@​meziantou in meziantou/Meziantou.Analyzer#1640


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.304...3.0.305

## 3.0.304

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.304>

## What's Changed
* Add fuzz tests for the analyzers and the code fixers by @​meziantou in
meziantou/Meziantou.Analyzer#1641


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.303...3.0.304

## 3.0.303

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.303>

## What's Changed
* MA0100: do not look up GetAwaiter for the types that cannot be awaited
by @​meziantou in
meziantou/Meziantou.Analyzer#1635
* Reduce the time spent in MA0154, MA0218 and MA0219 by @​meziantou in
meziantou/Meziantou.Analyzer#1638
* Reduce the time spent in MA0182 by @​meziantou in
meziantou/Meziantou.Analyzer#1636
* Reduce the time spent in MA0134 by @​meziantou in
meziantou/Meziantou.Analyzer#1637


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.302...3.0.303

## 3.0.302

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.302>

## What's Changed
* Reduce the time spent in MA0001, MA0002, MA0011, MA0026, MA0074 and
MA0150 by @​meziantou in
meziantou/Meziantou.Analyzer#1634


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.301...3.0.302

## 3.0.301

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.301>

## What's Changed
* Reduce the CPU and the memory used by MA0202 by @​meziantou in
meziantou/Meziantou.Analyzer#1633


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.300...3.0.301

## 3.0.300

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.300>

## What's Changed
* MA0015, MA0043: do not enumerate all the symbols in scope by
@​meziantou in meziantou/Meziantou.Analyzer#1632


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.299...3.0.300

Commits viewable in [compare
view](meziantou/Meziantou.Analyzer@3.0.299...3.0.312).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Meziantou.Analyzer&package-manager=nuget&previous-version=3.0.299&new-version=3.0.312)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
kivilev pushed a commit to kivilev/plsql-developer-text-tools that referenced this pull request Oct 21, 2026
Updated
[Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer)
from 3.0.303 to 3.0.315.

<details>
<summary>Release notes</summary>

_Sourced from [Meziantou.Analyzer's
releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._

## 3.0.315

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.315>

## What's Changed
* Use two generations in BoundedCache instead of sorting the entries by
last usage by @​meziantou in
meziantou/Meziantou.Analyzer#1739


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.314...3.0.315

## 3.0.314

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.314>

## What's Changed
* MA0011: find the overload before computing the culture sensitivity by
@​meziantou in meziantou/Meziantou.Analyzer#1738


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.313...3.0.314

## 3.0.313

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.313>

## What's Changed
* Fix the CA5394 build error in BoundedCacheTests by @​meziantou in
meziantou/Meziantou.Analyzer#1735
* MA0243: Use an escape sequence for invisible characters by @​meziantou
in meziantou/Meziantou.Analyzer#1737


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.312...3.0.313

## 3.0.312

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.312>

## What's Changed
* Read the usage of the cache entries once before sorting them for the
eviction by @​meziantou in
meziantou/Meziantou.Analyzer#1734


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.311...3.0.312

## 3.0.311

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.311>

## What's Changed
* Fuzz: remove the Moq, MSTest, Newtonsoft.Json, NUnit and Serilog
package references by @​meziantou in
meziantou/Meziantou.Analyzer#1712
* Fuzz: report a regression only when the fuzzed commit contains the fix
by @​meziantou in
meziantou/Meziantou.Analyzer#1733
* MA0110: track the node to fix when the regex is in an attribute of the
type by @​meziantou in
meziantou/Meziantou.Analyzer#1731


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.310...3.0.311

## 3.0.310

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.310>

## What's Changed
* MA0190: find the method declaration after updating the call sites by
@​meziantou in meziantou/Meziantou.Analyzer#1708
* MA0011: do not bind the invocations of attribute arguments
speculatively by @​meziantou in
meziantou/Meziantou.Analyzer#1709
* Fuzz: do not blame the rules for the inputs on which Roslyn fails by
@​meziantou in meziantou/Meziantou.Analyzer#1710
* MA0010: do not offer the code fix when the class has no name by
@​meziantou in meziantou/Meziantou.Analyzer#1700


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.309...3.0.310

## 3.0.309

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.309>

## What's Changed
* MA0110: keep the variable when it cannot be removed or renamed by
@​meziantou in meziantou/Meziantou.Analyzer#1698
* MA0071: do not move the attributes of the else block by @​meziantou in
meziantou/Meziantou.Analyzer#1699
* MA0077: do not throw when Equals(T) is declared several times by
@​meziantou in meziantou/Meziantou.Analyzer#1701
* MA0187: do not offer the code fix when the property has no name by
@​meziantou in meziantou/Meziantou.Analyzer#1702
* MA0102: do not offer the code fix when the diagnostic is not on a
member by @​meziantou in
meziantou/Meziantou.Analyzer#1703
* MA0117: do not offer the code fix when the property has no name by
@​meziantou in meziantou/Meziantou.Analyzer#1704
* MA0189: do not offer the code fix when the fixed buffer has no name or
type by @​meziantou in
meziantou/Meziantou.Analyzer#1705
* MA0089: fix the single-character constants that are not literals by
@​meziantou in meziantou/Meziantou.Analyzer#1706
* MA0004: fix the await expressions without semicolon by @​meziantou in
meziantou/Meziantou.Analyzer#1707


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.308...3.0.309

## 3.0.308

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.308>

## What's Changed
* MA0137, MA0138: do not offer the rename when the name would be empty
or the declaration does not compile by @​meziantou in
meziantou/Meziantou.Analyzer#1697
* MA0067: do not report System.Guid used as an attribute by @​meziantou
in meziantou/Meziantou.Analyzer#1696


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.307...3.0.308

## 3.0.307

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.307>

## What's Changed
* MA0002: insert the comparer at the right position when an extension
method is called as a static method by @​meziantou in
meziantou/Meziantou.Analyzer#1670
* MA0044: do not offer the code fix when ToString is used as a statement
by @​meziantou in
meziantou/Meziantou.Analyzer#1669
* MA0185: do not offer the code fix when string.Create is used as a
statement by @​meziantou in
meziantou/Meziantou.Analyzer#1668
* MA0101: do not offer the code fix for interpolated strings by
@​meziantou in meziantou/Meziantou.Analyzer#1667
* MA0187: do not offer the code fix when the class has an explicit
constructor by @​meziantou in
meziantou/Meziantou.Analyzer#1666
* MA0004: fix the code fix when the await expression is an argument by
@​meziantou in meziantou/Meziantou.Analyzer#1665
* MA0102: do not report partial members by @​meziantou in
meziantou/Meziantou.Analyzer#1664
* MA0093: do not offer EventArgs.Empty when the event args are generic
by @​meziantou in
meziantou/Meziantou.Analyzer#1663
* MA0053: do not report classes used as generic constraints by
@​meziantou in meziantou/Meziantou.Analyzer#1662
* Overload finder: Half is not implicitly convertible to float or double
by @​meziantou in
meziantou/Meziantou.Analyzer#1661
* MA0042, MA0045: make the enclosing function async in the code fix by
@​meziantou in meziantou/Meziantou.Analyzer#1660


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.306...3.0.307

## 3.0.306

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.306>

## What's Changed
* Allow the fuzzer to open up to 50 issues per run by @​meziantou in
meziantou/Meziantou.Analyzer#1652
* Build the fuzz project after the other builds of build_with_analyzers
by @​meziantou in
meziantou/Meziantou.Analyzer#1671
* MA0038: fix the analyzer crash on invalid code and the code fixes that
break the code by @​meziantou in
meziantou/Meziantou.Analyzer#1653
* MA0194: do not throw on invalid code by @​meziantou in
meziantou/Meziantou.Analyzer#1654
* MA0009, MA0023: do not throw when the GeneratedRegex arguments are
invalid by @​meziantou in
meziantou/Meziantou.Analyzer#1655
* MA0110: do not report invalid patterns and fix the partial property
used as a statement by @​meziantou in
meziantou/Meziantou.Analyzer#1656
* MA0182: remove all the parts of a partial type and analyze the
delegate signatures by @​meziantou in
meziantou/Meziantou.Analyzer#1657
* MA0036: do not report classes that contain protected members by
@​meziantou in meziantou/Meziantou.Analyzer#1658
* MA0137, MA0138: do not rename a method to a name that is already used
by @​meziantou in
meziantou/Meziantou.Analyzer#1659


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.305...3.0.306

## 3.0.305

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.305>

## What's Changed
* MA0008: do not overflow the stack on cyclic struct layouts by
@​meziantou in meziantou/Meziantou.Analyzer#1640


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.304...3.0.305

## 3.0.304

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.304>

## What's Changed
* Add fuzz tests for the analyzers and the code fixers by @​meziantou in
meziantou/Meziantou.Analyzer#1641


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.303...3.0.304

Commits viewable in [compare
view](meziantou/Meziantou.Analyzer@3.0.303...3.0.315).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Meziantou.Analyzer&package-manager=nuget&previous-version=3.0.303&new-version=3.0.315)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

1 participant