Skip to content

Commit b0eafee

Browse files
authored
Merge pull request #34665 from lorentey/runtime-error-message-format
[runtime] Adjust file/line information in fatal error messages to match compiler diagnostics
2 parents 3c00266 + 1a05171 commit b0eafee

File tree

8 files changed

+22
-23
lines changed

8 files changed

+22
-23
lines changed

stdlib/public/stubs/Assert.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ void _swift_stdlib_reportFatalErrorInFile(
4949
) {
5050
char *log;
5151
swift_asprintf(
52-
&log, "%.*s: %.*s%sfile %.*s, line %" PRIu32 "\n",
53-
prefixLength, prefix,
54-
messageLength, message,
55-
(messageLength ? ": " : ""),
52+
&log, "%.*s:%" PRIu32 ": %.*s%s%.*s\n",
5653
fileLength, file,
57-
line);
54+
line,
55+
prefixLength, prefix,
56+
(messageLength > 0 ? ": " : ""),
57+
messageLength, message);
5858

5959
swift_reportError(flags, log);
6060
free(log);
@@ -89,10 +89,10 @@ void _swift_stdlib_reportUnimplementedInitializerInFile(
8989
char *log;
9090
swift_asprintf(
9191
&log,
92-
"%.*s: %" PRIu32 ": %" PRIu32 ": Fatal error: Use of unimplemented "
92+
"%.*s:%" PRIu32 ": Fatal error: Use of unimplemented "
9393
"initializer '%.*s' for class '%.*s'\n",
9494
fileLength, file,
95-
line, column,
95+
line,
9696
initNameLength, initName,
9797
classNameLength, className);
9898

test/PlaygroundTransform/implicit_return_never.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
func f() -> Int {
1515
fatalError()
16-
// CRASH-CHECK: {{[fF]}}atal error: file {{.*}}/main.swift, line [[@LINE-1]]
16+
// CRASH-CHECK: {{.*}}/main.swift:[[@LINE-1]]: Fatal error
1717
}
1818

1919
f()

test/PlaygroundTransform/placeholder.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
// status doesn't reflect whether its child process crashed or not. So "not
1111
// --crash %target-run ..." always fails when testing for the iOS Simulator.
1212
// not.py also works on win32, where ! does not.
13-
// Checking for ".[Ff]atal" because of d03a575279c.
1413

1514
func f(crash crash: Bool) -> Int {
1615
if crash {
1716
return <#T#>
18-
// CRASH-CHECK: {{[fF]}}atal error: attempt to evaluate editor placeholder: file {{.*}}/main.swift, line [[@LINE-1]]
17+
// CRASH-CHECK: {{.*}}/main.swift:[[@LINE-1]]: Fatal error: attempt to evaluate editor placeholder
1918
} else {
2019
return 42
2120
}

test/attr/ApplicationMain/attr_main_throws_prints_error.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
enum Err : Error { case or }
1111

12-
// CHECK: Fatal error: Error raised at top level: main.Err.or:
12+
// CHECK: Fatal error: Error raised at top level: main.Err.or
1313
@main
1414
struct S {
1515
static func main() throws {

test/stdlib/Error.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ ErrorTests.test("try!/location")
121121
.skip(.custom({ _isFastAssertConfiguration() },
122122
reason: "trap is not guaranteed to happen in -Ounchecked"))
123123
.crashOutputMatches(_isDebugAssertConfiguration()
124-
? "main/Error.swift, line 128"
124+
? "main/Error.swift:128"
125125
: "")
126126
.code {
127127
expectCrashLater()

test/stdlib/OptionalTraps.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ OptionalTraps.test("UnwrapNone/location")
3636
{ _isFastAssertConfiguration() },
3737
reason: "this trap is not guaranteed to happen in -Ounchecked"))
3838
.crashOutputMatches(_isDebugAssertConfiguration()
39-
? "OptionalTraps.swift, line 45"
39+
? "OptionalTraps.swift:45:"
4040
: "")
4141
.code {
4242
expectCrashLater()

validation-test/StdlibUnittest/ChildProcessShutdown/FailIfChildCrashesDuringShutdown.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ TestSuiteChildCrashes.test("passes") {
3232
// CHECK: [ RUN ] TestSuiteChildCrashes.passes
3333
// CHECK: [ OK ] TestSuiteChildCrashes.passes
3434
// CHECK: TestSuiteChildCrashes: All tests passed
35-
// CHECK: stderr>>> Fatal error: Crash at exit:
35+
// CHECK: stderr>>> {{.*}}Fatal error: Crash at exit
3636
// CHECK: stderr>>> CRASHED: SIG
3737
// CHECK: The child process failed during shutdown, aborting.
3838
// CHECK: abort()

validation-test/StdlibUnittest/CrashingTests.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ TestSuiteCrashes.test("crashesUnexpectedly1") {
4040
fatalErrorWithDelayIfNeeded("This should crash")
4141
}
4242
// CHECK: stdout>>> crashesUnexpectedly1
43-
// CHECK: stderr>>> Fatal error: This should crash:
43+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash
4444
// CHECK: stderr>>> CRASHED: SIG
4545
// CHECK: [ FAIL ] TestSuiteCrashes.crashesUnexpectedly1
4646

@@ -64,7 +64,7 @@ TestSuiteCrashes.test("crashesUnexpectedly2") {
6464
fatalErrorWithDelayIfNeeded("This should crash")
6565
}
6666
// CHECK: stdout>>> crashesUnexpectedly2
67-
// CHECK: stderr>>> Fatal error: This should crash:
67+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash
6868
// CHECK: stderr>>> CRASHED: SIG
6969
// CHECK: [ FAIL ] TestSuiteCrashes.crashesUnexpectedly2
7070

@@ -89,7 +89,7 @@ TestSuiteCrashes.test("crashesAsExpected1") {
8989
fatalErrorWithDelayIfNeeded("This should crash")
9090
}
9191
// CHECK: stdout>>> crashesAsExpected1
92-
// CHECK: stderr>>> Fatal error: This should crash:
92+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash
9393
// CHECK: stderr>>> OK: saw expected "crashed: sig
9494
// CHECK: [ OK ] TestSuiteCrashes.crashesAsExpected1
9595

@@ -114,7 +114,7 @@ TestSuiteCrashes.test("crashesUnexpectedlyXfail")
114114
fatalErrorWithDelayIfNeeded("This should crash")
115115
}
116116
// CHECK: stdout>>> crashesUnexpectedlyXfail
117-
// CHECK: stderr>>> Fatal error: This should crash:
117+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash
118118
// CHECK: stderr>>> CRASHED: SIG
119119
// CHECK: [ XFAIL ] TestSuiteCrashes.crashesUnexpectedlyXfail
120120

@@ -125,7 +125,7 @@ TestSuiteCrashes.test("crashesAsExpectedXfail")
125125
fatalErrorWithDelayIfNeeded("This should crash")
126126
}
127127
// CHECK: stdout>>> crashesAsExpectedXfail
128-
// CHECK: stderr>>> Fatal error: This should crash:
128+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash
129129
// CHECK: stderr>>> OK: saw expected "crashed: sig
130130
// CHECK: [ UXPASS ] TestSuiteCrashes.crashesAsExpectedXfail
131131

@@ -136,7 +136,7 @@ TestSuiteCrashes.test("crashesWithMessagePasses")
136136
fatalErrorWithDelayIfNeeded("This should crash")
137137
}
138138
// CHECK: stdout>>> abcd
139-
// CHECK: stderr>>> Fatal error: This should crash:
139+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash
140140
// CHECK: stderr>>> OK: saw expected "crashed: sig
141141
// CHECK: [ OK ] TestSuiteCrashes.crashesWithMessagePasses
142142

@@ -147,7 +147,7 @@ TestSuiteCrashes.test("crashesWithMessageFails")
147147
fatalErrorWithDelayIfNeeded("unexpected message")
148148
}
149149
// CHECK: stdout>>> This should crash
150-
// CHECK: stderr>>> Fatal error: unexpected message:
150+
// CHECK: stderr>>> {{.*}}Fatal error: unexpected message
151151
// CHECK: stderr>>> OK: saw expected "crashed: sig
152152
// CHECK: did not find expected string after crash: "This should crash"
153153
// CHECK: [ FAIL ] TestSuiteCrashes.crashesWithMessageFails
@@ -162,7 +162,7 @@ TestSuiteCrashes.test("crashesWithMultipleMessagesPasses")
162162
fatalErrorWithDelayIfNeeded("This should crash and your little dog too")
163163
}
164164
// CHECK: stdout>>> abcd
165-
// CHECK: stderr>>> Fatal error: This should crash and your little dog too:
165+
// CHECK: stderr>>> {{.*}}Fatal error: This should crash and your little dog too
166166
// CHECK: stderr>>> OK: saw expected "crashed: sig
167167
// CHECK: [ OK ] TestSuiteCrashes.crashesWithMultipleMessagesPasses
168168

@@ -177,7 +177,7 @@ TestSuiteCrashes.test("crashesWithMultipleMessagesFails")
177177
fatalErrorWithDelayIfNeeded("unexpected message and your little dog too")
178178
}
179179
// CHECK: stdout>>> This should crash
180-
// CHECK: stderr>>> Fatal error: unexpected message and your little dog too:
180+
// CHECK: stderr>>> {{.*}}Fatal error: unexpected message and your little dog too
181181
// CHECK: stderr>>> OK: saw expected "crashed: sig
182182
// CHECK: did not find expected string after crash: "This should crash"
183183
// CHECK: did not find expected string after crash: "big dog"

0 commit comments

Comments
 (0)