Skip to content

[Backtracing][Tests] Disable crashing tests under ASAN. #64567

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 51 additions & 50 deletions test/Backtracing/Crash.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

// UNSUPPORTED: use_os_stdlib
// UNSUPPORTED: back_deployment_runtime
// UNSUPPORTED: asan
// REQUIRES: executable_test
// REQUIRES: backtracing
// REQUIRES: OS=macosx
Expand Down Expand Up @@ -52,13 +53,13 @@ struct Crash {

// CHECK: Thread 0 crashed:

// CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:41:15
// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:35:3
// CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:31:3
// CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:27:3
// CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:23:3
// CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:47:5
// CHECK-NEXT: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:44:1
// CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:42:15
// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:36:3
// CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:32:3
// CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:28:3
// CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:24:3
// CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:48:5
// CHECK-NEXT: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:45:1
// CHECK-NEXT: 7 [ra] [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in Crash at {{.*}}/Crash.swift

// CHECK: Registers:
Expand All @@ -71,59 +72,59 @@ struct Crash {

// FRIENDLY: Thread 0 crashed:

// FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:41:15
// FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:42:15

// FRIENDLY: 39| print("About to crash")
// FRIENDLY-NEXT: 40| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
// FRIENDLY-NEXT: 41| ptr.pointee = 42
// FRIENDLY: 40| print("About to crash")
// FRIENDLY-NEXT: 41| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
// FRIENDLY-NEXT: 42| ptr.pointee = 42
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 42| }
// FRIENDLY-NEXT: 43|
// FRIENDLY-NEXT: 43| }
// FRIENDLY-NEXT: 44|

// FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:35:3
// FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:36:3

// FRIENDLY: 33|
// FRIENDLY-NEXT: 34| func level4() {
// FRIENDLY-NEXT: 35| level5()
// FRIENDLY: 34|
// FRIENDLY-NEXT: 35| func level4() {
// FRIENDLY-NEXT: 36| level5()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 36| }
// FRIENDLY-NEXT: 37|
// FRIENDLY-NEXT: 37| }
// FRIENDLY-NEXT: 38|

// FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:31:3
// FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:32:3

// FRIENDLY: 29|
// FRIENDLY-NEXT: 30| func level3() {
// FRIENDLY-NEXT: 31| level4()
// FRIENDLY: 30|
// FRIENDLY-NEXT: 31| func level3() {
// FRIENDLY-NEXT: 32| level4()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 32| }
// FRIENDLY-NEXT: 33|
// FRIENDLY-NEXT: 33| }
// FRIENDLY-NEXT: 34|

// FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:27:3
// FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:28:3

// FRIENDLY: 25|
// FRIENDLY-NEXT: 26| func level2() {
// FRIENDLY-NEXT: 27| level3()
// FRIENDLY: 26|
// FRIENDLY-NEXT: 27| func level2() {
// FRIENDLY-NEXT: 28| level3()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 28| }
// FRIENDLY-NEXT: 29|
// FRIENDLY-NEXT: 29| }
// FRIENDLY-NEXT: 30|

// FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:23:3
// FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:24:3

// FRIENDLY: 21|
// FRIENDLY-NEXT: 22| func level1() {
// FRIENDLY-NEXT: 23| level2()
// FRIENDLY: 22|
// FRIENDLY-NEXT: 23| func level1() {
// FRIENDLY-NEXT: 24| level2()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 24| }
// FRIENDLY-NEXT: 25|
// FRIENDLY-NEXT: 25| }
// FRIENDLY-NEXT: 26|

// FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:47:5
// FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:48:5

// FRIENDLY: 45| struct Crash {
// FRIENDLY-NEXT: 46| static func main() {
// FRIENDLY-NEXT: 47| level1()
// FRIENDLY: 46| struct Crash {
// FRIENDLY-NEXT: 47| static func main() {
// FRIENDLY-NEXT: 48| level1()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 48| }
// FRIENDLY-NEXT: 49| }
// FRIENDLY-NEXT: 49| }
// FRIENDLY-NEXT: 50| }

// NODEBUG: *** Program crashed: Bad pointer dereference at 0x{{0*}}4 ***

Expand All @@ -148,13 +149,13 @@ struct Crash {

// OPTIMIZED: Thread 0 crashed:

// OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:41:15
// OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:35:3
// OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:31:3
// OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:27:3
// OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:23:3
// OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:47:5
// OPTIMIZED-NEXT: 6 [inlined] [system] 0x{{[0-9a-f]+}} static Crash.$main() in CrashOpt at {{.*}}/Crash.swift:44:1
// OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:42:15
// OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:36:3
// OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:32:3
// OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:28:3
// OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:24:3
// OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:48:5
// OPTIMIZED-NEXT: 6 [inlined] [system] 0x{{[0-9a-f]+}} static Crash.$main() in CrashOpt at {{.*}}/Crash.swift:45:1
// OPTIMIZED-NEXT: 7 [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashOpt at {{.*}}/Crash.swift

// OPTIMIZED: Registers:
Expand Down
69 changes: 35 additions & 34 deletions test/Backtracing/CrashAsync.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

// UNSUPPORTED: use_os_stdlib
// UNSUPPORTED: back_deployment_runtime
// UNSUPPORTED: asan
// REQUIRES: executable_test
// REQUIRES: backtracing
// REQUIRES: OS=macosx
Expand Down Expand Up @@ -41,13 +42,13 @@ struct CrashAsync {

// CHECK: Thread {{[0-9]+}} crashed:

// CHECK: 0 0x{{[0-9a-f]+}} _$s10CrashAsync5crashyyF + {{[0-9]+}} in CrashAsync at {{.*}}/CrashAsync.swift:20:15
// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTY0_ + {{[0-9]+}} in CrashAsync at {{.*}}/CrashAsync.swift:28:5
// CHECK-NEXT: 2 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:26
// CHECK-NEXT: 3 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:26
// CHECK-NEXT: 4 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:26
// CHECK-NEXT: 5 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:26
// CHECK-NEXT: 6 [async] 0x{{[0-9a-f]+}} _$s10CrashAsyncAAV4mainyyYaFZTQ0_ in CrashAsync at {{.*}}/CrashAsync.swift:36
// CHECK: 0 0x{{[0-9a-f]+}} _$s10CrashAsync5crashyyF + {{[0-9]+}} in CrashAsync at {{.*}}/CrashAsync.swift:21:15
// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTY0_ + {{[0-9]+}} in CrashAsync at {{.*}}/CrashAsync.swift:29:5
// CHECK-NEXT: 2 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:27
// CHECK-NEXT: 3 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:27
// CHECK-NEXT: 4 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:27
// CHECK-NEXT: 5 [async] 0x{{[0-9a-f]+}} _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}/CrashAsync.swift:27
// CHECK-NEXT: 6 [async] 0x{{[0-9a-f]+}} _$s10CrashAsyncAAV4mainyyYaFZTQ0_ in CrashAsync at {{.*}}/CrashAsync.swift:37
// CHECK-NEXT: 7 [async] [system] 0x{{[0-9a-f]+}} _$s10CrashAsyncAAV5$mainyyYaFZTQ0_ in CrashAsync at {{.*}}/<compiler-generated>
// CHECK-NEXT: 8 [async] [system] 0x{{[0-9a-f]+}} _async_MainTQ0_ in CrashAsync at {{.*}}/<compiler-generated>
// CHECK-NEXT: 9 [async] [thunk] 0x{{[0-9a-f]+}} _$sIetH_yts5Error_pIegHrzo_TRTQ0_ in CrashAsync at {{.*}}/<compiler-generated>
Expand All @@ -58,42 +59,42 @@ struct CrashAsync {

// FRIENDLY: Thread {{[0-9]+}} crashed:

// FRIENDLY: 0 _$s10CrashAsync5crashyyF + {{[0-9]+}} in CrashAsync at {{.*}}CrashAsync.swift:20:15
// FRIENDLY: 0 _$s10CrashAsync5crashyyF + {{[0-9]+}} in CrashAsync at {{.*}}CrashAsync.swift:21:15

// FRIENDLY: 18| func crash() {
// FRIENDLY-NEXT: 19| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
// FRIENDLY-NEXT: * 20| ptr.pointee = 42
// FRIENDLY: 19| func crash() {
// FRIENDLY-NEXT: 20| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
// FRIENDLY-NEXT: * 21| ptr.pointee = 42
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 21| }
// FRIENDLY-NEXT: 22|
// FRIENDLY-NEXT: 22| }
// FRIENDLY-NEXT: 23|

// FRIENDLY: 1 _$s10CrashAsync5levelyySiYaFTY0_ + {{[0-9]+}} in CrashAsync at {{.*}}CrashAsync.swift:28:5
// FRIENDLY: 1 _$s10CrashAsync5levelyySiYaFTY0_ + {{[0-9]+}} in CrashAsync at {{.*}}CrashAsync.swift:29:5

// FRIENDLY: 26| await level(n + 1)
// FRIENDLY-NEXT: 27| } else {
// FRIENDLY-NEXT: * 28| crash()
// FRIENDLY: 27| await level(n + 1)
// FRIENDLY-NEXT: 28| } else {
// FRIENDLY-NEXT: * 29| crash()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 29| }
// FRIENDLY-NEXT: 30| }
// FRIENDLY-NEXT: 30| }
// FRIENDLY-NEXT: 31| }

// FRIENDLY:2 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:26
// FRIENDLY:2 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:27

// FRIENDLY: 24| func level(_ n: Int) async {
// FRIENDLY-NEXT: 25| if n < 5 {
// FRIENDLY-NEXT: * 26| await level(n + 1)
// FRIENDLY: 25| func level(_ n: Int) async {
// FRIENDLY-NEXT: 26| if n < 5 {
// FRIENDLY-NEXT: * 27| await level(n + 1)
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 27| } else {
// FRIENDLY-NEXT: 28| crash()
// FRIENDLY-NEXT: 28| } else {
// FRIENDLY-NEXT: 29| crash()

// FRIENDLY: 3 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:26
// FRIENDLY: 4 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:26
// FRIENDLY: 5 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:26
// FRIENDLY: 6 _$s10CrashAsyncAAV4mainyyYaFZTQ0_ in CrashAsync at {{.*}}CrashAsync.swift:36
// FRIENDLY: 3 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:27
// FRIENDLY: 4 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:27
// FRIENDLY: 5 _$s10CrashAsync5levelyySiYaFTQ1_ in CrashAsync at {{.*}}CrashAsync.swift:27
// FRIENDLY: 6 _$s10CrashAsyncAAV4mainyyYaFZTQ0_ in CrashAsync at {{.*}}CrashAsync.swift:37

// FRIENDLY: 34| struct CrashAsync {
// FRIENDLY-NEXT: 35| static func main() async {
// FRIENDLY-NEXT: * 36| await level(1)
// FRIENDLY: 35| struct CrashAsync {
// FRIENDLY-NEXT: 36| static func main() async {
// FRIENDLY-NEXT: * 37| await level(1)
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 37| }
// FRIENDLY-NEXT: 38| }
// FRIENDLY-NEXT: 38| }
// FRIENDLY-NEXT: 39| }

31 changes: 16 additions & 15 deletions test/Backtracing/CrashWithThunk.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

// UNSUPPORTED: use_os_stdlib
// UNSUPPORTED: back_deployment_runtime
// UNSUPPORTED: asan
// REQUIRES: executable_test
// REQUIRES: backtracing
// REQUIRES: OS=macosx
Expand Down Expand Up @@ -33,10 +34,10 @@ struct CrashWithThunk {

// CHECK: Thread 0 crashed:

// CHECK: 0 0x{{[0-9a-f]+}} crash() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:20:15
// CHECK: 0 0x{{[0-9a-f]+}} crash() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:21:15
// CHECK-NEXT: 1 [ra] [thunk] 0x{{[0-9a-f]+}} thunk for @escaping @callee_guaranteed () -> () + {{[0-9]+}} in CrashWithThunk at {{.*}}/Backtracing/<compiler-generated>
// CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} static CrashWithThunk.main() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:28:9
// CHECK-NEXT: 3 [ra] [system] 0x{{[0-9a-f]+}} static CrashWithThunk.$main() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:23:1
// CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} static CrashWithThunk.main() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:29:9
// CHECK-NEXT: 3 [ra] [system] 0x{{[0-9a-f]+}} static CrashWithThunk.$main() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:24:1
// CHECK-NEXT: 4 [ra] [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift

// CHECK: Registers:
Expand All @@ -49,20 +50,20 @@ struct CrashWithThunk {

// FRIENDLY: Thread 0 crashed:

// FRIENDLY: 0 crash() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:20:15
// FRIENDLY: 0 crash() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:21:15

// FRIENDLY: 18| print("I'm going to crash here")
// FRIENDLY-NEXT: 19| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
// FRIENDLY-NEXT: 20| ptr.pointee = 42
// FRIENDLY: 19| print("I'm going to crash here")
// FRIENDLY-NEXT: 20| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
// FRIENDLY-NEXT: 21| ptr.pointee = 42
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 21| }
// FRIENDLY-NEXT: 22|
// FRIENDLY-NEXT: 22| }
// FRIENDLY-NEXT: 23|

// FRIENDLY: 1 static CrashWithThunk.main() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:28:9
// FRIENDLY: 1 static CrashWithThunk.main() + {{[0-9]+}} in CrashWithThunk at {{.*}}/CrashWithThunk.swift:29:9

// FRIENDLY: 26| let foo = Foo(value: crash)
// FRIENDLY-NEXT: 27|
// FRIENDLY-NEXT: 28| foo.value()
// FRIENDLY: 27| let foo = Foo(value: crash)
// FRIENDLY-NEXT: 28|
// FRIENDLY-NEXT: 29| foo.value()
// FRIENDLY-NEXT: | ^
// FRIENDLY-NEXT: 29| }
// FRIENDLY-NEXT: 30| }
// FRIENDLY-NEXT: 30| }
// FRIENDLY-NEXT: 31| }
Loading