From 7f8376c74a9067c10f65ef95f6e52325029106c1 Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Mon, 24 Mar 2025 14:12:32 -0700 Subject: [PATCH 1/7] Add a test target to SwiftPM package. --- Package.swift | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 94acfc4cd7b..1f82f9c87a0 100644 --- a/Package.swift +++ b/Package.swift @@ -82,5 +82,16 @@ let package = Package( (value["libraries"] as? [String] ?? []).map { .linkedLibrary($0) } ), ] - } + } + [ + .testTarget( + name: "tests", + dependencies: [ + .target(name: "executorch") + ], + path: "extension/apple/ExecuTorch/__tests__", + resources: [ + .copy("extension/apple/ExecuTorch/__tests__/resources/add.pte") + ] + ) + ] ) From 2e7bad0b1ce69c92c4bb8c63bb402fdd87469385 Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Mon, 24 Mar 2025 14:13:47 -0700 Subject: [PATCH 2/7] Update build_apple_frameworks.sh --- scripts/build_apple_frameworks.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/build_apple_frameworks.sh b/scripts/build_apple_frameworks.sh index c473d13cf50..585e9b92bb5 100755 --- a/scripts/build_apple_frameworks.sh +++ b/scripts/build_apple_frameworks.sh @@ -283,4 +283,8 @@ done rm -rf "$HEADERS_PATH" +echo "Running tests" + +swift test + echo "Build succeeded!" From 2927ed2eb696265970fab393455cf916c635659c Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Mon, 24 Mar 2025 15:02:09 -0700 Subject: [PATCH 3/7] Update build_apple_frameworks.sh --- scripts/build_apple_frameworks.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build_apple_frameworks.sh b/scripts/build_apple_frameworks.sh index 585e9b92bb5..7527fca565a 100755 --- a/scripts/build_apple_frameworks.sh +++ b/scripts/build_apple_frameworks.sh @@ -204,7 +204,7 @@ cmake_build() { cmake --build . \ --config "$mode" \ --verbose - cd .. + cd - } for index in ${!PLATFORMS[*]}; do @@ -282,6 +282,7 @@ for platform in "${PLATFORMS[@]}"; do done rm -rf "$HEADERS_PATH" +cd - || exit 1 echo "Running tests" From 8b9e2826ba2986fc9222c35da001b237c0fbf5fb Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Mon, 24 Mar 2025 18:03:37 -0700 Subject: [PATCH 4/7] Update build_apple_frameworks.sh --- scripts/build_apple_frameworks.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_apple_frameworks.sh b/scripts/build_apple_frameworks.sh index 7527fca565a..aae67b586ea 100755 --- a/scripts/build_apple_frameworks.sh +++ b/scripts/build_apple_frameworks.sh @@ -282,10 +282,10 @@ for platform in "${PLATFORMS[@]}"; do done rm -rf "$HEADERS_PATH" -cd - || exit 1 echo "Running tests" +cd "$SOURCE_ROOT_DIR" swift test echo "Build succeeded!" From dbabd3a083ba308994dce605d0f1740e5a531bd0 Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Tue, 25 Mar 2025 09:48:13 -0700 Subject: [PATCH 5/7] Update Package.swift --- Package.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 1f82f9c87a0..77e93830736 100644 --- a/Package.swift +++ b/Package.swift @@ -86,11 +86,18 @@ let package = Package( .testTarget( name: "tests", dependencies: [ - .target(name: "executorch") + .target(name: "executorch_debug"), + .target(name: "kernels_portable"), ], path: "extension/apple/ExecuTorch/__tests__", resources: [ - .copy("extension/apple/ExecuTorch/__tests__/resources/add.pte") + .copy("resources/add.pte") + ], + linkerSettings: [ + .unsafeFlags([ + "-Xlinker", "-force_load", + "-Xlinker", "cmake-out/kernels_portable.xcframework/macos-arm64/libkernels_portable_macos.a", + ]) ] ) ] From 9d8143b585988c031e2f796d9187f2a13c54021a Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Tue, 25 Mar 2025 09:49:47 -0700 Subject: [PATCH 6/7] Update ModuleTest.swift --- extension/apple/ExecuTorch/__tests__/ModuleTest.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/extension/apple/ExecuTorch/__tests__/ModuleTest.swift b/extension/apple/ExecuTorch/__tests__/ModuleTest.swift index 609727ec93f..03299cad991 100644 --- a/extension/apple/ExecuTorch/__tests__/ModuleTest.swift +++ b/extension/apple/ExecuTorch/__tests__/ModuleTest.swift @@ -11,9 +11,16 @@ import XCTest class ModuleTest: XCTestCase { + var resourceBundle: Bundle { +#if SWIFT_PACKAGE + return Bundle.module +#else + return Bundle(for: type(of: self)) +#endif + } + func test() throws { - let bundle = Bundle(for: type(of: self)) - guard let modelPath = bundle.path(forResource: "add", ofType: "pte") else { + guard let modelPath = resourceBundle.path(forResource: "add", ofType: "pte") else { XCTFail("Couldn't find the model file") return } From 1428dca65bb9d16112d7e03ebe7241cae8e2e48d Mon Sep 17 00:00:00 2001 From: Anthony Shoumikhin Date: Tue, 25 Mar 2025 11:17:37 -0700 Subject: [PATCH 7/7] Update Package.swift --- Package.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Package.swift b/Package.swift index 77e93830736..1322b918c07 100644 --- a/Package.swift +++ b/Package.swift @@ -94,6 +94,7 @@ let package = Package( .copy("resources/add.pte") ], linkerSettings: [ + .linkedLibrary("c++"), .unsafeFlags([ "-Xlinker", "-force_load", "-Xlinker", "cmake-out/kernels_portable.xcframework/macos-arm64/libkernels_portable_macos.a",