Skip to content

Fix combination runner/converter, Expecto directory verification, and…#1769

Merged
SimonCropp merged 2 commits into
mainfrom
Fix-combination-runner/converter,-Expecto-directory-verification,-and-clipboard-accept
Jul 5, 2026
Merged

Fix combination runner/converter, Expecto directory verification, and…#1769
SimonCropp merged 2 commits into
mainfrom
Fix-combination-runner/converter,-Expecto-directory-verification,-and-clipboard-accept

Conversation

@SimonCropp

Copy link
Copy Markdown
Member

… clipboard accept

  • CombinationRunner: validate every input list is non-empty in the constructor with a descriptive message instead of a raw IndexOutOfRangeException
  • CombinationRunner: pass the raw method result to after-callbacks; only the serialized CombinationResult is wrapped in InfoBuilder when recording is active
  • CombinationResultsConverter: cache GetNameForParameter per distinct key value instead of recomputing it for every cell (O(distinct) instead of O(rows*keys))
  • Verify.Expecto: the VerifyDirectory(DirectoryInfo) overloads now capture GetCallingAssembly and call the core directly, so the caller's assembly is used rather than Verify.Expecto
  • Verify.Expecto: use ExceptionDispatchInfo to rethrow the inner exception so the original stack trace is preserved
  • ClipboardAccept: parse Verify_DisableClipboard leniently (1/0/yes/no/on/off/ true/false) and warn instead of throwing from the static constructor, which poisoned the type with a TypeInitializationException
  • ClipboardAccept: shell-escape substituted paths so metacharacters ($, `) in a path are not expanded
  • Add tests for the above

… clipboard accept

- CombinationRunner: validate every input list is non-empty in the constructor
  with a descriptive message instead of a raw IndexOutOfRangeException
- CombinationRunner: pass the raw method result to after-callbacks; only the
  serialized CombinationResult is wrapped in InfoBuilder when recording is active
- CombinationResultsConverter: cache GetNameForParameter per distinct key value
  instead of recomputing it for every cell (O(distinct) instead of O(rows*keys))
- Verify.Expecto: the VerifyDirectory(DirectoryInfo) overloads now capture
  GetCallingAssembly and call the core directly, so the caller's assembly is used
  rather than Verify.Expecto
- Verify.Expecto: use ExceptionDispatchInfo to rethrow the inner exception so the
  original stack trace is preserved
- ClipboardAccept: parse Verify_DisableClipboard leniently (1/0/yes/no/on/off/
  true/false) and warn instead of throwing from the static constructor, which
  poisoned the type with a TypeInitializationException
- ClipboardAccept: shell-escape substituted paths so metacharacters ($, `) in a
  path are not expanded
- Add tests for the above
@SimonCropp SimonCropp added this to the 31.21.0 milestone Jul 5, 2026
@SimonCropp SimonCropp merged commit 179ab5f into main Jul 5, 2026
2 of 3 checks passed
@SimonCropp SimonCropp deleted the Fix-combination-runner/converter,-Expecto-directory-verification,-and-clipboard-accept branch July 5, 2026 11:06
This was referenced Jul 6, 2026
This was referenced Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants