From 7a8415466318f06aa1affe5d05e434ba755e59e1 Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 24 Jan 2025 16:45:04 +0100 Subject: [PATCH 1/5] iOS test fixes --- .github/workflows/ci.yml | 9 ++++----- scripts/Util.py | 7 ++++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74cfc9025f4..c344b1c34a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,12 +59,11 @@ jobs: test_flags: "--platform=x64 --config=Debug" msbuild_project: "msbuild/ice.proj" - # Swift iOS + # iOS - os: macos-15 - config: "swift-ios" - working_directory: "swift" - build_flags: "PLATFORMS='macosx iphonesimulator'" - test_flags: "--platform=iphonesimulator --controller-app --rfilter=Ice/operations" # Remove rfilter once #3286 is fixed + config: "ios" + build_flags: "PLATFORMS='macosx iphonesimulator' LANGUAGES='cpp swift' CONFIGS='static'" + test_flags: "--platform=iphonesimulator --controller-app --rfilter=swift/Ice/operations" # Remove rfilter once #3286 is fixed build_cpp_and_python: true # Static builds diff --git a/scripts/Util.py b/scripts/Util.py index fa03196a7c3..69af3e80f3f 100644 --- a/scripts/Util.py +++ b/scripts/Util.py @@ -3696,13 +3696,14 @@ def getIOSControllerIdentity(self, current): return "{0}/com.zeroc.Cpp-Test-Controller".format(category) def getIOSAppFullPath(self, current): - cmd = "xcodebuild -project 'test/ios/controller/C++ Test Controller.xcodeproj' \ + cmd = "xcodebuild -project '{0}/cpp/test/ios/controller/C++ Test Controller.xcodeproj' \ -scheme 'C++ Test Controller' \ - -configuration {0} \ - -sdk {1} \ + -configuration {1} \ + -sdk {2} \ -arch arm64 \ -showBuildSettings \ ".format( + toplevel, "Release" if os.environ.get("OPTIMIZE", "yes") != "no" else "Debug", current.config.buildPlatform, ) From 446ce10dcf4f9f7784860522911a5f36689f699b Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 24 Jan 2025 18:24:14 +0100 Subject: [PATCH 2/5] Swift test fixes --- .github/workflows/ci.yml | 4 ++-- swift/test/Ice/udp/Client.swift | 2 +- swift/test/Ice/udp/Server.swift | 2 +- swift/test/TestDriver/main.swift | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c344b1c34a8..372fe0aef26 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,8 +62,8 @@ jobs: # iOS - os: macos-15 config: "ios" - build_flags: "PLATFORMS='macosx iphonesimulator' LANGUAGES='cpp swift' CONFIGS='static'" - test_flags: "--platform=iphonesimulator --controller-app --rfilter=swift/Ice/operations" # Remove rfilter once #3286 is fixed + build_flags: "PLATFORMS='macosx iphonesimulator' CONFIGS='static shared' LANGUAGES='cpp swift'" + test_flags: "--languages='cpp,swift' --platform=iphonesimulator --controller-app --rfilter=swift/Ice/operations" # Remove rfilter once #3286 is fixed build_cpp_and_python: true # Static builds diff --git a/swift/test/Ice/udp/Client.swift b/swift/test/Ice/udp/Client.swift index 335ce2dea9e..c347778cc39 100644 --- a/swift/test/Ice/udp/Client.swift +++ b/swift/test/Ice/udp/Client.swift @@ -17,7 +17,7 @@ class Client: TestHelperI { } try await allTests(self) - let num = restArgs.count == 4 ? Int(restArgs[3]) : 1 + let num = restArgs.count == 1 ? Int(restArgs[0]) : 1 for i in 0..<(num ?? 1) { let prx = try communicator.stringToProxy( "control:\(getTestEndpoint(num: Int32(i), prot: "tcp"))")! diff --git a/swift/test/Ice/udp/Server.swift b/swift/test/Ice/udp/Server.swift index 0ec93eae55c..191abf569f4 100644 --- a/swift/test/Ice/udp/Server.swift +++ b/swift/test/Ice/udp/Server.swift @@ -14,7 +14,7 @@ class Server: TestHelperI { defer { communicator.destroy() } - let num = restArgs.count == 4 ? Int32(restArgs[3]) : 1 + let num = restArgs.count == 1 ? Int32(restArgs[0]) : 0 communicator.getProperties().setProperty( key: "ControlAdapter.Endpoints", value: getTestEndpoint(num: num ?? 0, prot: "tcp")) diff --git a/swift/test/TestDriver/main.swift b/swift/test/TestDriver/main.swift index 7fd76483270..483dd23d76d 100644 --- a/swift/test/TestDriver/main.swift +++ b/swift/test/TestDriver/main.swift @@ -19,7 +19,7 @@ do { let testName = "\(testPath).\(exe)" let testHelper = TestBundle.getTestHelper(name: testName) - try await testHelper.run(args: args) + try await testHelper.run(args: Array(args[3...])) } catch { for s in Thread.callStackSymbols { From 9a3303a0cf5be080c7684ec39c22988051357e63 Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 24 Jan 2025 22:14:04 +0100 Subject: [PATCH 3/5] Install ice-builder-xcode --- .github/actions/setup-dependencies/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/setup-dependencies/action.yml b/.github/actions/setup-dependencies/action.yml index 8ce8ee8421f..249be60f645 100644 --- a/.github/actions/setup-dependencies/action.yml +++ b/.github/actions/setup-dependencies/action.yml @@ -64,12 +64,12 @@ runs: shell: bash if: runner.os == 'macOS' - - name: Install xcodesdk dependencies + - name: Install ios dependencies run: | - # We should consider removing the dependency on ice-xcode-builder + # We should consider removing the dependency on ice-builder-xcode brew install zeroc-ice/tap/ice-builder-xcode shell: bash - if: (runner.os == 'macOS') && (matrix.config == 'xcodesdk') + if: (runner.os == 'macOS') && (matrix.config == 'ios') # # Linux From 86e9d04216cca98ec522a977eaa3ee0db4d9fc2c Mon Sep 17 00:00:00 2001 From: Jose Date: Sat, 25 Jan 2025 18:20:33 +0100 Subject: [PATCH 4/5] Increase test timeout --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 372fe0aef26..7880e73b130 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -125,7 +125,7 @@ jobs: - name: Test ${{ matrix.config }} on ${{ matrix.os }} uses: ./.github/actions/test - timeout-minutes: 30 + timeout-minutes: 45 with: working_directory: ${{ matrix.working_directory || '.' }} flags: ${{ matrix.test_flags }} From e6cd6ba2cd04d51d1ba5d194806afd8ff446567b Mon Sep 17 00:00:00 2001 From: Jose Date: Sat, 25 Jan 2025 19:36:35 +0100 Subject: [PATCH 5/5] Filter swift/Ice/udp on CI --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7880e73b130..19b8e819380 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,9 @@ jobs: - os: macos-15 config: "ios" build_flags: "PLATFORMS='macosx iphonesimulator' CONFIGS='static shared' LANGUAGES='cpp swift'" - test_flags: "--languages='cpp,swift' --platform=iphonesimulator --controller-app --rfilter=swift/Ice/operations" # Remove rfilter once #3286 is fixed + # Remove rfilter swift/Ice/operations once #3286 is fixed + # swift/Ice/udp doesn't work on CI + test_flags: "--languages='cpp,swift' --platform=iphonesimulator --controller-app --rfilter=swift/Ice/operations --rfilter=swift/Ice/udp" build_cpp_and_python: true # Static builds