Files
sourcekit-lsp/Sources/SKTestSupport/TestBundle.swift
Alex Hoppen 6599292ff5 Add infrastructure to write tests for Swift macros
Add a default package manifest that defines two targets:
 - A macro target named `MyMacro`
 - And executable target named `MyMacroClient`

It builds the macro using the swift-syntax that was already built as part of the SourceKit-LSP build.
Re-using the SwiftSyntax modules that are already built is significantly faster than building swift-syntax in each test case run and does not require internet access.
2024-05-31 21:37:00 -07:00

35 lines
1.1 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2024 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import Foundation
/// The bundle of the currently executing test.
public let testBundle: Bundle = {
#if os(macOS)
if let bundle = Bundle.allBundles.first(where: { $0.bundlePath.hasSuffix(".xctest") }) {
return bundle
}
fatalError("couldn't find the test bundle")
#else
return Bundle.main
#endif
}()
/// The path to the built products directory, ie. `.build/debug/arm64-apple-macosx` or the platform-specific equivalent.
public let productsDirectory: URL = {
#if os(macOS)
return testBundle.bundleURL.deletingLastPathComponent()
#else
return testBundle.bundleURL
#endif
}()