Skip to content

Commit 3e52a3c

Browse files
authored
Fix failing network tests (apple#620)
This PR fixes failing network tests by using lowercased names. Additionally, it reduces code duplication.
1 parent c571546 commit 3e52a3c

8 files changed

Lines changed: 86 additions & 46 deletions

File tree

Tests/CLITests/Subcommands/Containers/TestCLICreate.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ import Foundation
1818
import Testing
1919

2020
class TestCLICreateCommand: CLITest {
21+
private func getTestName() -> String {
22+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
23+
}
24+
2125
@Test func testCreateArgsPassthrough() throws {
22-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
26+
let name = getTestName()
2327
#expect(throws: Never.self, "expected container create to succeed") {
2428
try doCreate(name: name, args: ["echo", "-n", "hello", "world"])
2529
try doRemove(name: name)

Tests/CLITests/Subcommands/Containers/TestCLIExec.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@ import Foundation
2020
import Testing
2121

2222
class TestCLIExecCommand: CLITest {
23+
private func getTestName() -> String {
24+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
25+
}
26+
2327
@Test func testCreateExecCommand() throws {
2428
do {
25-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
29+
let name = getTestName()
2630
try doCreate(name: name)
2731
defer {
2832
try? doStop(name: name)

Tests/CLITests/Subcommands/Containers/TestCLIRmRace.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,12 @@ class TestCLIRmRaceCondition: CLITest {
4040
try doRemove(name: name, force: force)
4141
}
4242

43+
private func getTestName() -> String {
44+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
45+
}
46+
4347
@Test func testStopRmRace() async throws {
44-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
48+
let name = getTestName()
4549

4650
do {
4751
// Create and start a container in detached mode that runs indefinitely

Tests/CLITests/Subcommands/Networks/TestCLINetwork.swift

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,18 @@ class TestCLINetwork: CLITest {
2828
private static let retries = 10
2929
private static let retryDelaySeconds = Int64(3)
3030

31+
private func getTestName() -> String {
32+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
33+
}
34+
35+
private func getLowercasedTestName() -> String {
36+
getTestName().lowercased()
37+
}
38+
3139
@available(macOS 26, *)
3240
@Test func testNetworkCreateAndUse() async throws {
3341
do {
34-
let name = Test.current!.name.trimmingCharacters(in: ["(", ")"])
42+
let name = getLowercasedTestName()
3543
let networkDeleteArgs = ["network", "delete", name]
3644
_ = try? run(arguments: networkDeleteArgs)
3745

@@ -86,7 +94,7 @@ class TestCLINetwork: CLITest {
8694
@Test func testNetworkDeleteWithContainer() async throws {
8795
do {
8896
// prep: delete container and network, ignoring if it doesn't exist
89-
let name = Test.current!.name.trimmingCharacters(in: ["(", ")"])
97+
let name = getLowercasedTestName()
9098
try? doRemove(name: name)
9199
let networkDeleteArgs = ["network", "delete", name]
92100
_ = try? run(arguments: networkDeleteArgs)
@@ -133,7 +141,7 @@ class TestCLINetwork: CLITest {
133141
@Test func testNetworkLabels() async throws {
134142
do {
135143
// prep: delete container and network, ignoring if it doesn't exist
136-
let name = Test.current!.name.trimmingCharacters(in: ["(", ")"])
144+
let name = getLowercasedTestName()
137145
try? doRemove(name: name)
138146
let networkDeleteArgs = ["network", "delete", name]
139147
_ = try? run(arguments: networkDeleteArgs)

Tests/CLITests/Subcommands/Run/TestCLIRunLifecycle.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@
1717
import Testing
1818

1919
class TestCLIRunLifecycle: CLITest {
20+
private func getTestName() -> String {
21+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
22+
}
23+
2024
@Test func testRunFailureCleanup() throws {
21-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
25+
let name = getTestName()
2226

2327
// try to create a container we know will fail
2428
let badArgs: [String] = [
@@ -36,7 +40,7 @@ class TestCLIRunLifecycle: CLITest {
3640
defer {
3741
try? self.doStop(name: name)
3842
}
39-
let _ = try self.doExec(name: name!, cmd: ["date"])
43+
let _ = try self.doExec(name: name, cmd: ["date"])
4044
try self.doStop(name: name)
4145
}
4246
}

Tests/CLITests/Subcommands/Run/TestCLIRunOptions.swift

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,17 @@ import Foundation
2424
import Testing
2525

2626
class TestCLIRunCommand: CLITest {
27+
private func getTestName() -> String {
28+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
29+
}
30+
31+
private func getLowercasedTestName() -> String {
32+
getTestName().lowercased()
33+
}
34+
2735
@Test func testRunCommand() throws {
2836
do {
29-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
37+
let name = getTestName()
3038
try doLongRun(name: name, args: [])
3139
defer {
3240
try? doStop(name: name)
@@ -41,7 +49,7 @@ class TestCLIRunCommand: CLITest {
4149

4250
@Test func testRunCommandCWD() throws {
4351
do {
44-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
52+
let name = getTestName()
4553
let expectedCWD = "/tmp"
4654
try doLongRun(name: name, args: ["--cwd", expectedCWD])
4755
defer {
@@ -59,7 +67,7 @@ class TestCLIRunCommand: CLITest {
5967

6068
@Test func testRunCommandEnv() throws {
6169
do {
62-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
70+
let name = getTestName()
6371
let envData = "FOO=bar"
6472
try doLongRun(name: name, args: ["--env", envData])
6573
defer {
@@ -78,7 +86,7 @@ class TestCLIRunCommand: CLITest {
7886

7987
@Test func testRunCommandEnvFile() throws {
8088
do {
81-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
89+
let name = getTestName()
8290
let envData = "FOO=bar"
8391
let tempFile = FileManager.default.temporaryDirectory.appendingPathComponent("test.env")
8492
guard FileManager.default.createFile(atPath: tempFile.path(), contents: Data(envData.utf8)) else {
@@ -105,7 +113,7 @@ class TestCLIRunCommand: CLITest {
105113

106114
@Test func testRunCommandUserIDGroupID() throws {
107115
do {
108-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
116+
let name = getTestName()
109117
let uid = "10"
110118
let gid = "100"
111119
try doLongRun(name: name, args: ["--uid", uid, "--gid", gid])
@@ -125,7 +133,7 @@ class TestCLIRunCommand: CLITest {
125133

126134
@Test func testRunCommandUser() throws {
127135
do {
128-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
136+
let name = getTestName()
129137
let user = "nobody"
130138
try doLongRun(name: name, args: ["--user", user])
131139
defer {
@@ -143,7 +151,7 @@ class TestCLIRunCommand: CLITest {
143151

144152
@Test func testRunCommandCPUs() throws {
145153
do {
146-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
154+
let name = getTestName()
147155
let cpus = "2"
148156
try doLongRun(name: name, args: ["--cpus", cpus])
149157
defer {
@@ -161,7 +169,7 @@ class TestCLIRunCommand: CLITest {
161169

162170
@Test func testRunCommandMemory() throws {
163171
do {
164-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
172+
let name = getTestName()
165173
let expectedMBs = 1024
166174
try doLongRun(name: name, args: ["--memory", "\(expectedMBs)M"])
167175
defer {
@@ -179,7 +187,7 @@ class TestCLIRunCommand: CLITest {
179187

180188
@Test func testRunCommandMount() throws {
181189
do {
182-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
190+
let name = getTestName()
183191
let targetContainerPath = "/tmp/testmount"
184192
let testData = "hello world"
185193
let tempDir = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
@@ -208,7 +216,7 @@ class TestCLIRunCommand: CLITest {
208216

209217
@Test func testRunCommandUnixSocketMount() throws {
210218
do {
211-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
219+
let name = getTestName()
212220
let socketPath = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
213221

214222
let socketType = try UnixType(path: socketPath.path, unlinkExisting: true)
@@ -242,7 +250,7 @@ class TestCLIRunCommand: CLITest {
242250

243251
@Test func testRunCommandTmpfs() throws {
244252
do {
245-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
253+
let name = getTestName()
246254
let targetContainerPath = "/tmp/testtmpfs"
247255
let expectedFilesystem = "tmpfs"
248256
try doLongRun(name: name, args: ["--tmpfs", targetContainerPath])
@@ -264,7 +272,7 @@ class TestCLIRunCommand: CLITest {
264272

265273
@Test func testRunCommandOSArch() throws {
266274
do {
267-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
275+
let name = getLowercasedTestName()
268276
let os = "linux"
269277
let arch = "amd64"
270278
let expectedArch = "x86_64"
@@ -284,7 +292,7 @@ class TestCLIRunCommand: CLITest {
284292

285293
@Test func testRunCommandPlatform() throws {
286294
do {
287-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
295+
let name = getTestName()
288296
let os = "linux"
289297
let platform = "linux/amd64"
290298
let expectedArch = "x86_64"
@@ -304,7 +312,7 @@ class TestCLIRunCommand: CLITest {
304312

305313
@Test func testRunCommandVolume() throws {
306314
do {
307-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
315+
let name = getTestName()
308316
let targetContainerPath = "/tmp/testvolume"
309317
let testData = "one small step"
310318
let volume = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
@@ -333,7 +341,7 @@ class TestCLIRunCommand: CLITest {
333341

334342
@Test func testRunCommandCidfile() throws {
335343
do {
336-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
344+
let name = getTestName()
337345
let filePath = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString)
338346
defer {
339347
try? FileManager.default.removeItem(at: filePath)
@@ -343,7 +351,7 @@ class TestCLIRunCommand: CLITest {
343351
try? doStop(name: name)
344352
}
345353
let actualID = try String(contentsOf: filePath, encoding: .utf8)
346-
#expect(actualID == name, "expected container ID '\(name!)', instead got '\(actualID)'")
354+
#expect(actualID == name, "expected container ID '\(name)', instead got '\(actualID)'")
347355
try doStop(name: name)
348356
} catch {
349357
Issue.record("failed to run container \(error)")
@@ -353,7 +361,7 @@ class TestCLIRunCommand: CLITest {
353361

354362
@Test func testRunCommandNoDNS() throws {
355363
do {
356-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
364+
let name = getTestName()
357365
try doLongRun(name: name, args: ["--no-dns"])
358366
defer {
359367
try? doStop(name: name)
@@ -369,7 +377,7 @@ class TestCLIRunCommand: CLITest {
369377

370378
@Test func testRunCommandDefaultResolvConf() throws {
371379
do {
372-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
380+
let name = getTestName()
373381
try doLongRun(name: name, args: [])
374382
defer {
375383
try? doStop(name: name)
@@ -404,7 +412,7 @@ class TestCLIRunCommand: CLITest {
404412
let expectedDomain = "example.com"
405413
let expectedSearch = "test.com"
406414
let expectedOption = "debug"
407-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
415+
let name = getTestName()
408416
try doLongRun(
409417
name: name,
410418
args: [
@@ -438,7 +446,7 @@ class TestCLIRunCommand: CLITest {
438446

439447
@Test func testRunDefaultHostsEntries() throws {
440448
do {
441-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
449+
let name = getTestName()
442450
try doLongRun(name: name)
443451
defer {
444452
try? doStop(name: name)
@@ -469,7 +477,7 @@ class TestCLIRunCommand: CLITest {
469477
let retries = 10
470478
let retryDelaySeconds = Int64(3)
471479
do {
472-
let name = Test.current!.name.trimmingCharacters(in: ["(", ")"])
480+
let name = getLowercasedTestName()
473481
let proxyIp = "127.0.0.1"
474482
let proxyPort = UInt16.random(in: 50000..<55000)
475483
let serverPort = UInt16.random(in: 55000..<60000)

Tests/CLITests/Subcommands/System/TestKernelSet.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,18 @@ class TestCLIKernelSet: CLITest {
6363
}
6464

6565
func validateContainerRun() throws {
66-
let name: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
66+
let name = getTestName()
6767
try doLongRun(name: name, args: [])
6868
defer { try? doStop(name: name) }
6969

7070
_ = try doExec(name: name, cmd: ["date"])
7171
try doStop(name: name)
7272
}
7373

74+
private func getTestName() -> String {
75+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
76+
}
77+
7478
@Test func fromLocalTar() async throws {
7579
let symlinkBinaryPath: String = URL(filePath: defaultBinaryPath).deletingLastPathComponent().appending(path: "vmlinux.container").relativePath
7680

Tests/CLITests/Subcommands/Volumes/TestCLIVolumes.swift

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,15 @@ class TestCLIVolumes: CLITest {
5252
return status != 0
5353
}
5454

55+
private func getTestName() -> String {
56+
Test.current!.name.trimmingCharacters(in: ["(", ")"]).lowercased()
57+
}
58+
5559
@Test func testVolumeDataPersistenceAcrossContainers() throws {
56-
let testName: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
57-
let volumeName = "\(testName!)_vol"
58-
let container1Name = "\(testName!)_c1"
59-
let container2Name = "\(testName!)_c2"
60+
let testName = getTestName()
61+
let volumeName = "\(testName)_vol"
62+
let container1Name = "\(testName)_c1"
63+
let container2Name = "\(testName)_c2"
6064
let testData = "persistent-data-test"
6165
let testFile = "/data/test.txt"
6266

@@ -102,10 +106,10 @@ class TestCLIVolumes: CLITest {
102106
}
103107

104108
@Test func testVolumeSharedAccessConflict() throws {
105-
let testName: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
106-
let volumeName = "\(testName!)_vol"
107-
let container1Name = "\(testName!)_c1"
108-
let container2Name = "\(testName!)_c2"
109+
let testName = getTestName()
110+
let volumeName = "\(testName)_vol"
111+
let container1Name = "\(testName)_c1"
112+
let container2Name = "\(testName)_c2"
109113

110114
// Clean up any existing resources from previous runs
111115
doVolumeDeleteIfExists(name: volumeName)
@@ -140,9 +144,9 @@ class TestCLIVolumes: CLITest {
140144
}
141145

142146
@Test func testVolumeDeleteProtectionWhileInUse() throws {
143-
let testName: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
144-
let volumeName = "\(testName!)_vol"
145-
let containerName = "\(testName!)_c1"
147+
let testName = getTestName()
148+
let volumeName = "\(testName)_vol"
149+
let containerName = "\(testName)_c1"
146150

147151
// Clean up any existing resources from previous runs
148152
doVolumeDeleteIfExists(name: volumeName)
@@ -175,9 +179,9 @@ class TestCLIVolumes: CLITest {
175179
}
176180

177181
@Test func testVolumeDeleteProtectionWithCreatedContainer() async throws {
178-
let testName: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
179-
let volumeName = "\(testName!)_vol"
180-
let containerName = "\(testName!)_c1"
182+
let testName = getTestName()
183+
let volumeName = "\(testName)_vol"
184+
let containerName = "\(testName)_c1"
181185

182186
// Clean up any existing resources from previous runs
183187
doVolumeDeleteIfExists(name: volumeName)
@@ -211,8 +215,8 @@ class TestCLIVolumes: CLITest {
211215
}
212216

213217
@Test func testVolumeBasicOperations() throws {
214-
let testName: String! = Test.current?.name.trimmingCharacters(in: ["(", ")"])
215-
let volumeName = "\(testName!)_vol"
218+
let testName = getTestName()
219+
let volumeName = "\(testName)_vol"
216220

217221
// Clean up any existing resources from previous runs
218222
doVolumeDeleteIfExists(name: volumeName)

0 commit comments

Comments
 (0)