     }
 
     func testCheckVendedModulesOnly() throws {
-        #if os(macOS)
-        guard (try? Resources.default.toolchain.getSwiftAPIDigester()) != nil else {
-            throw XCTSkip("swift-api-digester not available")
-        }
+        try skipIfApiDigesterUnsupported()
         fixture(name: "Miscellaneous/APIDiff/") { prefix in
             let packageRoot = prefix.appending(component: "NonAPILibraryTargets")
             try localFileSystem.writeFileContents(packageRoot.appending(components: "Sources", "Foo", "Foo.swift")) {

                XCTAssertTrue(stderr.contains("error: 'Foo' is not a Swift language target"))
            }
        }
        #else
        throw XCTSkip("Test unsupported on current platform")
        #endif
    }

    func testNoBreakingChanges() throws {
        #if os(macOS)
        guard (try? Resources.default.toolchain.getSwiftAPIDigester()) != nil else {
            throw XCTSkip("swift-api-digester not available")
        }
        fixture(name: "Miscellaneous/APIDiff/") { prefix in
            let packageRoot = prefix.appending(component: "Bar")
            // Introduce an API-compatible change

            XCTAssertTrue(output.contains("No breaking changes detected in Qux"))
            XCTAssertTrue(output.contains("Skipping Foo because it does not exist in the baseline"))
        }
    }

    func testBadTreeish() throws {
        try skipIfApiDigesterUnsupported()
        fixture(name: "Miscellaneous/APIDiff/") { prefix in
            let packageRoot = prefix.appending(component: "Foo")
            XCTAssertThrowsError(try execute(["experimental-api-diff", "7.8.9"], packagePath: packageRoot)) { error in
