Skip to content

Commit 52eb2d2

Browse files
cachemeifyoucanjakepetroules
authored andcommitted
[TEST-ONLY] Fix compilation caching test
Fix the broken tests and mark them as not flaky. Resolves: rdar://137717929
1 parent c3fd09e commit 52eb2d2

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

Tests/SWBBuildSystemTests/ClangCompilationCachingTests.swift

+10-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ import SWBTaskExecution
1818
import SWBTestSupport
1919
import SWBUtil
2020

21-
@Suite(.skipHostOS(.windows), .requireCompilationCaching,
22-
.requireDependencyScannerPlusCaching, // Windows: CAS creation failed: fatal error: CAS cannot be initialized from the specified '-fcas-*' options: OnDiskCache is disabled
23-
.flaky("A handful of Swift Build CAS tests fail when running the entire test suite"), .bug("rdar://137717929"))
21+
@Suite(.skipHostOS(.windows, "Windows platform has no CAS support yet"),
22+
.requireCompilationCaching, .requireDependencyScannerPlusCaching)
2423
fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
2524
let canUseCASPlugin: Bool
2625
let canUseCASPruning: Bool
@@ -338,6 +337,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
338337
"CCHROOT": cchrootPath.str,
339338
"CLANG_ENABLE_MODULES": "NO",
340339
"CLANG_ENABLE_EXPLICIT_MODULES": "NO",
340+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
341341
])],
342342
targets: [
343343
TestStandardTarget(
@@ -388,6 +388,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
388388
"CLANG_ENABLE_COMPILE_CACHE": "YES",
389389
"CLANG_CACHE_FINE_GRAINED_OUTPUTS": "NO",
390390
"CLANG_CACHE_FINE_GRAINED_OUTPUTS_VERIFICATION": "NO",
391+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
391392
]
392393

393394
try await testCachingFineGrainedOutputsBasicNoMatch(buildSettings: buildSettings)
@@ -400,6 +401,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
400401
"CLANG_ENABLE_COMPILE_CACHE": "NO",
401402
"CLANG_CACHE_FINE_GRAINED_OUTPUTS": "YES",
402403
"CLANG_CACHE_FINE_GRAINED_OUTPUTS_VERIFICATION": "YES",
404+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
403405
]
404406

405407
try await testCachingFineGrainedOutputsBasicNoMatch(buildSettings: buildSettings)
@@ -475,6 +477,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
475477
let buildSettings = [
476478
"PRODUCT_NAME": "$(TARGET_NAME)",
477479
"CLANG_ENABLE_COMPILE_CACHE": "YES",
480+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
478481
]
479482

480483
try await testCachingFineGrainedOutputsBasicMatch(buildSettings: buildSettings, checkVerification: false)
@@ -486,6 +489,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
486489
"PRODUCT_NAME": "$(TARGET_NAME)",
487490
"CLANG_ENABLE_COMPILE_CACHE": "YES",
488491
"CLANG_CACHE_FINE_GRAINED_OUTPUTS": "YES",
492+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
489493
]
490494

491495
try await testCachingFineGrainedOutputsBasicMatch(buildSettings: buildSettings, checkVerification: false)
@@ -498,6 +502,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
498502
"CLANG_ENABLE_COMPILE_CACHE": "YES",
499503
"CLANG_CACHE_FINE_GRAINED_OUTPUTS": "YES",
500504
"CLANG_CACHE_FINE_GRAINED_OUTPUTS_VERIFICATION": "YES",
505+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
501506
]
502507

