diff --git a/highlight-swift/Package.swift b/highlight-swift/Package.swift index de18bd7..96f17fe 100644 --- a/highlight-swift/Package.swift +++ b/highlight-swift/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.6 +// swift-tools-version: 5.7 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription @@ -7,6 +7,7 @@ let package = Package( name: "highlight-swift", platforms: [ .macOS(.v11), + .iOS(.v16), ], products: [ // Products define the executables and libraries a package produces, and make them visible to other packages. @@ -25,5 +26,6 @@ let package = Package( .target( name: "highlight-swift", dependencies: ["Splash"]), + .testTarget(name: "highlight-swift-tests", dependencies: ["highlight-swift"]) ] ) diff --git a/highlight-swift/Tests/LinuxMain.swift b/highlight-swift/Tests/LinuxMain.swift new file mode 100644 index 0000000..4f390b0 --- /dev/null +++ b/highlight-swift/Tests/LinuxMain.swift @@ -0,0 +1,5 @@ +import XCTest + +XCTMain([ + testCase(HighlightTests.allTests), +]) diff --git a/highlight-swift/Tests/highlight-swift-tests/HighlightTests.swift b/highlight-swift/Tests/highlight-swift-tests/HighlightTests.swift new file mode 100644 index 0000000..a7eb043 --- /dev/null +++ b/highlight-swift/Tests/highlight-swift-tests/HighlightTests.swift @@ -0,0 +1,30 @@ +// +// HighlightTests.swift +// +// +// Created by Shadowfacts on 12/10/22. +// + +import XCTest +@testable import highlight_swift + +class HighlightTests: XCTestCase { + static var allTests = [ + ("testHighlight", testHighlight), + ] + + func testHighlight() { + var code = "1+1" + var len: UInt64 = 0 + let result = code.withUTF8 { codePtr in + withUnsafeMutablePointer(to: &len) { lenPtr in + highlight(codePtr: UnsafeRawPointer(codePtr.baseAddress!), codeLen: UInt64(codePtr.count), htmlLenPtr: lenPtr) + } + } + let start = UnsafePointer(result.assumingMemoryBound(to: UInt8.self)) + let htmlPtr = UnsafeBufferPointer(start: start, count: Int(len)) + let data = Data(buffer: htmlPtr) + let expected = "1+1" + XCTAssertEqual(String(data: data, encoding: .utf8), expected) + } +}