Skip to content

Commit 3bdc19e

Browse files
authored
Merge pull request #910 from owenv/owenv/dest-cleanup
Cleanup targetArchitecture handling in macOS test run destination
2 parents a964197 + 15d2edb commit 3bdc19e

33 files changed

+641
-641
lines changed

Sources/SWBTestSupport/RunDestinationTestSupport.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,7 @@ extension _RunDestinationInfo {
121121
#if os(macOS)
122122
switch Architecture.host.stringValue {
123123
case "arm64":
124-
// FIXME: <rdar://78361860> Use results.runDestinationTargetArchitecture in our tests where appropriate so that this works
125-
fallthrough // return macOSAppleSilicon
124+
return macOSAppleSilicon
126125
case "x86_64":
127126
return macOSIntel
128127
default:

Tests/SWBBuildSystemTests/BuildBacktraceTests.swift

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,10 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
9292
try await tester.checkBuild(runDestination: .macOS, buildRequest: buildRequest, persistent: true) { results in
9393
results.checkNoDiagnostics()
9494
results.checkTask(.matchTargetName("TargetFoo"), .matchRuleType("CompileC")) { task in
95-
results.checkBacktrace(task, ["<category='ruleNeverBuilt' description=''Compile foo.c (x86_64)' had never run'>"])
95+
results.checkBacktrace(task, ["<category='ruleNeverBuilt' description=''Compile foo.c (\(results.runDestinationTargetArchitecture))' had never run'>"])
9696
}
9797
results.checkTask(.matchTargetName("TargetBar"), .matchRuleType("Ld")) { task in
98-
results.checkBacktrace(task, ["<category='ruleNeverBuilt' description=''Link TargetBar (x86_64)' had never run'>"])
98+
results.checkBacktrace(task, ["<category='ruleNeverBuilt' description=''Link TargetBar (\(results.runDestinationTargetArchitecture))' had never run'>"])
9999
}
100100
}
101101

@@ -114,19 +114,19 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
114114
results.checkNoDiagnostics()
115115
results.checkTask(.matchTargetName("TargetFoo"), .matchRuleType("CompileC")) { task in
116116
results.checkBacktrace(task, [
117-
"<category='ruleInputRebuilt' description='an input of 'Compile foo.c (x86_64)' changed'>",
117+
"<category='ruleInputRebuilt' description='an input of 'Compile foo.c (\(results.runDestinationTargetArchitecture))' changed'>",
118118
"<category='ruleHadInvalidValue' description='file '\(SRCROOT.join("Sources/foo.c").str)' changed'>"
119119
])
120120
}
121121
results.checkTask(.matchTargetName("TargetBar"), .matchRuleType("Ld")) { task in
122122
results.checkBacktrace(task, [
123-
"<category='ruleInputRebuilt' description='an input of 'Link TargetBar (x86_64)' changed'>",
123+
"<category='ruleInputRebuilt' description='an input of 'Link TargetBar (\(results.runDestinationTargetArchitecture))' changed'>",
124124
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/EagerLinkingTBDs/Debug/TargetFoo.framework/Versions/A/TargetFoo.tbd' ran'>",
125125
"<category='ruleInputRebuilt' description='an input of 'Generate TBD TargetFoo' changed'>",
126126
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/Debug/TargetFoo.framework/Versions/A/TargetFoo' ran'>",
127-
"<category='ruleInputRebuilt' description='an input of 'Link TargetFoo (x86_64)' changed'>",
128-
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetFoo.build/Objects-normal/x86_64/foo.o' ran'>",
129-
"<category='ruleInputRebuilt' description='an input of 'Compile foo.c (x86_64)' changed'>",
127+
"<category='ruleInputRebuilt' description='an input of 'Link TargetFoo (\(results.runDestinationTargetArchitecture))' changed'>",
128+
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetFoo.build/Objects-normal/\(results.runDestinationTargetArchitecture)/foo.o' ran'>",
129+
"<category='ruleInputRebuilt' description='an input of 'Compile foo.c (\(results.runDestinationTargetArchitecture))' changed'>",
130130
"<category='ruleHadInvalidValue' description='file '\(SRCROOT.str)/Sources/foo.c' changed'>"
131131
])
132132
}
@@ -138,27 +138,27 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
138138
results.checkNoDiagnostics()
139139
results.checkTask(.matchTargetName("TargetFoo"), .matchRuleType("CompileC")) { task in
140140
results.checkBacktrace(task, [
141-
"<category='ruleInputRebuilt' description='an input of 'Compile foo.c (x86_64)' changed'>",
142-
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetFoo.build/Objects-normal/x86_64/7187679823f38a2a940e0043cdf9d637-common-args.resp' ran'>",
143-
"<category='ruleSignatureChanged' description='arguments, environment, or working directory of 'Write 7187679823f38a2a940e0043cdf9d637-common-args.resp (x86_64)' changed'>"
141+
"<category='ruleInputRebuilt' description='an input of 'Compile foo.c (\(results.runDestinationTargetArchitecture))' changed'>",
142+
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetFoo.build/Objects-normal/\(results.runDestinationTargetArchitecture)/7187679823f38a2a940e0043cdf9d637-common-args.resp' ran'>",
143+
"<category='ruleSignatureChanged' description='arguments, environment, or working directory of 'Write 7187679823f38a2a940e0043cdf9d637-common-args.resp (\(results.runDestinationTargetArchitecture))' changed'>"
144144
])
145145
}
146146
if tester.fs.fileSystemMode == .checksumOnly {
147147
results.checkTask(.matchTargetName("TargetBar"), .matchRuleType("CompileC")) { task in
148148
results.checkBacktrace(task, [
149-
"<category='ruleSignatureChanged' description='signature of 'Compile bar.c (x86_64)' changed'>"
149+
"<category='ruleSignatureChanged' description='signature of 'Compile bar.c (\(results.runDestinationTargetArchitecture))' changed'>"
150150
])
151151
}
152152
// Ensure "Ld" is not executed, because contents of "bar.o" are unchanged
153153
results.checkNoTask()
154154
} else {
155155
results.checkTask(.matchTargetName("TargetBar"), .matchRuleType("Ld")) { task in
156156
results.checkBacktrace(task, [
157-
"<category='ruleInputRebuilt' description='an input of 'Link TargetBar (x86_64)' changed'>",
158-
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetBar.build/Objects-normal/x86_64/bar.o' ran'>",
159-
"<category='ruleInputRebuilt' description='an input of 'Compile bar.c (x86_64)' changed'>",
160-
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetBar.build/Objects-normal/x86_64/7187679823f38a2a940e0043cdf9d637-common-args.resp' ran'>",
161-
"<category='ruleSignatureChanged' description='arguments, environment, or working directory of 'Write 7187679823f38a2a940e0043cdf9d637-common-args.resp (x86_64)' changed'>"
157+
"<category='ruleInputRebuilt' description='an input of 'Link TargetBar (\(results.runDestinationTargetArchitecture))' changed'>",
158+
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetBar.build/Objects-normal/\(results.runDestinationTargetArchitecture)/bar.o' ran'>",
159+
"<category='ruleInputRebuilt' description='an input of 'Compile bar.c (\(results.runDestinationTargetArchitecture))' changed'>",
160+
"<category='ruleInputRebuilt' description='the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetBar.build/Objects-normal/\(results.runDestinationTargetArchitecture)/7187679823f38a2a940e0043cdf9d637-common-args.resp' ran'>",
161+
"<category='ruleSignatureChanged' description='arguments, environment, or working directory of 'Write 7187679823f38a2a940e0043cdf9d637-common-args.resp (\(results.runDestinationTargetArchitecture))' changed'>"
162162
])
163163
}
164164
}
@@ -220,14 +220,14 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
220220
results.checkBacktrace(task, [
221221
"<category='dynamicTaskRegistration' description=''>",
222222
"<category='dynamicTaskRequest' description='task was scheduled by the Swift driver'>",
223-
"<category='ruleNeverBuilt' description=''Compile TargetFoo (x86_64)' had never run'>"
223+
"<category='ruleNeverBuilt' description=''Compile TargetFoo (\(results.runDestinationTargetArchitecture))' had never run'>"
224224
])
225225
}
226226
results.checkTask(.matchTargetName("TargetFoo"), .matchRuleType("SwiftCompile")) { task in
227227
results.checkBacktrace(task, [
228228
"<category='dynamicTaskRegistration' description=''>",
229229
"<category='dynamicTaskRequest' description='task was scheduled by the Swift driver'>",
230-
"<category='ruleNeverBuilt' description=''Compile TargetFoo (x86_64)' had never run'>"
230+
"<category='ruleNeverBuilt' description=''Compile TargetFoo (\(results.runDestinationTargetArchitecture))' had never run'>"
231231
])
232232
}
233233
}
@@ -247,15 +247,15 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
247247
results.checkBacktrace(task, [
248248
"<category='dynamicTaskRegistration' description=''>",
249249
"<category='dynamicTaskRequest' description='task was scheduled by the Swift driver'>",
250-
"<category='ruleInputRebuilt' description='an input of 'Compile TargetFoo (x86_64)' changed'>",
250+
"<category='ruleInputRebuilt' description='an input of 'Compile TargetFoo (\(results.runDestinationTargetArchitecture))' changed'>",
251251
"<category='ruleHadInvalidValue' description='file '\(tmpDirPath.str)/Test/aProject/Sources/foo.swift' changed'>"
252252
])
253253
}
254254
results.checkTask(.matchTargetName("TargetFoo"), .matchRuleType("SwiftCompile")) { task in
255255
results.checkBacktrace(task, [
256256
"<category='dynamicTaskRegistration' description=''>",
257257
"<category='dynamicTaskRequest' description='task was scheduled by the Swift driver'>",
258-
"<category='ruleInputRebuilt' description='an input of 'Compile TargetFoo (x86_64)' changed'>",
258+
"<category='ruleInputRebuilt' description='an input of 'Compile TargetFoo (\(results.runDestinationTargetArchitecture))' changed'>",
259259
"<category='ruleHadInvalidValue' description='file '\(tmpDirPath.str)/Test/aProject/Sources/foo.swift' changed'>"
260260
])
261261
}
@@ -314,13 +314,13 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
314314
results.checkNoDiagnostics()
315315
}
316316

