From b8db3a9a6a6e03acf80e81edcd8c79860d5bc445 Mon Sep 17 00:00:00 2001 From: mustiikhalil <26250654+mustiikhalil@users.noreply.github.com> Date: Mon, 30 Jun 2025 14:45:48 +0200 Subject: [PATCH] Adds windows swift support (#8622) Adding support for windows requires the code generations to add a compiler statement to completely ignore GRPC code generation on windows Cleanup the project to use the main Package.swift to run tests instead of having it separate and includes the imports for GRPC within it. Adds windows swift ci --- .github/workflows/build.yml | 18 ++++++-- Package.swift | 37 ++++++++++++++++- .../Greeter/Sources/Model/greeter.grpc.swift | 3 ++ grpc/src/compiler/swift_generator.cc | 3 ++ scripts/generate_code.py | 4 +- .../Flatbuffers}/ByteBufferTests.swift | 0 .../FlatBuffersMonsterWriterTests.swift | 3 +- .../Flatbuffers}/FlatBuffersNanInfTests.swift | 0 .../FlatBuffersStructsTests.swift | 0 .../Flatbuffers}/FlatBuffersTests.swift | 0 .../Flatbuffers}/FlatBuffersUnionTests.swift | 0 .../FlatBuffersVectorsTests.swift | 0 .../Flatbuffers}/FlatbuffersDoubleTests.swift | 0 .../FlatbuffersMoreDefaults.swift | 0 .../FlatbuffersVerifierTests.swift | 0 .../Flatbuffers}/MutatingBool_generated.swift | 0 .../Flatbuffers}/monster_test.grpc.swift | 3 ++ .../Flatbuffers}/monster_test_generated.swift | 0 .../Flatbuffers}/monsterdata_test.mon | Bin .../more_defaults_generated.swift | 0 .../Flatbuffers}/nan_inf_test_generated.swift | 0 .../optional_scalars_generated.swift | 0 .../Flatbuffers}/union_vector_generated.swift | 0 .../vector_has_test_generated.swift | 0 .../Flexbuffers}/FlexBuffersJSONTests.swift | 0 .../Flexbuffers}/FlexBuffersReaderTests.swift | 0 .../Flexbuffers}/FlexBuffersStringTests.swift | 0 .../Flexbuffers}/FlexBuffersWriterTests.swift | 0 .../Flexbuffers}/Mocks.swift | 0 .../CodeGenerationTests/test_import.fbs | 0 .../test_import_generated.swift | 0 .../CodeGenerationTests/test_no_include.fbs | 0 .../test_no_include_generated.swift | 0 tests/swift/{tests => fuzzer}/Package.swift | 22 +--------- .../Sources/fuzzer}/fuzzer.fbs | 0 .../Sources/fuzzer}/fuzzer_generated.swift | 0 .../Sources/fuzzer}/main.swift | 0 tests/swift/tests/SwiftTest.sh | 39 ------------------ 38 files changed, 64 insertions(+), 68 deletions(-) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/ByteBufferTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatBuffersMonsterWriterTests.swift (99%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatBuffersNanInfTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatBuffersStructsTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatBuffersTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatBuffersUnionTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatBuffersVectorsTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatbuffersDoubleTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatbuffersMoreDefaults.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/FlatbuffersVerifierTests.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/MutatingBool_generated.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/monster_test.grpc.swift (99%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/monster_test_generated.swift (100%) rename tests/swift/{tests => Tests/Flatbuffers}/monsterdata_test.mon (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/more_defaults_generated.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/nan_inf_test_generated.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/optional_scalars_generated.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/union_vector_generated.swift (100%) rename tests/swift/{tests/Tests/FlatBuffers.Test.SwiftTests => Tests/Flatbuffers}/vector_has_test_generated.swift (100%) rename tests/swift/{tests/Tests/FlexBuffers.Test.SwiftTests => Tests/Flexbuffers}/FlexBuffersJSONTests.swift (100%) rename tests/swift/{tests/Tests/FlexBuffers.Test.SwiftTests => Tests/Flexbuffers}/FlexBuffersReaderTests.swift (100%) rename tests/swift/{tests/Tests/FlexBuffers.Test.SwiftTests => Tests/Flexbuffers}/FlexBuffersStringTests.swift (100%) rename tests/swift/{tests/Tests/FlexBuffers.Test.SwiftTests => Tests/Flexbuffers}/FlexBuffersWriterTests.swift (100%) rename tests/swift/{tests/Tests/FlexBuffers.Test.SwiftTests => Tests/Flexbuffers}/Mocks.swift (100%) rename tests/swift/{tests => fuzzer}/CodeGenerationTests/test_import.fbs (100%) rename tests/swift/{tests => fuzzer}/CodeGenerationTests/test_import_generated.swift (100%) rename tests/swift/{tests => fuzzer}/CodeGenerationTests/test_no_include.fbs (100%) rename tests/swift/{tests => fuzzer}/CodeGenerationTests/test_no_include_generated.swift (100%) rename tests/swift/{tests => fuzzer}/Package.swift (50%) rename tests/swift/{tests/Sources/SwiftFlatBuffers => fuzzer/Sources/fuzzer}/fuzzer.fbs (100%) rename tests/swift/{tests/Sources/SwiftFlatBuffers => fuzzer/Sources/fuzzer}/fuzzer_generated.swift (100%) rename tests/swift/{tests/Sources/SwiftFlatBuffers => fuzzer/Sources/fuzzer}/main.swift (100%) delete mode 100755 tests/swift/tests/SwiftTest.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a3f680595..07d687660 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -492,10 +492,10 @@ jobs: sh phpUnionVectorTest.sh build-swift: - name: Build Swift + name: Test Swift strategy: matrix: - swift: ["5.9", "5.10", "6.0"] + swift: ["5.9", "5.10", "6.1"] # Only 22.04 has swift at the moment https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md?plain=1#L30 runs-on: ubuntu-22.04 steps: @@ -506,13 +506,23 @@ jobs: - name: Get swift version run: swift --version - name: test - working-directory: tests/swift/tests run: | swift build --build-tests swift test + build-swift-windows: + name: Test swift windows + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - uses: SwiftyLab/setup-swift@latest + with: + swift-version: '6.1' + - run: swift build + - run: swift test + build-swift-wasm: - name: Build Swift Wasm + name: Test Swift Wasm runs-on: ubuntu-24.04 container: image: ghcr.io/swiftwasm/carton:0.20.1 diff --git a/Package.swift b/Package.swift index 24326ccf4..481cc9e7d 100644 --- a/Package.swift +++ b/Package.swift @@ -31,6 +31,7 @@ let package = Package( name: "FlexBuffers", targets: ["FlexBuffers"]), ], + dependencies: .dependencies, targets: [ .target( name: "FlatBuffers", @@ -42,6 +43,40 @@ let package = Package( path: "swift/Sources/FlexBuffers"), .target( name: "Common", - dependencies: [], path: "swift/Sources/Common"), + .testTarget( + name: "FlatbuffersTests", + dependencies: .dependencies, + path: "tests/swift/Tests/Flatbuffers" + ), + .testTarget( + name: "FlexbuffersTests", + dependencies: ["FlexBuffers"], + path: "tests/swift/Tests/Flexbuffers" + ) ]) + +extension Array where Element == Package.Dependency { + static var dependencies: [Package.Dependency] { + #if os(Windows) + [] + #else + // Test only Dependency + [.package(url: "https://github.com/grpc/grpc-swift.git", from: "1.4.1")] + #endif + } +} + +extension Array where Element == PackageDescription.Target.Dependency { + static var dependencies: [PackageDescription.Target.Dependency] { + #if os(Windows) + ["FlatBuffers"] + #else + // Test only Dependency + [ + .product(name: "GRPC", package: "grpc-swift"), + "FlatBuffers" + ] + #endif + } +} diff --git a/grpc/examples/swift/Greeter/Sources/Model/greeter.grpc.swift b/grpc/examples/swift/Greeter/Sources/Model/greeter.grpc.swift index 0a7867b9f..700c5cd59 100644 --- a/grpc/examples/swift/Greeter/Sources/Model/greeter.grpc.swift +++ b/grpc/examples/swift/Greeter/Sources/Model/greeter.grpc.swift @@ -5,6 +5,7 @@ // swiftlint:disable all // swiftformat:disable all +#if !os(Windows) import Foundation import GRPC import NIO @@ -142,3 +143,5 @@ public protocol models_GreeterServerInterceptorFactoryProtocol { func makeSayManyHellosInterceptors() -> [ServerInterceptor, Message>] } +#endif + diff --git a/grpc/src/compiler/swift_generator.cc b/grpc/src/compiler/swift_generator.cc index 935a8a39a..ea1fd8313 100644 --- a/grpc/src/compiler/swift_generator.cc +++ b/grpc/src/compiler/swift_generator.cc @@ -394,6 +394,8 @@ grpc::string Generate(grpc_generator::File *file, GenerateClientClass(&*printer, &vars); printer->Print("\n"); GenerateServerProtocol(service, &*printer, &vars); + printer->Print("\n"); + printer->Print("#endif\n"); return output; } @@ -409,6 +411,7 @@ grpc::string GenerateHeader() { code += "// swiftlint:disable all\n"; code += "// swiftformat:disable all\n"; code += "\n"; + code += "#if !os(Windows)\n"; code += "import Foundation\n"; code += "import GRPC\n"; code += "import NIO\n"; diff --git a/scripts/generate_code.py b/scripts/generate_code.py index a846be7ce..d558fe1f5 100755 --- a/scripts/generate_code.py +++ b/scripts/generate_code.py @@ -23,7 +23,7 @@ from pathlib import Path from util import flatc, root_path, tests_path, args, flatc_path # Specify the other paths that will be referenced -swift_code_gen = Path(root_path, "tests/swift/tests/CodeGenerationTests") +swift_code_gen = Path(root_path, "tests/swift/fuzzer/CodeGenerationTests") ts_code_gen = Path(root_path, "tests/ts") samples_path = Path(root_path, "samples") reflection_path = Path(root_path, "reflection") @@ -405,7 +405,7 @@ dictionary_lookup_schema = "dictionary_lookup.fbs" flatc(["--java", "--kotlin"], schema=dictionary_lookup_schema) # Swift Tests -swift_prefix = "swift/tests/Tests/FlatBuffers.Test.SwiftTests" +swift_prefix = "swift/Tests/Flatbuffers" flatc( SWIFT_OPTS + BASE_OPTS + ["--grpc"], schema="monster_test.fbs", diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/ByteBufferTests.swift b/tests/swift/Tests/Flatbuffers/ByteBufferTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/ByteBufferTests.swift rename to tests/swift/Tests/Flatbuffers/ByteBufferTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift b/tests/swift/Tests/Flatbuffers/FlatBuffersMonsterWriterTests.swift similarity index 99% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift rename to tests/swift/Tests/Flatbuffers/FlatBuffersMonsterWriterTests.swift index 0041f8422..3e6441d19 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersMonsterWriterTests.swift +++ b/tests/swift/Tests/Flatbuffers/FlatBuffersMonsterWriterTests.swift @@ -535,11 +535,10 @@ class FlatBuffersMonsterWriterTests: XCTestCase { // strips out the nested directories. let filePath = URL(filePath: #file) .deletingLastPathComponent() - .deletingLastPathComponent() - .deletingLastPathComponent() return filePath.absoluteString #else return FileManager.default.currentDirectoryPath + .appending("/tests/swift/Tests/Flatbuffers") #endif } diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift b/tests/swift/Tests/Flatbuffers/FlatBuffersNanInfTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersNanInfTests.swift rename to tests/swift/Tests/Flatbuffers/FlatBuffersNanInfTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersStructsTests.swift b/tests/swift/Tests/Flatbuffers/FlatBuffersStructsTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersStructsTests.swift rename to tests/swift/Tests/Flatbuffers/FlatBuffersStructsTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersTests.swift b/tests/swift/Tests/Flatbuffers/FlatBuffersTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersTests.swift rename to tests/swift/Tests/Flatbuffers/FlatBuffersTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift b/tests/swift/Tests/Flatbuffers/FlatBuffersUnionTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersUnionTests.swift rename to tests/swift/Tests/Flatbuffers/FlatBuffersUnionTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersVectorsTests.swift b/tests/swift/Tests/Flatbuffers/FlatBuffersVectorsTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatBuffersVectorsTests.swift rename to tests/swift/Tests/Flatbuffers/FlatBuffersVectorsTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersDoubleTests.swift b/tests/swift/Tests/Flatbuffers/FlatbuffersDoubleTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersDoubleTests.swift rename to tests/swift/Tests/Flatbuffers/FlatbuffersDoubleTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersMoreDefaults.swift b/tests/swift/Tests/Flatbuffers/FlatbuffersMoreDefaults.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersMoreDefaults.swift rename to tests/swift/Tests/Flatbuffers/FlatbuffersMoreDefaults.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersVerifierTests.swift b/tests/swift/Tests/Flatbuffers/FlatbuffersVerifierTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/FlatbuffersVerifierTests.swift rename to tests/swift/Tests/Flatbuffers/FlatbuffersVerifierTests.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift b/tests/swift/Tests/Flatbuffers/MutatingBool_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/MutatingBool_generated.swift rename to tests/swift/Tests/Flatbuffers/MutatingBool_generated.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test.grpc.swift b/tests/swift/Tests/Flatbuffers/monster_test.grpc.swift similarity index 99% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test.grpc.swift rename to tests/swift/Tests/Flatbuffers/monster_test.grpc.swift index ad8b35eed..cf7332ebf 100644 --- a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test.grpc.swift +++ b/tests/swift/Tests/Flatbuffers/monster_test.grpc.swift @@ -5,6 +5,7 @@ // swiftlint:disable all // swiftformat:disable all +#if !os(Windows) import Foundation import GRPC import NIO @@ -205,3 +206,5 @@ public protocol MyGame_Example_MonsterStorageServerInterceptorFactoryProtocol { func makeGetMinMaxHitPointsInterceptors() -> [ServerInterceptor, Message>] } +#endif + diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift b/tests/swift/Tests/Flatbuffers/monster_test_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/monster_test_generated.swift rename to tests/swift/Tests/Flatbuffers/monster_test_generated.swift diff --git a/tests/swift/tests/monsterdata_test.mon b/tests/swift/Tests/Flatbuffers/monsterdata_test.mon similarity index 100% rename from tests/swift/tests/monsterdata_test.mon rename to tests/swift/Tests/Flatbuffers/monsterdata_test.mon diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift b/tests/swift/Tests/Flatbuffers/more_defaults_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/more_defaults_generated.swift rename to tests/swift/Tests/Flatbuffers/more_defaults_generated.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift b/tests/swift/Tests/Flatbuffers/nan_inf_test_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/nan_inf_test_generated.swift rename to tests/swift/Tests/Flatbuffers/nan_inf_test_generated.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift b/tests/swift/Tests/Flatbuffers/optional_scalars_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/optional_scalars_generated.swift rename to tests/swift/Tests/Flatbuffers/optional_scalars_generated.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift b/tests/swift/Tests/Flatbuffers/union_vector_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/union_vector_generated.swift rename to tests/swift/Tests/Flatbuffers/union_vector_generated.swift diff --git a/tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift b/tests/swift/Tests/Flatbuffers/vector_has_test_generated.swift similarity index 100% rename from tests/swift/tests/Tests/FlatBuffers.Test.SwiftTests/vector_has_test_generated.swift rename to tests/swift/Tests/Flatbuffers/vector_has_test_generated.swift diff --git a/tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersJSONTests.swift b/tests/swift/Tests/Flexbuffers/FlexBuffersJSONTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersJSONTests.swift rename to tests/swift/Tests/Flexbuffers/FlexBuffersJSONTests.swift diff --git a/tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersReaderTests.swift b/tests/swift/Tests/Flexbuffers/FlexBuffersReaderTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersReaderTests.swift rename to tests/swift/Tests/Flexbuffers/FlexBuffersReaderTests.swift diff --git a/tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersStringTests.swift b/tests/swift/Tests/Flexbuffers/FlexBuffersStringTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersStringTests.swift rename to tests/swift/Tests/Flexbuffers/FlexBuffersStringTests.swift diff --git a/tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersWriterTests.swift b/tests/swift/Tests/Flexbuffers/FlexBuffersWriterTests.swift similarity index 100% rename from tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/FlexBuffersWriterTests.swift rename to tests/swift/Tests/Flexbuffers/FlexBuffersWriterTests.swift diff --git a/tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/Mocks.swift b/tests/swift/Tests/Flexbuffers/Mocks.swift similarity index 100% rename from tests/swift/tests/Tests/FlexBuffers.Test.SwiftTests/Mocks.swift rename to tests/swift/Tests/Flexbuffers/Mocks.swift diff --git a/tests/swift/tests/CodeGenerationTests/test_import.fbs b/tests/swift/fuzzer/CodeGenerationTests/test_import.fbs similarity index 100% rename from tests/swift/tests/CodeGenerationTests/test_import.fbs rename to tests/swift/fuzzer/CodeGenerationTests/test_import.fbs diff --git a/tests/swift/tests/CodeGenerationTests/test_import_generated.swift b/tests/swift/fuzzer/CodeGenerationTests/test_import_generated.swift similarity index 100% rename from tests/swift/tests/CodeGenerationTests/test_import_generated.swift rename to tests/swift/fuzzer/CodeGenerationTests/test_import_generated.swift diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include.fbs b/tests/swift/fuzzer/CodeGenerationTests/test_no_include.fbs similarity index 100% rename from tests/swift/tests/CodeGenerationTests/test_no_include.fbs rename to tests/swift/fuzzer/CodeGenerationTests/test_no_include.fbs diff --git a/tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift b/tests/swift/fuzzer/CodeGenerationTests/test_no_include_generated.swift similarity index 100% rename from tests/swift/tests/CodeGenerationTests/test_no_include_generated.swift rename to tests/swift/fuzzer/CodeGenerationTests/test_no_include_generated.swift diff --git a/tests/swift/tests/Package.swift b/tests/swift/fuzzer/Package.swift similarity index 50% rename from tests/swift/tests/Package.swift rename to tests/swift/fuzzer/Package.swift index 5545ec2cc..1d34d0254 100644 --- a/tests/swift/tests/Package.swift +++ b/tests/swift/fuzzer/Package.swift @@ -18,36 +18,18 @@ import PackageDescription let package = Package( - name: "FlatBuffers.Test.Swift", + name: "fuzzer", platforms: [ .iOS(.v12), .macOS(.v10_14), ], dependencies: [ .package(path: "../../.."), - .package(url: "https://github.com/grpc/grpc-swift.git", from: "1.4.1"), - // Prevent the build system from pulling 2.29.1 to prevent Swift 5.8 build breaks. - // The patch update introduced code that uses "switch expression syntax" that wasn't valid until Swift 5.9 [1]. - // [1] https://github.com/swiftlang/swift-evolution/blob/main/proposals/0380-if-switch-expressions.md - .package( - url: "https://github.com/apple/swift-nio-ssl.git", - exact: "2.29.0"), ], targets: [ .executableTarget( - name: "SwiftFlatBuffers", + name: "fuzzer", dependencies: [ .product(name: "FlatBuffers", package: "flatbuffers"), ]), - .testTarget( - name: "FlatBuffers.Test.SwiftTests", - dependencies: [ - .product(name: "FlatBuffers", package: "flatbuffers"), - .product(name: "GRPC", package: "grpc-swift"), - ]), - .testTarget( - name: "FlexBuffers.Test.SwiftTests", - dependencies: [ - .product(name: "FlexBuffers", package: "flatbuffers"), - ]), ]) diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer.fbs b/tests/swift/fuzzer/Sources/fuzzer/fuzzer.fbs similarity index 100% rename from tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer.fbs rename to tests/swift/fuzzer/Sources/fuzzer/fuzzer.fbs diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift b/tests/swift/fuzzer/Sources/fuzzer/fuzzer_generated.swift similarity index 100% rename from tests/swift/tests/Sources/SwiftFlatBuffers/fuzzer_generated.swift rename to tests/swift/fuzzer/Sources/fuzzer/fuzzer_generated.swift diff --git a/tests/swift/tests/Sources/SwiftFlatBuffers/main.swift b/tests/swift/fuzzer/Sources/fuzzer/main.swift similarity index 100% rename from tests/swift/tests/Sources/SwiftFlatBuffers/main.swift rename to tests/swift/fuzzer/Sources/fuzzer/main.swift diff --git a/tests/swift/tests/SwiftTest.sh b/tests/swift/tests/SwiftTest.sh deleted file mode 100755 index 37563d475..000000000 --- a/tests/swift/tests/SwiftTest.sh +++ /dev/null @@ -1,39 +0,0 @@ -current_dir=`pwd` -cd .. -swift_dir=`pwd` -cd .. -test_dir=`pwd` -alias fbc='${test_dir}/../flatc' -shopt -s expand_aliases - -cd ${current_dir}/Tests/FlatBuffers.Test.SwiftTests -fbc --swift --gen-mutable --grpc --gen-json-emit --gen-object-api -I ${test_dir}/include_test ${test_dir}/monster_test.fbs ${test_dir}/union_vector/union_vector.fbs -fbc --swift --gen-json-emit ${test_dir}/optional_scalars.fbs -fbc --swift --gen-json-emit --gen-object-api ${test_dir}/more_defaults.fbs -fbc --swift --gen-json-emit --gen-mutable --gen-object-api ${test_dir}/MutatingBool.fbs -fbc --swift --gen-json-emit ${test_dir}/vector_has_test.fbs -cd ${current_dir} - -# Goes into the code generation tests -cd CodeGenerationTests -fbc --swift --gen-mutable --grpc --gen-json-emit --gen-object-api --swift-implementation-only test_import.fbs -fbc --swift --gen-mutable --grpc --gen-json-emit --gen-object-api --no-includes test_no_include.fbs -cd .. - -cd ${current_dir}/Sources/SwiftFlatBuffers -# create better fuzzing test file -fbc --swift --gen-json-emit fuzzer.fbs -cd ${current_dir} - -cd ${swift_dir}/Wasm.tests/Tests/FlatBuffers.Test.Swift.WasmTests -fbc --swift --gen-mutable --gen-json-emit --gen-object-api -I ${test_dir}/include_test ${test_dir}/monster_test.fbs -cd ${current_dir} - -swift build --build-tests -swift test - -if [ $(uname -s) != Darwin ]; then - echo fuzzing - swift build -c debug -Xswiftc -sanitize=fuzzer,address -Xswiftc -parse-as-library - swift build -c release -Xswiftc -sanitize=fuzzer,address -Xswiftc -parse-as-library -fi