Skip to content

Commit 7368b08

Browse files
committed
Merge pull request #1133 from glessard/always-never-testpredicate
Add .Always and .Never cases to StdlibUnittest's TestPredicate
2 parents 273b149 + bc93245 commit 7368b08

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

stdlib/private/StdlibUnittest/StdlibUnittest.swift.gyb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,6 +1124,9 @@ func _getRunningOSVersion() -> OSVersion {
11241124
public enum TestRunPredicate : CustomStringConvertible {
11251125
case Custom(() -> Bool, reason: String)
11261126

1127+
case Always(/*reason:*/ String)
1128+
case Never
1129+
11271130
case OSXAny(/*reason:*/ String)
11281131
case OSXMajor(Int, reason: String)
11291132
case OSXMinor(Int, Int, reason: String)
@@ -1166,6 +1169,12 @@ public enum TestRunPredicate : CustomStringConvertible {
11661169
switch self {
11671170
case Custom(_, let reason):
11681171
return "Custom(reason: \(reason))"
1172+
1173+
case Always(let reason):
1174+
return "Always(reason: \(reason))"
1175+
case Never:
1176+
return ""
1177+
11691178
case OSXAny(let reason):
11701179
return "OSX(*, reason: \(reason))"
11711180
case OSXMajor(let major, let reason):
@@ -1240,6 +1249,11 @@ public enum TestRunPredicate : CustomStringConvertible {
12401249
case Custom(let predicate, _):
12411250
return predicate()
12421251

1252+
case Always:
1253+
return true
1254+
case Never:
1255+
return false
1256+
12431257
case OSXAny:
12441258
switch _getRunningOSVersion() {
12451259
case .OSX:

validation-test/stdlib/StdlibUnittest.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ XFailsAndSkips.test("fails") {
7070
expectEqual(1, 2)
7171
}
7272

73+
// CHECK: [ XFAIL ] XFailsAndSkips.fails-always{{$}}
74+
XFailsAndSkips.test("fails-always")
75+
.xfail(.Always("must always fail")).code {
76+
expectEqual(1, 2)
77+
}
78+
79+
// CHECK: [ OK ] XFailsAndSkips.fails-never{{$}}
80+
XFailsAndSkips.test("fails-never")
81+
.xfail(.Never).code {
82+
expectEqual(1, 1)
83+
}
84+
7385
// CHECK: [ XFAIL ] XFailsAndSkips.xfail 10.9.3 passes{{$}}
7486
XFailsAndSkips.test("xfail 10.9.3 passes")
7587
.xfail(.OSXBugFix(10, 9, 3, reason: "")).code {
@@ -82,6 +94,18 @@ XFailsAndSkips.test("xfail 10.9.3 fails")
8294
expectEqual(1, 2)
8395
}
8496

97+
// CHECK: [ SKIP ] XFailsAndSkips.skipAlways (skip: [Always(reason: skip)]){{$}}
98+
XFailsAndSkips.test("skipAlways")
99+
.skip(.Always("skip")).code {
100+
fatalError("should not happen")
101+
}
102+
103+
// CHECK: [ OK ] XFailsAndSkips.skipNever{{$}}
104+
XFailsAndSkips.test("skipNever")
105+
.skip(.Never).code {
106+
expectEqual(1, 1)
107+
}
108+
85109
// CHECK: [ FAIL ] XFailsAndSkips.skip 10.9.2 passes{{$}}
86110
XFailsAndSkips.test("skip 10.9.2 passes")
87111
.skip(.OSXBugFix(10, 9, 2, reason: "")).code {

0 commit comments

Comments
 (0)