317-
try tester.fs.remove(SRCROOT.join("build/aProject.build/Debug/TargetFoo.build/Objects-normal/x86_64/foo.o"))
317+
try tester.fs.remove(SRCROOT.join("build/aProject.build/Debug/TargetFoo.build/Objects-normal/\(RunDestinationInfo.host.targetArchitecture)/foo.o"))
318318

319319
try await tester.checkBuild(runDestination: .macOS, buildRequest: buildRequest, persistent: true) { results in
320320
results.checkNoDiagnostics()
321321
results.checkTask(.matchTargetName("TargetFoo"), .matchRuleType("CompileC")) { task in
322322
results.checkBacktrace(task, [
323-
"<category='ruleHadInvalidValue' description='outputs of 'Compile foo.c (x86_64)' were missing or modified'>",
323+
"<category='ruleHadInvalidValue' description='outputs of 'Compile foo.c (\(results.runDestinationTargetArchitecture))' were missing or modified'>",
324324
])
325325
}
326326
}
@@ -560,13 +560,13 @@ fileprivate struct BuildBacktraceTests: CoreBasedTests {
560560
results.checkNoDiagnostics()
561561
results.checkTask(.matchTargetName("TargetBar"), .matchRuleType("Ld")) { task in
562562
results.checkTextualBacktrace(task, """
563-
#0: an input of 'Link TargetBar (x86_64)' changed
563+
#0: an input of 'Link TargetBar (\(results.runDestinationTargetArchitecture))' changed
564564
#1: the task producing file '\(SRCROOT.str)/build/EagerLinkingTBDs/Debug/TargetFoo.framework/Versions/A/TargetFoo.tbd' ran
565565
#2: an input of 'Generate TBD TargetFoo' changed
566566
#3: the task producing file '\(SRCROOT.str)/build/Debug/TargetFoo.framework/Versions/A/TargetFoo' ran
567-
#4: an input of 'Link TargetFoo (x86_64)' changed
568-
#5: the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetFoo.build/Objects-normal/x86_64/foo.o' ran
569-
#6: an input of 'Compile foo.c (x86_64)' changed
567+
#4: an input of 'Link TargetFoo (\(results.runDestinationTargetArchitecture))' changed
568+
#5: the task producing file '\(SRCROOT.str)/build/aProject.build/Debug/TargetFoo.build/Objects-normal/\(results.runDestinationTargetArchitecture)/foo.o' ran
569+
#6: an input of 'Compile foo.c (\(results.runDestinationTargetArchitecture))' changed
570570
#7: file '\(SRCROOT.str)/Sources/foo.c' changed
571571
572572
""")

Tests/SWBBuildSystemTests/BuildCommandTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ fileprivate struct BuildCommandTests: CoreBasedTests {
214214
/// Check assembling of a single file.
215215
@Test(.requireSDKs(.macOS))
216216
func assembleSingleFile() async throws {
217-
try await runSingleFileTask(BuildParameters(configuration: "Debug", activeRunDestination: .host), buildCommand: .generateAssemblyCode(buildOnlyTheseFiles: [Path("")]), fileName: "File.m") { results, excludedTypes, inputs, outputs in
217+
try await runSingleFileTask(BuildParameters(configuration: "Debug", activeRunDestination: .macOSIntel), buildCommand: .generateAssemblyCode(buildOnlyTheseFiles: [Path("")]), fileName: "File.m") { results, excludedTypes, inputs, outputs in
218218
results.consumeTasksMatchingRuleTypes(excludedTypes)
219219
try results.checkTask(.matchRuleType("Assemble"), .matchRuleItemBasename("File.m"), .matchRuleItem("normal"), .matchRuleItem(results.runDestinationTargetArchitecture)) { task in
220220
task.checkCommandLineContainsUninterrupted(["-x", "objective-c"])
@@ -226,7 +226,7 @@ fileprivate struct BuildCommandTests: CoreBasedTests {
226226
}
227227

228228
// Ensure that RUN_CLANG_STATIC_ANALYZER=YES doesn't interfere with the assemble build command
229-
try await runSingleFileTask(BuildParameters(configuration: "Debug", activeRunDestination: .host, overrides: ["RUN_CLANG_STATIC_ANALYZER": "YES"]), buildCommand: .generateAssemblyCode(buildOnlyTheseFiles: [Path("")]), fileName: "File.m") { results, excludedTypes, inputs, outputs in
229+
try await runSingleFileTask(BuildParameters(configuration: "Debug", activeRunDestination: .macOSIntel, overrides: ["RUN_CLANG_STATIC_ANALYZER": "YES"]), buildCommand: .generateAssemblyCode(buildOnlyTheseFiles: [Path("")]), fileName: "File.m") { results, excludedTypes, inputs, outputs in
230230
results.consumeTasksMatchingRuleTypes(excludedTypes)
231231
try results.checkTask(.matchRuleType("Assemble"), .matchRuleItemBasename("File.m"), .matchRuleItem("normal"), .matchRuleItem(results.runDestinationTargetArchitecture)) { task in
232232
task.checkCommandLineContainsUninterrupted(["-x", "objective-c"])
@@ -238,7 +238,7 @@ fileprivate struct BuildCommandTests: CoreBasedTests {
238238
}
239239

240240
// Include the single file to assemble in multiple targets
241-
try await runSingleFileTask(BuildParameters(configuration: "Debug", activeRunDestination: .host), buildCommand: .generateAssemblyCode(buildOnlyTheseFiles: [Path("")]), fileName: "File.m", multipleTargets: true) { results, excludedTypes, inputs, outputs in
241+
try await runSingleFileTask(BuildParameters(configuration: "Debug", activeRunDestination: .macOSIntel), buildCommand: .generateAssemblyCode(buildOnlyTheseFiles: [Path("")]), fileName: "File.m", multipleTargets: true) { results, excludedTypes, inputs, outputs in
242242
let firstOutput = try #require(outputs.sorted()[safe: 0])
243243
let secondOutput = try #require(outputs.sorted()[safe: 1])
244244
results.consumeTasksMatchingRuleTypes(excludedTypes)

0 commit comments

Comments
 (0)