Repository navigation
Tests, cleanup and release dry-run fix from the audit for 3.0.0-beta.2 - #69
Merged
Merged
Conversation
The fixture list is read at run time, and an unreadable directory gave an empty list, so the parameterized test ran no case and passed. A separate test now expects at least the 30 fixtures there are. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tests split lines with components(separatedBy:), named files through NSString and trimmed with CharacterSet, against the rule to use the modern Swift APIs. They now use split, a shared lines helper, ranges(of:) and the generator's own trimmed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
swift6-matrix.sh ignored the generator's exit status and then compiled whatever mock the previous run had left, so a generator error could pass as ok. It now deletes the old mock first and reports a failed generation as FAIL with its first error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
typedThrowsThenTypedError stubbed a throw and never called the member, testInout printed the argument, and the captor's Sendable test checked that a value is its own type. They now expect the thrown error, the argument the then closure received and the call, and a capture made from a detached task. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Both were tested only as parsed values. The new tests check that protocolsOnly leaves classes out and that turning inheritance off stops a derived protocol's mock repeating its parent's members. glob = false is covered by the unmatched-sources test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cuckoo.h and the two Info.plists were left from the Xcode framework targets, which SwiftPM excluded or ignored, and .gitignore still listed Pods, .fastlane and Generator/*.app from CocoaPods, fastlane and the old generator app. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WrappableType and Deinitializer were never used, ComplexType's array and dictionary cases were never built (the parser keeps those types as plain names), the @objc attributes were never parsed, and the crawler kept a DEBUG-only test string with commented-out code to parse it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Two exclusive flags held whether the superclass spy or the default implementation answers calls with no stub, with a TODO to merge them. One Fallback value now does, so they can't both be set. Enabling the superclass spy again is now allowed, as enabling the default implementation again already is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The eight failure scenarios were written out twice, once for the failure handler and once for the Swift Testing issue. They're now one list of parameterized arguments, which both tests run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CuckooSingleFileTestPlugin had its own copy of ListedSource and the --source/--sources-list code. The code moves to Generator/Plugin/SourcesArguments.swift, which the test plugin links with a symlink, since a plugin can't depend on a library target. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The version check refused an existing tag even in a dry run, so between releases, when master's version files still hold the last released version, a dry run couldn't run at all. A dry run never tags, so it now notes the tag and goes on; a real release still refuses it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test.yml set no top-level permissions, so its jobs got the repository's default token scope. They only read the repository; the CI passed job keeps its own actions: read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Package.resolved had the URL with .git, unlike the manifest. swift package resolve keeps the new spelling and the originHash, which comes from the manifest, is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The verbose description of a module's options listed every option but defaultIsolation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The header still said draft, from 2026-10-22. It now gives the phases' state, and Phase 6 records the alpha.1 and beta.1 releases and the beta.2 plan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The test, cleanup and CI work from the pre-release audit (Tier 5), plus a release dry-run fix: the third of four PRs for 3.0.0-beta.2, after #67 and #68.
Changelog
split,ranges(of:), a sharedlineshelper) in the generator tests.scripts/swift6-matrix.sh: remove a fixture's old mock first and count a generator failure as a failed fixture.inouttest checks the received value and verifies the call, and the captorSendabletest captures fromTask.detached.protocolsOnlyandenableInheritanceoptions.Source/Cuckoo.h, the Info.plists, theirPackage.swiftexcludes, and the.gitignoreentries for Pods, fastlane and the generator app.WrappableType,Deinitializer, the unusedComplexTypecases and attributes, and the DEBUG test string.enableSuperclassSpy()be called again.CuckooPluginand the test-only single-file plugin.permissions: contents: read).Package.resolvedasPackage.swiftdoes;swift package resolveleaves the file unchanged.defaultIsolationin the generator's--verboseoutput.Testing
swift test, theCuckooTestsscheme on the iOS simulator, and arm64 tvOS and watchOS build-for-testing: pass, no warnings.swift testwith upcoming features off and on, and the Swift 6 fixture matrix (off, all on, Xcode 26 defaults): pass, no warnings. 13 intentional Swift Testing known issues.