diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index ec7ce42a0df..bbef5598318 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -29,12 +29,6 @@ jobs: - Xcode_15.2 - Xcode_16.1 destination: - - 'platform=iOS Simulator,OS=17.2,name=iPhone 15' - - 'platform=iOS Simulator,OS=18.1,name=iPhone 16' - - 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' - - 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' - - 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' - - 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' - 'platform=macOS' exclude: # Don't run old macOS with new Xcode @@ -43,20 +37,8 @@ jobs: # Don't run new macOS with old Xcode - runner: macos-15 xcode: Xcode_15.2 - # Don't run old simulators with new Xcode - - destination: 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' - xcode: Xcode_16.1 - - destination: 'platform=iOS Simulator,OS=17.2,name=iPhone 15' - xcode: Xcode_16.1 - - destination: 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' - xcode: Xcode_16.1 - # Don't run new simulators with old Xcode - - destination: 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' - xcode: Xcode_15.2 - - destination: 'platform=iOS Simulator,OS=18.1,name=iPhone 16' - xcode: Xcode_15.2 - - destination: 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' - xcode: Xcode_15.2 + iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + steps: - name: Configure Xcode run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app @@ -134,7 +116,6 @@ jobs: -destination '${{ matrix.destination }}' \ test 2>&1 \ | xcbeautify - linux: # Details on why AL2 isn't included: https://github.com/awslabs/aws-sdk-swift/pull/1833 if: github.repository == 'awslabs/aws-sdk-swift' || github.event_name == 'pull_request' @@ -148,6 +129,7 @@ jobs: version: - "5.9" - "6.0" + iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: diff --git a/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift b/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift index b294cd8e11e..cc13dfbfbc5 100644 --- a/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift +++ b/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift @@ -101,7 +101,10 @@ final class TranscribeStreamingTests: XCTestCase { "Hello transcribed streaming from swift sdk.", "Hello transcribes streaming from Swift SDK.", ] - XCTAssertTrue(candidates.contains(where: { $0.lowercased() == fullMessage.lowercased() })) + XCTAssertTrue( + candidates.contains { $0.lowercased() == fullMessage.lowercased() }, + "The transcription \"\(fullMessage)\" does not match any of the expected forms: [\(candidates.map { "\"\($0)\"" }.joined(separator: ", "))]" + ) } // Performs the stream transcription, with retry for selected errors associated with diff --git a/README.md b/README.md index 785cab54b6c..3aa226a3c83 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ [apache-badge]: https://img.shields.io/badge/License-Apache%202.0-blue.svg [apache-url]: LICENSE +added trace logging + ## Getting Started - [SDK Product Page](https://aws.amazon.com/sdk-for-swift/) diff --git a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift index 6233b76e683..7635c81e67b 100644 --- a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift +++ b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift @@ -9,6 +9,7 @@ import struct Foundation.TimeInterval import enum AwsCommonRuntimeKit.CommonRunTimeError import protocol SmithyRetriesAPI.RetryErrorInfoProvider import enum ClientRuntime.DefaultRetryErrorInfoProvider +import struct Smithy.SwiftLogger import struct SmithyRetriesAPI.RetryErrorInfo import protocol ClientRuntime.ServiceError import protocol ClientRuntime.HTTPError @@ -55,6 +56,8 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { private static let timeoutStatusCodes = [408, 504] public static func errorInfo(for error: Error) -> RetryErrorInfo? { + let logger = SwiftLogger(label: "RetryLogger") + logger.info("(RETRYING) got errorInfo for \(error)") // Determine based on properties if this error is a timeout error. var isTimeout = false @@ -68,6 +71,7 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { // Handle certain CRT errors as transient errors if case CommonRunTimeError.crtError(let crtError) = error { if transientCRTErrorCodes.contains(crtError.code) { + logger.info("RETRYING CRT ERROR CODE: \(crtError.code)") return RetryErrorInfo(errorType: .transient, retryAfterHint: nil, isTimeout: isTimeout) } }