| // RUN: mkdir -p %t |
| // RUN: %target-clang -x c %S/Inputs/VariadicBool/variadicBool.c -c -o %t/variadicBool.o |
| // RUN: %target-build-swift -I %S/Inputs/VariadicBool/ %t/variadicBool.o %s -o %t/a.out |
| // RUN: %target-run %t/a.out |
| // REQUIRES: executable_test |
| |
| |
| import Swift |
| import StdlibUnittest |
| import StdlibCollectionUnittest |
| import VariadicBool |
| |
| func countTrues(_ count: Int, _ bools: CVarArg...) -> Int { |
| return Int(withVaList(bools) { numberOfTrues(Int32(count), $0) }) |
| } |
| |
| var BoolTestSuite = TestSuite("Bool") |
| |
| BoolTestSuite.test("AllTrues") { |
| let result = countTrues(2, true, true) |
| expectEqual(2, result) |
| } |
| |
| BoolTestSuite.test("HalfAndHalf") { |
| let result = countTrues(4, true, true, false, false) |
| expectEqual(2, result) |
| } |
| |
| BoolTestSuite.test("AllFalse") { |
| let result = countTrues(2, false, false) |
| expectEqual(0, result) |
| } |
| |
| BoolTestSuite.test("Interleaved") { |
| let result = countTrues(7, false, true, false, true, false, true, false) |
| expectEqual(3, result) |
| } |
| |
| BoolTestSuite.test("FalsePositive") { |
| let result = countTrues(7, false, true, false, true, false, true, false) |
| expectNotEqual(30, result) |
| } |
| |
| runAllTests() |