503508
try await testCachingFineGrainedOutputsBasicMatch(buildSettings: buildSettings, checkVerification: true)
@@ -597,6 +602,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
597602
"BLOCKLISTS_PATH": tmpDirPath.str,
598603
"CLANG_ENABLE_MODULES": "NO",
599604
"CLANG_ENABLE_EXPLICIT_MODULES": "NO",
605+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
600606
])],
601607
targets: [
602608
TestStandardTarget(
@@ -1525,6 +1531,7 @@ fileprivate struct ClangCompilationCachingTests: CoreBasedTests {
15251531
"CLANG_ENABLE_PREFIX_MAPPING": "YES",
15261532
"CLANG_OTHER_PREFIX_MAPPINGS": "\(moduleDir.str)=/^mod",
15271533
"DSTROOT": tmpDirPath.join("dstroot").str,
1534+
"EMIT_FRONTEND_COMMAND_LINES": "YES",
15281535
])],
15291536
targets: [
15301537
TestStandardTarget(

Tests/SWBBuildSystemTests/ClangModuleVerifierTests.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ fileprivate struct ClangModuleVerifierTests: CoreBasedTests {
191191
}
192192
}
193193

194-
@Test(.requireSDKs(.macOS), .requireClangFeatures(.wSystemHeadersInModule), .requireDependencyScannerPlusCaching, .requireCompilationCaching, .flaky("A handful of Swift Build CAS tests fail when running the entire test suite"), .bug("rdar://137717929"))
194+
@Test(.requireSDKs(.macOS), .requireClangFeatures(.wSystemHeadersInModule), .requireDependencyScannerPlusCaching, .requireCompilationCaching)
195195
func cachedBuild() async throws {
196196
try await withTemporaryDirectory { (tmpDirPath: Path) in
197197
let archs = ["arm64", "x86_64"]

Tests/SWBBuildSystemTests/SwiftCompilationCachingTests.swift

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import SWBUtil
1818

1919
import SWBTaskExecution
2020

21-
@Suite(.requireSwiftFeatures(.compilationCaching), .requireCompilationCaching, .flaky("A handful of Swift Build CAS tests fail when running the entire test suite"), .bug("rdar://137717929"))
21+
@Suite(.requireSwiftFeatures(.compilationCaching), .requireCompilationCaching)
2222
fileprivate struct SwiftCompilationCachingTests: CoreBasedTests {
2323
@Test(.requireSDKs(.iOS))
2424
func swiftCachingSimple() async throws {
@@ -81,7 +81,7 @@ fileprivate struct SwiftCompilationCachingTests: CoreBasedTests {
8181
var numCompile = 0
8282
try await tester.checkBuild(runDestination: .anyiOSDevice, persistent: true) { results in
8383
results.consumeTasksMatchingRuleTypes()
84-
results.consumeTasksMatchingRuleTypes(["CopySwiftLibs", "GenerateDSYMFile", "ProcessInfoPlistFile", "RegisterExecutionPolicyException", "Touch", "Validate", "ExtractAppIntentsMetadata", "AppIntentsSSUTraining", "SwiftDriver Compilation Requirements", "Copy", "Ld", "CompileC", "SwiftMergeGeneratedHeaders"])
84+
results.consumeTasksMatchingRuleTypes(["CopySwiftLibs", "GenerateDSYMFile", "ProcessInfoPlistFile", "RegisterExecutionPolicyException", "Touch", "Validate", "ExtractAppIntentsMetadata", "AppIntentsSSUTraining", "SwiftDriver Compilation Requirements", "Copy", "Ld", "CompileC", "SwiftMergeGeneratedHeaders", "ProcessSDKImports"])
8585

8686
results.checkTask(.matchTargetName("Application"), .matchRule(["SwiftDriver", "Application", "normal", "arm64", "com.apple.xcode.tools.swift.compiler"])) { task in
8787
task.checkCommandLineMatches([.suffix("swiftc"), .anySequence, "-cache-compile-job", .anySequence])
@@ -110,15 +110,15 @@ fileprivate struct SwiftCompilationCachingTests: CoreBasedTests {
110110

111111
results.checkNoTask()
112112
}
113-
#expect(try readMetrics("one") == "{\"clangCacheHits\":0,\"clangCacheMisses\":0,\"swiftCacheHits\":0,\"swiftCacheMisses\":\(numCompile)}")
113+
#expect(try readMetrics("one").contains("\"swiftCacheHits\":0,\"swiftCacheMisses\":\(numCompile)"))
114114

115115
// touch a file, clean build folder, and rebuild.
116116
try await tester.fs.updateTimestamp(testWorkspace.sourceRoot.join("aProject/App.swift"))
117117
try await tester.checkBuild(runDestination: .macOS, buildCommand: .cleanBuildFolder(style: .regular), body: { _ in })
118118

119119
tester.userInfo = rawUserInfo.withAdditionalEnvironment(environment: metricsEnv("two"))
120120
try await tester.checkBuild(runDestination: .anyiOSDevice, persistent: true) { _ in }
121-
#expect(try readMetrics("two") == "{\"clangCacheHits\":0,\"clangCacheMisses\":0,\"swiftCacheHits\":\(numCompile),\"swiftCacheMisses\":0}")
121+
#expect(try readMetrics("two").contains("\"swiftCacheHits\":\(numCompile),\"swiftCacheMisses\":0"))
122122
}
123123
}
124124
}

0 commit comments

Comments
 (0)