diff --git a/Tests/SotoTests/AWSRequestTests.swift b/Tests/SotoTests/AWSRequestTests.swift index d5a71f67c3..714537242c 100644 --- a/Tests/SotoTests/AWSRequestTests.swift +++ b/Tests/SotoTests/AWSRequestTests.swift @@ -40,7 +40,7 @@ extension AWSHTTPBody { /// Tests to check the formatting of various AWSHTTPRequest bodies class AWSHTTPRequestTests: XCTestCase { - static let client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + static let client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) /// test AWSHTTPRequest body is expected string func testRequestedBody(expected: String, result: AWSHTTPRequest) throws { diff --git a/Tests/SotoTests/Services/APIGateway/APIGatewayTests.swift b/Tests/SotoTests/Services/APIGateway/APIGatewayTests.swift index 7852db2e93..4489103b3a 100644 --- a/Tests/SotoTests/Services/APIGateway/APIGatewayTests.swift +++ b/Tests/SotoTests/Services/APIGateway/APIGatewayTests.swift @@ -33,7 +33,6 @@ class APIGatewayTests: XCTestCase { Self.client = AWSClient( credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, - httpClientProvider: .createNew, logger: TestEnvironment.logger ) Self.apiGateway = APIGateway( diff --git a/Tests/SotoTests/Services/ApiGatewayV2/APIGatewayV2Tests.swift b/Tests/SotoTests/Services/ApiGatewayV2/APIGatewayV2Tests.swift index f14760c902..34beb2c893 100644 --- a/Tests/SotoTests/Services/ApiGatewayV2/APIGatewayV2Tests.swift +++ b/Tests/SotoTests/Services/ApiGatewayV2/APIGatewayV2Tests.swift @@ -31,7 +31,6 @@ class APIGatewayV2Tests: XCTestCase { Self.client = AWSClient( credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, - httpClientProvider: .createNew, logger: TestEnvironment.logger ) Self.apiGatewayV2 = ApiGatewayV2( diff --git a/Tests/SotoTests/Services/CloudTrail/CloudTrailTests.swift b/Tests/SotoTests/Services/CloudTrail/CloudTrailTests.swift index c240292ab3..0e6f7e3fb9 100644 --- a/Tests/SotoTests/Services/CloudTrail/CloudTrailTests.swift +++ b/Tests/SotoTests/Services/CloudTrail/CloudTrailTests.swift @@ -20,7 +20,7 @@ class CloudTrailTests: XCTestCase { static var cloudTrail: CloudTrail! override class func setUp() { - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.cloudTrail = CloudTrail( client: CloudTrailTests.client, region: .euwest1, diff --git a/Tests/SotoTests/Services/DynamoDB/DynamoDBTests.swift b/Tests/SotoTests/Services/DynamoDB/DynamoDBTests.swift index f7ce6360df..049afd9794 100644 --- a/Tests/SotoTests/Services/DynamoDB/DynamoDBTests.swift +++ b/Tests/SotoTests/Services/DynamoDB/DynamoDBTests.swift @@ -31,7 +31,7 @@ class DynamoDBTests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.dynamoDB = DynamoDB( client: DynamoDBTests.client, region: .useast1, diff --git a/Tests/SotoTests/Services/EC2/EC2Tests.swift b/Tests/SotoTests/Services/EC2/EC2Tests.swift index 64e08b9229..715486c066 100644 --- a/Tests/SotoTests/Services/EC2/EC2Tests.swift +++ b/Tests/SotoTests/Services/EC2/EC2Tests.swift @@ -30,7 +30,7 @@ class EC2Tests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.ec2 = EC2( client: EC2Tests.client, region: .useast1, diff --git a/Tests/SotoTests/Services/Glacier/GlacierTests.swift b/Tests/SotoTests/Services/Glacier/GlacierTests.swift index 750ebc2410..702c9b904c 100644 --- a/Tests/SotoTests/Services/Glacier/GlacierTests.swift +++ b/Tests/SotoTests/Services/Glacier/GlacierTests.swift @@ -22,7 +22,7 @@ class GlacierTests: XCTestCase { static var glacier: Glacier! override class func setUp() { - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.glacier = Glacier( client: GlacierTests.client, region: .euwest1, diff --git a/Tests/SotoTests/Services/IAM/IAMTests.swift b/Tests/SotoTests/Services/IAM/IAMTests.swift index a4029a1160..313c9ae601 100644 --- a/Tests/SotoTests/Services/IAM/IAMTests.swift +++ b/Tests/SotoTests/Services/IAM/IAMTests.swift @@ -29,7 +29,7 @@ class IAMTests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.iam = IAM( client: IAMTests.client, endpoint: TestEnvironment.getEndPoint(environment: "LOCALSTACK_ENDPOINT") diff --git a/Tests/SotoTests/Services/Lambda/LambdaTests.swift b/Tests/SotoTests/Services/Lambda/LambdaTests.swift index f12d82e32e..550befeff9 100644 --- a/Tests/SotoTests/Services/Lambda/LambdaTests.swift +++ b/Tests/SotoTests/Services/Lambda/LambdaTests.swift @@ -105,8 +105,7 @@ class LambdaTests: XCTestCase { Self.client = AWSClient( credentialProvider: TestEnvironment.credentialProvider, - middleware: TestEnvironment.middlewares, - httpClientProvider: .createNew + middleware: TestEnvironment.middlewares ) Self.lambda = Lambda( client: LambdaTests.client, diff --git a/Tests/SotoTests/Services/S3/S3ExtensionTests.swift b/Tests/SotoTests/Services/S3/S3ExtensionTests.swift index 07520e3a3c..2ad22faa46 100644 --- a/Tests/SotoTests/Services/S3/S3ExtensionTests.swift +++ b/Tests/SotoTests/Services/S3/S3ExtensionTests.swift @@ -392,8 +392,7 @@ extension S3Tests { credentialProvider: .static( accessKeyId: "AKIAIOSFODNN7EXAMPLE", secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" - ), - httpClientProvider: .createNew + ) ) let s3 = S3(client: client, region: .useast1) @@ -455,8 +454,7 @@ extension S3Tests { credentialProvider: .static( accessKeyId: "AKIAIOSFODNN7EXAMPLE", secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" - ), - httpClientProvider: .createNew + ) ) let s3 = S3(client: client, region: .useast1) @@ -485,8 +483,7 @@ extension S3Tests { credentialProvider: .static( accessKeyId: "AKIAIOSFODNN7EXAMPLE", secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" - ), - httpClientProvider: .createNew + ) ) let s3 = S3(client: client, region: .useast1) diff --git a/Tests/SotoTests/Services/S3/S3Tests.swift b/Tests/SotoTests/Services/S3/S3Tests.swift index 235ecda2a6..408bd49667 100644 --- a/Tests/SotoTests/Services/S3/S3Tests.swift +++ b/Tests/SotoTests/Services/S3/S3Tests.swift @@ -23,7 +23,6 @@ import XCTest @testable import SotoS3Control class S3Tests: XCTestCase { - static var eventLoopGroup: EventLoopGroup! static var client: AWSClient! static var s3: S3! static var randomBytes: ByteBuffer! @@ -35,11 +34,9 @@ class S3Tests: XCTestCase { print("Connecting to AWS") } - Self.eventLoopGroup = MultiThreadedEventLoopGroup(numberOfThreads: System.coreCount) Self.client = AWSClient( credentialProvider: TestEnvironment.credentialProvider, - middleware: TestEnvironment.middlewares, - httpClientProvider: .createNewWithEventLoopGroup(Self.eventLoopGroup) + middleware: TestEnvironment.middlewares ) Self.s3 = S3( client: Self.client, @@ -51,7 +48,6 @@ class S3Tests: XCTestCase { override class func tearDown() { XCTAssertNoThrow(try Self.client.syncShutdown()) - XCTAssertNoThrow(try Self.eventLoopGroup.syncShutdownGracefully()) } static func createRandomBuffer(size: Int) -> ByteBuffer { @@ -407,8 +403,6 @@ class S3Tests: XCTestCase { try XCTSkipIf(TestEnvironment.isUsingLocalstack) let name = TestEnvironment.generateResourceName() - let httpClient = HTTPClient(eventLoopGroupProvider: .singleton) - defer { XCTAssertNoThrow(try httpClient.syncShutdown()) } let s3Url = URL(string: "https://\(name).s3.us-east-1.amazonaws.com/\(name)!=%25+/(*)_.txt")! try await testBucket(name) { _ in @@ -417,14 +411,14 @@ class S3Tests: XCTestCase { var request = HTTPClientRequest(url: putURL.absoluteString) request.method = .PUT request.body = .bytes(byteBuffer) - let response = try await httpClient.execute(request, timeout: .minutes(1)) + let response = try await HTTPClient.shared.execute(request, timeout: .minutes(1)) XCTAssertEqual(response.status, .ok) let listResponse = try await Self.s3.listObjectsV2(.init(bucket: name)) XCTAssertEqual(listResponse.contents?.first?.key, "\(name)!=%+/(*)_.txt") let getURL = try await Self.s3.signURL(url: s3Url, httpMethod: .GET, expires: .minutes(5)) - let getResponse = try await httpClient.execute(.init(url: getURL.absoluteString), timeout: .minutes(1)) + let getResponse = try await HTTPClient.shared.execute(.init(url: getURL.absoluteString), timeout: .minutes(1)) let getBuffer = try await getResponse.body.collect(upTo: .max) XCTAssertEqual(response.status, .ok) diff --git a/Tests/SotoTests/Services/SES/SESTests.swift b/Tests/SotoTests/Services/SES/SESTests.swift index 292ae17aa9..70a720799c 100644 --- a/Tests/SotoTests/Services/SES/SESTests.swift +++ b/Tests/SotoTests/Services/SES/SESTests.swift @@ -28,7 +28,7 @@ class SESTests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.ses = SES( client: Self.client, region: .useast1, diff --git a/Tests/SotoTests/Services/SNS/SNSTests.swift b/Tests/SotoTests/Services/SNS/SNSTests.swift index 76da875b44..933431bb0b 100644 --- a/Tests/SotoTests/Services/SNS/SNSTests.swift +++ b/Tests/SotoTests/Services/SNS/SNSTests.swift @@ -28,7 +28,7 @@ class SNSTests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.sns = SNS( client: SNSTests.client, region: .useast1, diff --git a/Tests/SotoTests/Services/SQS/SQSTests.swift b/Tests/SotoTests/Services/SQS/SQSTests.swift index 97091bd6ce..a3d34ef6a6 100644 --- a/Tests/SotoTests/Services/SQS/SQSTests.swift +++ b/Tests/SotoTests/Services/SQS/SQSTests.swift @@ -28,7 +28,7 @@ class SQSTests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.sqs = SQS( client: SQSTests.client, region: .useast1, diff --git a/Tests/SotoTests/Services/SSM/SSMTests.swift b/Tests/SotoTests/Services/SSM/SSMTests.swift index bffcff5baa..982f6f4bb9 100644 --- a/Tests/SotoTests/Services/SSM/SSMTests.swift +++ b/Tests/SotoTests/Services/SSM/SSMTests.swift @@ -28,7 +28,7 @@ class SSMTests: XCTestCase { print("Connecting to AWS") } - Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, httpClientProvider: .createNew) + Self.client = AWSClient(credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares) Self.ssm = SSM( client: SSMTests.client, region: .useast1, diff --git a/Tests/SotoTests/Services/STS/STSTests.swift b/Tests/SotoTests/Services/STS/STSTests.swift index 5f4bf44ed1..287fcf9a4b 100644 --- a/Tests/SotoTests/Services/STS/STSTests.swift +++ b/Tests/SotoTests/Services/STS/STSTests.swift @@ -34,7 +34,6 @@ class STSTests: XCTestCase { Self.client = AWSClient( credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, - httpClientProvider: .createNew, logger: Logger(label: "Soto") ) Self.sts = STS( @@ -55,7 +54,7 @@ class STSTests: XCTestCase { func testSTSCredentialProviderShutdown() async throws { let request = STS.AssumeRoleRequest(roleArn: "arn:aws:iam::000000000000:role/Admin", roleSessionName: "test-session") let credentialProvider = CredentialProviderFactory.stsAssumeRole(request: request, region: .euwest2) - let client = AWSClient(credentialProvider: credentialProvider, httpClientProvider: .createNew, logger: TestEnvironment.logger) + let client = AWSClient(credentialProvider: credentialProvider, logger: TestEnvironment.logger) try await client.shutdown() } @@ -69,7 +68,7 @@ class STSTests: XCTestCase { } return request } - let client = AWSClient(credentialProvider: credentialProvider, httpClientProvider: .createNew, logger: TestEnvironment.logger) + let client = AWSClient(credentialProvider: credentialProvider, logger: TestEnvironment.logger) _ = try? await client.credentialProvider.getCredential(logger: TestEnvironment.logger) try await client.shutdown() returnedRequest.withLockedValue { value in @@ -104,7 +103,6 @@ class STSTests: XCTestCase { credentialProvider: TestEnvironment.credentialProvider, region: .useast1 ), - httpClientProvider: .createNew, logger: Logger(label: "Soto") ) do { diff --git a/Tests/SotoTests/Services/TimestreamWrite/TimestreamWriteTests.swift b/Tests/SotoTests/Services/TimestreamWrite/TimestreamWriteTests.swift index 62c42e8acf..3f76423091 100644 --- a/Tests/SotoTests/Services/TimestreamWrite/TimestreamWriteTests.swift +++ b/Tests/SotoTests/Services/TimestreamWrite/TimestreamWriteTests.swift @@ -32,7 +32,6 @@ class TimestreamWriteTests: XCTestCase { self.client = AWSClient( credentialProvider: TestEnvironment.credentialProvider, middleware: TestEnvironment.middlewares, - httpClientProvider: .createNew, logger: Logger(label: "Soto") ) self.ts = TimestreamWrite(