Skip to content

Commit d7aa47d

Browse files
Add test cases for amazonlinux2 and fedora39 for RHEL tests
1 parent 2245558 commit d7aa47d

File tree

1 file changed

+69
-12
lines changed

1 file changed

+69
-12
lines changed

Tests/SwiftSDKGeneratorTests/EndToEndTests.swift

Lines changed: 69 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func buildSDK(_ logger: Logger, scratchPath: String, withArguments runArguments:
5656
logger[metadataKey: "runArguments"] = "\"\(runArguments)\""
5757
logger[metadataKey: "scratchPath"] = "\(scratchPath)"
5858

59-
logger.info("Building SDK")
59+
logger.info("Building Swift SDK")
6060

6161
var packageDirectory = FilePath(#filePath)
6262
packageDirectory.removeLastComponent()
@@ -65,7 +65,7 @@ func buildSDK(_ logger: Logger, scratchPath: String, withArguments runArguments:
6565
let generatorOutput = try await Shell.readStdout(
6666
"cd \(packageDirectory) && swift run --scratch-path \"\(scratchPath)\" swift-sdk-generator make-linux-sdk \(runArguments)"
6767
)
68-
logger.info("Finished building SDK")
68+
logger.info("Finished building Swift SDK")
6969

7070
let installCommand = try XCTUnwrap(generatorOutput.split(separator: "\n").first {
7171
$0.contains("swift experimental-sdk install")
@@ -76,16 +76,16 @@ func buildSDK(_ logger: Logger, scratchPath: String, withArguments runArguments:
7676
).stem
7777
logger[metadataKey: "bundleName"] = "\(bundleName)"
7878

79-
logger.info("Checking installed SDKs")
79+
logger.info("Checking installed Swift SDKs")
8080
let installedSDKs = try await Shell.readStdout("swift experimental-sdk list").components(separatedBy: "\n")
8181

8282
// Make sure this bundle hasn't been installed already.
8383
if installedSDKs.contains(bundleName) {
84-
logger.info("Removing existing SDK")
84+
logger.info("Removing existing Swift SDK")
8585
try await Shell.run("swift experimental-sdk remove \(bundleName)")
8686
}
8787

88-
logger.info("Installing new SDK")
88+
logger.info("Installing new Swift SDK")
8989
let installOutput = try await Shell.readStdout(String(installCommand))
9090
XCTAssertTrue(installOutput.contains("successfully installed"))
9191

@@ -152,15 +152,25 @@ struct SDKConfiguration {
152152
var linuxDistributionVersion: String
153153
var architecture: String
154154
var withDocker: Bool
155+
var containerImageSuffix: String?
155156

156-
var bundleName: String { "\(linuxDistributionName)_\(linuxDistributionVersion)_\(architecture)_\(swiftVersion)-RELEASE\(withDocker ? "_with-docker" : "")" }
157+
var bundleName: String {
158+
let sdkPrefix = containerImageSuffix ?? "\(linuxDistributionName)_\(linuxDistributionVersion)"
159+
return "\(sdkPrefix)_\(architecture)_\(swiftVersion)-RELEASE\(withDocker ? "_with-docker" : "")"
160+
}
157161

158162
func withDocker(_ enabled: Bool = true) -> SDKConfiguration {
159163
var res = self
160164
res.withDocker = enabled
161165
return res
162166
}
163167

168+
func withContainerImageSuffix(_ containerImageSuffix: String) -> SDKConfiguration {
169+
var res = self
170+
res.containerImageSuffix = containerImageSuffix
171+
return res
172+
}
173+
164174
func withArchitecture(_ arch: String) -> SDKConfiguration {
165175
var res = self
166176
res.architecture = arch
@@ -173,10 +183,17 @@ struct SDKConfiguration {
173183
}
174184

175185
var sdkGeneratorArguments: String {
186+
// Build the container image tag
187+
var containerImage: String? = nil
188+
if let containerImageSuffix {
189+
containerImage = "swift:\(swiftVersion)-\(containerImageSuffix)"
190+
}
191+
176192
return [
177193
"--sdk-name \(bundleName)",
178194
"--host-toolchain",
179195
withDocker ? "--with-docker" : nil,
196+
containerImage != nil ? "--from-container-image" : nil, containerImage,
180197
"--swift-version \(swiftVersion)-RELEASE",
181198
testLinuxSwiftSDKs ? "--host \(hostArch!)-unknown-linux-gnu" : nil,
182199
"--target \(architecture)-unknown-linux-gnu",
@@ -403,11 +420,19 @@ final class Swift59_RHELEndToEndTests: XCTestCase {
403420
)
404421

405422
func testAarch64FromContainer() async throws {
406-
try await buildTestcases(config: config.withArchitecture("aarch64").withDocker())
423+
try await buildTestcases(config: config.withArchitecture("aarch64"))
407424
}
408425

409426
func testX86_64FromContainer() async throws {
410-
try await buildTestcases(config: config.withArchitecture("x86_64").withDocker())
427+
try await buildTestcases(config: config.withArchitecture("x86_64"))
428+
}
429+
430+
func testAmazonLinux2Aarch64FromContainer() async throws {
431+
try await buildTestcases(config: config.withArchitecture("aarch64").withContainerImageSuffix("amazonlinux2"))
432+
}
433+
434+
func testAmazonLinux2X86_64FromContainer() async throws {
435+
try await buildTestcases(config: config.withArchitecture("x86_64").withContainerImageSuffix("amazonlinux2"))
411436
}
412437
}
413438

@@ -421,11 +446,27 @@ final class Swift510_RHELEndToEndTests: XCTestCase {
421446
)
422447

423448
func testAarch64FromContainer() async throws {
424-
try await buildTestcases(config: config.withArchitecture("aarch64").withDocker())
449+
try await buildTestcases(config: config.withArchitecture("aarch64"))
425450
}
426451

427452
func testX86_64FromContainer() async throws {
428-
try await buildTestcases(config: config.withArchitecture("x86_64").withDocker())
453+
try await buildTestcases(config: config.withArchitecture("x86_64"))
454+
}
455+
456+
func testAmazonLinux2Aarch64FromContainer() async throws {
457+
try await buildTestcases(config: config.withArchitecture("aarch64").withContainerImageSuffix("amazonlinux2"))
458+
}
459+
460+
func testAmazonLinux2X86_64FromContainer() async throws {
461+
try await buildTestcases(config: config.withArchitecture("x86_64").withContainerImageSuffix("amazonlinux2"))
462+
}
463+
464+
func testFedora39Aarch64FromContainer() async throws {
465+
try await buildTestcases(config: config.withArchitecture("aarch64").withContainerImageSuffix("fedora39"))
466+
}
467+
468+
func testFedora39X86_64FromContainer() async throws {
469+
try await buildTestcases(config: config.withArchitecture("x86_64").withContainerImageSuffix("fedora39"))
429470
}
430471
}
431472

@@ -439,10 +480,26 @@ final class Swift60_RHELEndToEndTests: XCTestCase {
439480
)
440481

441482
func testAarch64FromContainer() async throws {
442-
try await buildTestcases(config: config.withArchitecture("aarch64").withDocker())
483+
try await buildTestcases(config: config.withArchitecture("aarch64"))
443484
}
444485

445486
func testX86_64FromContainer() async throws {
446-
try await buildTestcases(config: config.withArchitecture("x86_64").withDocker())
487+
try await buildTestcases(config: config.withArchitecture("x86_64"))
488+
}
489+
490+
func testAmazonLinux2Aarch64FromContainer() async throws {
491+
try await buildTestcases(config: config.withArchitecture("aarch64").withContainerImageSuffix("amazonlinux2"))
492+
}
493+
494+
func testAmazonLinux2X86_64FromContainer() async throws {
495+
try await buildTestcases(config: config.withArchitecture("x86_64").withContainerImageSuffix("amazonlinux2"))
496+
}
497+
498+
func testFedora39Aarch64FromContainer() async throws {
499+
try await buildTestcases(config: config.withArchitecture("aarch64").withContainerImageSuffix("fedora39"))
500+
}
501+
502+
func testFedora39X86_64FromContainer() async throws {
503+
try await buildTestcases(config: config.withArchitecture("x86_64").withContainerImageSuffix("fedora39"))
447504
}
448505
}

0 commit comments

Comments
 (0)