mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This test fused both the CHECK directives and the source code into one file, and is sensitive to the line numbers that source code appears on in that file. Thus, any attempts to add new lines to this test would break it. This refactoring moves the source code to a separate file so its line numbers stay stable.
148 lines
6.4 KiB
Plaintext
148 lines
6.4 KiB
Plaintext
// RUN: %empty-directory(%t)
|
||
// RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -Onone -g -o %t/Crash
|
||
// RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -Onone -o %t/CrashNoDebug
|
||
// RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -O -g -o %t/CrashOpt
|
||
// RUN: %target-build-swift %S/Inputs/Crash.swift -parse-as-library -O -o %t/CrashOptNoDebug
|
||
// RUN: %target-codesign %t/Crash
|
||
// RUN: %target-codesign %t/CrashNoDebug
|
||
// RUN: %target-codesign %t/CrashOpt
|
||
// RUN: %target-codesign %t/CrashOptNoDebug
|
||
// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no %target-run %t/Crash 2>&1 || true) | %FileCheck %s
|
||
// RUN: (env SWIFT_BACKTRACE=preset=friendly,enable=yes,cache=no %target-run %t/Crash 2>&1 || true) | %FileCheck %s --check-prefix FRIENDLY
|
||
// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no %target-run %t/CrashNoDebug 2>&1 || true) | %FileCheck %s --check-prefix NODEBUG
|
||
// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no %target-run %t/CrashOpt 2>&1 || true) | %FileCheck %s --check-prefix OPTIMIZED
|
||
// RUN: (env SWIFT_BACKTRACE=enable=yes,cache=no %target-run %t/CrashOptNoDebug 2>&1 || true) | %FileCheck %s --check-prefix OPTNODEBUG
|
||
|
||
// UNSUPPORTED: use_os_stdlib
|
||
// UNSUPPORTED: back_deployment_runtime
|
||
// UNSUPPORTED: asan
|
||
// REQUIRES: executable_test
|
||
// REQUIRES: backtracing
|
||
// REQUIRES: OS=macosx || OS=linux-gnu
|
||
|
||
|
||
// CHECK: *** Program crashed: Bad pointer dereference at 0x{{0+}}4 ***
|
||
|
||
// CHECK: Thread 0 {{(".*" )?}}crashed:
|
||
|
||
// CHECK: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:20:15
|
||
// CHECK-NEXT: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:14:3
|
||
// CHECK-NEXT: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:10:3
|
||
// CHECK-NEXT: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:6:3
|
||
// CHECK-NEXT: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:2:3
|
||
// CHECK-NEXT: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:26:5
|
||
// CHECK-NEXT: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in Crash at {{.*}}/<compiler-generated>
|
||
// CHECK-NEXT: 7 [ra] [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in Crash at {{.*}}/Crash.swift
|
||
|
||
// CHECK: Registers:
|
||
|
||
// CHECK: Images ({{[0-9]+}} omitted):
|
||
|
||
// CHECK: {{0x[0-9a-f]+}}–{{0x[0-9a-f]+}}{{ +}}{{([0-9a-f]+|<no build ID>)}}{{ +}}Crash{{ +}}{{.*}}/Crash
|
||
|
||
// FRIENDLY: *** Program crashed: Bad pointer dereference at 0x{{0+}}4 ***
|
||
|
||
// FRIENDLY: Thread 0 {{(".*" )?}}crashed:
|
||
|
||
// FRIENDLY: 0 level5() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:20:15
|
||
|
||
// FRIENDLY: 18| print("About to crash")
|
||
// FRIENDLY-NEXT: 19| let ptr = UnsafeMutablePointer<Int>(bitPattern: 4)!
|
||
// FRIENDLY-NEXT: 20| ptr.pointee = 42
|
||
// FRIENDLY-NEXT: | ^
|
||
// FRIENDLY-NEXT: 21| }
|
||
// FRIENDLY-NEXT: 22|
|
||
|
||
// FRIENDLY: 1 level4() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:14:3
|
||
|
||
// FRIENDLY: 12|
|
||
// FRIENDLY-NEXT: 13| func level4() {
|
||
// FRIENDLY-NEXT: 14| level5()
|
||
// FRIENDLY-NEXT: | ^
|
||
// FRIENDLY-NEXT: 15| }
|
||
// FRIENDLY-NEXT: 16|
|
||
|
||
// FRIENDLY: 2 level3() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:10:3
|
||
|
||
// FRIENDLY: 8|
|
||
// FRIENDLY-NEXT: 9| func level3() {
|
||
// FRIENDLY-NEXT: 10| level4()
|
||
// FRIENDLY-NEXT: | ^
|
||
// FRIENDLY-NEXT: 11| }
|
||
// FRIENDLY-NEXT: 12|
|
||
|
||
// FRIENDLY: 3 level2() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:6:3
|
||
|
||
// FRIENDLY: 4|
|
||
// FRIENDLY-NEXT: 5| func level2() {
|
||
// FRIENDLY-NEXT: 6| level3()
|
||
// FRIENDLY-NEXT: | ^
|
||
// FRIENDLY-NEXT: 7| }
|
||
// FRIENDLY-NEXT: 8|
|
||
|
||
// FRIENDLY: 4 level1() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:2:3
|
||
|
||
// FRIENDLY: 1| func level1() {
|
||
// FRIENDLY-NEXT: 2| level2()
|
||
// FRIENDLY-NEXT: | ^
|
||
// FRIENDLY-NEXT: 3| }
|
||
|
||
// FRIENDLY: 5 static Crash.main() + {{[0-9]+}} in Crash at {{.*}}/Crash.swift:26:5
|
||
|
||
// FRIENDLY: 24| struct Crash {
|
||
// FRIENDLY-NEXT: 25| static func main() {
|
||
// FRIENDLY-NEXT: 26| level1()
|
||
// FRIENDLY-NEXT: | ^
|
||
// FRIENDLY-NEXT: 27| }
|
||
// FRIENDLY-NEXT: 28| }
|
||
|
||
// NODEBUG: *** Program crashed: Bad pointer dereference at 0x{{0*}}4 ***
|
||
|
||
// NODEBUG: Thread 0 {{(".*" )?}}crashed:
|
||
|
||
// NODEBUG: 0 0x{{[0-9a-f]+}} level5() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 1 [ra] 0x{{[0-9a-f]+}} level4() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 2 [ra] 0x{{[0-9a-f]+}} level3() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 3 [ra] 0x{{[0-9a-f]+}} level2() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 4 [ra] 0x{{[0-9a-f]+}} level1() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 5 [ra] 0x{{[0-9a-f]+}} static Crash.main() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 6 [ra] [system] 0x{{[0-9a-f]+}} static Crash.$main() + {{[0-9]+}} in CrashNoDebug
|
||
// NODEBUG: 7 [ra] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashNoDebug
|
||
|
||
// NODEBUG: Registers:
|
||
|
||
// NODEBUG: Images ({{[0-9]+}} omitted):
|
||
|
||
// NODEBUG: {{0x[0-9a-f]+}}–{{0x[0-9a-f]+}}{{ +}}{{([0-9a-f]+|<no build ID>)}}{{ +}}CrashNoDebug{{ +}}{{.*}}/CrashNoDebug
|
||
|
||
// OPTIMIZED: *** Program crashed: Bad pointer dereference at 0x{{0+}}4 ***
|
||
|
||
// OPTIMIZED: Thread 0 {{(".*" )?}}crashed:
|
||
|
||
// OPTIMIZED: 0 [inlined] 0x{{[0-9a-f]+}} level5() in CrashOpt at {{.*}}/Crash.swift:20:15
|
||
// OPTIMIZED-NEXT: 1 [inlined] 0x{{[0-9a-f]+}} level4() in CrashOpt at {{.*}}/Crash.swift:14:3
|
||
// OPTIMIZED-NEXT: 2 [inlined] 0x{{[0-9a-f]+}} level3() in CrashOpt at {{.*}}/Crash.swift:10:3
|
||
// OPTIMIZED-NEXT: 3 [inlined] 0x{{[0-9a-f]+}} level2() in CrashOpt at {{.*}}/Crash.swift:6:3
|
||
// OPTIMIZED-NEXT: 4 [inlined] 0x{{[0-9a-f]+}} level1() in CrashOpt at {{.*}}/Crash.swift:2:3
|
||
// OPTIMIZED-NEXT: 5 [inlined] 0x{{[0-9a-f]+}} static Crash.main() in CrashOpt at {{.*}}/Crash.swift:26:5
|
||
// OPTIMIZED: {{6|7}} [system] 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashOpt at {{.*}}
|
||
|
||
// OPTIMIZED: Registers:
|
||
|
||
// OPTIMIZED: Images ({{[0-9]+}} omitted):
|
||
|
||
// OPTIMIZED: {{0x[0-9a-f]+}}–{{0x[0-9a-f]+}}{{ +}}{{([0-9a-f]+|<no build ID>)}}{{ +}}CrashOpt{{ +}}{{.*}}/CrashOpt
|
||
|
||
// OPTNODEBUG: *** Program crashed: Bad pointer dereference at 0x{{0*}}4 ***
|
||
|
||
// OPTNODEBUG: Thread 0 {{(".*" )?}}crashed:
|
||
|
||
// OPTNODEBUG: 0 0x{{[0-9a-f]+}} main + {{[0-9]+}} in CrashOptNoDebug
|
||
|
||
// OPTNODEBUG: Registers:
|
||
|
||
// OPTNODEBUG: Images ({{[0-9]+}} omitted):
|
||
|
||
// OPTNODEBUG: {{0x[0-9a-f]+}}–{{0x[0-9a-f]+}}{{ +}}{{([0-9a-f]+|<no build ID>)}}{{ +}}CrashOptNoDebug{{ +}}{{.*}}/CrashOptNoDebug
|
||
|