File: NSException.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (69 lines) | stat: -rw-r--r-- 2,294 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// RUN: %target-run-simple-swift 2>&1 | %FileCheck %s
// REQUIRES: executable_test
// REQUIRES: objc_interop
// FIXME: this test is failing for watchos <rdar://problem/29997073>
// UNSUPPORTED: OS=watchos

import StdlibUnittest
import ObjectiveC
import Foundation

// Don't actually exit with a non-zero status, just say we're going to do it.
_setTestSuiteFailedCallback() { print("abort()") }


func raiseNSException() {
  NSException(name: NSExceptionName(rawValue: "Trogdor"), reason: "Burnination", userInfo: nil).raise()
}

var TestSuiteCrashes = TestSuite("NSExceptionCrashes")

TestSuiteCrashes.test("uncaught") {
  print("uncaught")
  raiseNSException()
}
// CHECK-LABEL: stdout>>> uncaught
// CHECK: stderr>>> *** [StdlibUnittest] Terminating due to uncaught exception Trogdor: Burnination
// CHECK: stderr>>> CRASHED: SIG
// CHECK: the test crashed unexpectedly
// CHECK: [     FAIL ] NSExceptionCrashes.uncaught

TestSuiteCrashes.test("crashesAsExpected") {
  print("crashesAsExpected")
  expectCrashLater()
  raiseNSException()
}
// CHECK-LABEL: stdout>>> crashesAsExpected
// CHECK: stderr>>> *** [StdlibUnittest] Terminating due to uncaught exception Trogdor: Burnination
// CHECK: stderr>>> OK: saw expected "crashed: sig
// CHECK: [       OK ] NSExceptionCrashes.crashesAsExpected

TestSuiteCrashes.test("crashesWithMessage")
  .crashOutputMatches("libUnittest]")
  .crashOutputMatches("Trogdor")
  .crashOutputMatches("Burnination").code {
  print("crashesWithMessage")
  expectCrashLater()
  raiseNSException()
}
// CHECK-LABEL: stdout>>> crashesWithMessage
// CHECK: stderr>>> *** [StdlibUnittest] Terminating due to uncaught exception Trogdor: Burnination
// CHECK: stderr>>> OK: saw expected "crashed: sig
// CHECK: [       OK ] NSExceptionCrashes.crashesWithMessage

TestSuiteCrashes.test("nonNSException")
  .crashOutputMatches("countryside").code {
  print("nonNSException")
  expectCrashLater()
  objc_exception_throw("countryside")
}
// CHECK-LABEL: stdout>>> nonNSException
// CHECK: stderr>>> *** [StdlibUnittest] Terminating due to uncaught exception: countryside
// CHECK: stderr>>> OK: saw expected "crashed: sig
// CHECK: [       OK ] NSExceptionCrashes.nonNSException

// CHECK: NSExceptionCrashes: Some tests failed, aborting
// CHECK: abort()

runAllTests()