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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
// RUN: %target-run-simple-swift
// REQUIRES: executable_test
// REQUIRES: objc_interop
import StdlibUnittest
import Foundation
var DarwinBooleanAPI = TestSuite("DarwinBooleanAPI")
DarwinBooleanAPI.test("init") {
do {
let nativeTrue = true
let true1 = DarwinBoolean(nativeTrue)
let true2: DarwinBoolean = true
expectEqual(1, unsafeBitCast(true1, to: UInt8.self))
expectEqual(1, unsafeBitCast(true2, to: UInt8.self))
}
do {
let nativeFalse = false
let false1 = DarwinBoolean(nativeFalse)
let false2: DarwinBoolean = false
expectEqual(0, unsafeBitCast(false1, to: UInt8.self))
expectEqual(0, unsafeBitCast(false2, to: UInt8.self))
}
}
DarwinBooleanAPI.test("boolValue") {
do {
let nativeTrue = true
let trueValue: DarwinBoolean = true
expectEqual(nativeTrue, trueValue.boolValue)
}
do {
let nativeFalse = false
let falseValue: DarwinBoolean = false
expectEqual(nativeFalse, falseValue.boolValue)
}
}
DarwinBooleanAPI.test("boolValue/extra values") {
let rawValue: UInt8 = 2
let otherValue = unsafeBitCast(rawValue, to: DarwinBoolean.self)
expectTrue(otherValue.boolValue)
}
DarwinBooleanAPI.test("Boolean") {
var trueValue: DarwinBoolean = true
var success = false
if trueValue.boolValue {
success = true
} else {
expectUnreachable()
}
expectTrue(success)
}
DarwinBooleanAPI.test("CustomStringConvertible") {
let trueValue: DarwinBoolean = true
expectEqual("true", trueValue.description)
let falseValue: DarwinBoolean = false
expectEqual("false", falseValue.description)
}
DarwinBooleanAPI.test("Equatable") {
let trueValue: DarwinBoolean = true
let falseValue: DarwinBoolean = false
checkEquatable(true, trueValue, trueValue)
checkEquatable(true, falseValue, falseValue)
checkEquatable(false, trueValue, falseValue)
checkEquatable(false, falseValue, trueValue)
}
DarwinBooleanAPI.test("Equatable/extra values") {
let trueValue: DarwinBoolean = true
let falseValue: DarwinBoolean = false
let rawValue: UInt8 = 2
let otherValue = unsafeBitCast(rawValue, to: DarwinBoolean.self)
checkEquatable(true, trueValue, otherValue)
checkEquatable(false, falseValue, otherValue)
}
DarwinBooleanAPI.test("&&") {
let trueValue: DarwinBoolean = true
let falseValue: DarwinBoolean = false
expectTrue(trueValue.boolValue && trueValue.boolValue)
expectFalse(trueValue.boolValue && falseValue.boolValue)
expectFalse(falseValue.boolValue && trueValue.boolValue)
expectFalse(falseValue.boolValue && falseValue.boolValue)
}
DarwinBooleanAPI.test("||") {
let trueValue: DarwinBoolean = true
let falseValue: DarwinBoolean = false
expectTrue(trueValue.boolValue || trueValue.boolValue)
expectTrue(trueValue.boolValue || falseValue.boolValue)
expectTrue(falseValue.boolValue || trueValue.boolValue)
expectFalse(falseValue.boolValue || falseValue.boolValue)
}
var DarwinIoctlConstants = TestSuite("DarwinIoctlConstants")
DarwinIoctlConstants.test("tty ioctl constants availability") {
let aConstant = TIOCGWINSZ
}
runAllTests()
|