0001 #if os(Linux) 0002 import Glibc 0003 #else 0004 import Darwin.C 0005 import Foundation 0006 #endif 0007 0008 0009 enum ANSI: String, CustomStringConvertible { 0010 case Red
Reporters.swift:41 Swift.print(ANSI.Red, name)Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:135 func colour(colour: ANSI, _ message: String) {Reporters.swift:137 print("\(indentation)\(colour)\(message)\(ANSI.Reset)")Reporters.swift:146 print(ANSI.Green, ".", ANSI.Reset, separator: "", terminator: "")Reporters.swift:146 print(ANSI.Green, ".", ANSI.Reset, separator: "", terminator: "")Reporters.swift:151 print(ANSI.Yellow, "S", ANSI.Reset, separator: "", terminator: "")Reporters.swift:151 print(ANSI.Yellow, "S", ANSI.Reset, separator: "", terminator: "")Reporters.swift:156 print(ANSI.Red, "F", ANSI.Reset, separator: "", terminator: "")Reporters.swift:156 print(ANSI.Red, "F", ANSI.Reset, separator: "", terminator: "")= "\u{001B}[0;31m" 0011 case Green
Reporters.swift:41 Swift.print(ANSI.Red, name)Reporters.swift:132 colour(.Red, "-> \(name)")Reporters.swift:156 print(ANSI.Red, "F", ANSI.Reset, separator: "", terminator: "")= "\u{001B}[0;32m" 0012 case Yellow
Reporters.swift:122 colour(.Green, "-> \(name)")Reporters.swift:146 print(ANSI.Green, ".", ANSI.Reset, separator: "", terminator: "")= "\u{001B}[0;33m" 0013 0014 case Bold
Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:127 colour(.Yellow, "-> \(name)")Reporters.swift:151 print(ANSI.Yellow, "S", ANSI.Reset, separator: "", terminator: "")= "\u{001B}[0;1m" 0015 case Reset
Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:115 colour(.Bold, "-> \(name)")= "\u{001B}[0;0m" 0016 0017 var description:String { 0018 if isatty(STDOUT_FILENO) > 0 { 0019 return rawValue 0020 } 0021 0022 return "" 0023 } 0024 } 0025 0026 0027 struct CaseFailure
Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:137 print("\(indentation)\(colour)\(message)\(ANSI.Reset)")Reporters.swift:146 print(ANSI.Green, ".", ANSI.Reset, separator: "", terminator: "")Reporters.swift:151 print(ANSI.Yellow, "S", ANSI.Reset, separator: "", terminator: "")Reporters.swift:156 print(ANSI.Red, "F", ANSI.Reset, separator: "", terminator: ""){ 0028 let position
Reporters.swift:65 var failures = [CaseFailure]()Reporters.swift:107 failures.append(CaseFailure(position: position + [name], failure: failure)): [String] 0029 let failure
Reporters.swift:32 self.position = positionReporters.swift:40 let name = failure.position.joinWithSeparator(" "): FailureType 0030 0031 init
Reporters.swift:33 self.failure = failureReporters.swift:42 let file = "\(failure.failure.file):\(failure.failure.line)"Reporters.swift:42 let file = "\(failure.failure.file):\(failure.failure.line)"Reporters.swift:43 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n")Reporters.swift:46 if let contents = try? NSString(contentsOfFile: failure.failure.file, encoding: NSUTF8StringEncoding) as String {Reporters.swift:48 let line = lines[failure.failure.line - 1](position: [String], failure: FailureType) { 0032 self.position = position 0033 self.failure = failure 0034 } 0035 } 0036 0037 extension CollectionType where Generator.Element == CaseFailure { 0038 func print
Reporters.swift:107 failures.append(CaseFailure(position: position + [name], failure: failure))() { 0039 for failure in self { 0040 let name = failure.position.joinWithSeparator(" ") 0041 Swift.print(ANSI.Red, name) 0042 let file = "\(failure.failure.file):\(failure.failure.line)" 0043 Swift.print(" \(ANSI.Bold)\(file)\(ANSI.Reset) \(ANSI.Yellow)\(failure.failure.reason)\(ANSI.Reset)\n") 0044 0045 #if !os(Linux) 0046 if let contents = try? NSString(contentsOfFile: failure.failure.file, encoding: NSUTF8StringEncoding) as String { 0047 let lines = contents.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) 0048 let line = lines[failure.failure.line - 1] 0049 let trimmedLine = line.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) 0050 Swift.print(" ```") 0051 Swift.print(" \(trimmedLine)") 0052 Swift.print(" ```") 0053 } 0054 #endif 0055 } 0056 } 0057 } 0058 0059 0060 class CountReporter
Reporters.swift:68 failures.print(): Reporter, ContextReporter { 0061 var depth
Reporters.swift:113 class StandardReporter : CountReporter {Reporters.swift:143 class DotReporter : CountReporter {Reporters.swift:168 class TapReporter : CountReporter {= 0 0062 var successes
Reporters.swift:91 ++depthReporters.swift:94 --depthReporters.swift:136 let indentation = String(count: depth * 2, repeatedValue: " " as Character)= 0 0063 var disabled
Reporters.swift:78 print("\(successes) passes\(disabledMessage) and \(failures.count) failure")Reporters.swift:80 print("\(successes) passes\(disabledMessage) and \(failures.count) failures")Reporters.swift:99 ++successes= 0 0064 var position
Reporters.swift:71 if disabled > 0 {Reporters.swift:72 disabledMessage = " \(disabled) skipped,"Reporters.swift:103 ++disabled= [String]() 0065 var failures
Reporters.swift:92 position.append(name)Reporters.swift:95 position.removeLast()Reporters.swift:107 failures.append(CaseFailure(position: position + [name], failure: failure))Reporters.swift:175 let message = (position + [name]).joinWithSeparator(" ")Reporters.swift:183 let message = (position + [name]).joinWithSeparator(" ")Reporters.swift:191 let message = (position + [name]).joinWithSeparator(" ")= [CaseFailure]() 0066 0067 func printStatus
Reporters.swift:68 failures.print()Reporters.swift:77 if failures.count == 1 {Reporters.swift:78 print("\(successes) passes\(disabledMessage) and \(failures.count) failure")Reporters.swift:80 print("\(successes) passes\(disabledMessage) and \(failures.count) failures")Reporters.swift:87 return failures.isEmptyReporters.swift:107 failures.append(CaseFailure(position: position + [name], failure: failure))() { 0068 failures.print() 0069 0070 let disabledMessage: String 0071 if disabled > 0 { 0072 disabledMessage = " \(disabled) skipped," 0073 } else { 0074 disabledMessage = "" 0075 } 0076 0077 if failures.count == 1 { 0078 print("\(successes) passes\(disabledMessage) and \(failures.count) failure") 0079 } else { 0080 print("\(successes) passes\(disabledMessage) and \(failures.count) failures") 0081 } 0082 } 0083 0084 func report(@noescape closure: ContextReporter -> ()) -> Bool { 0085 closure(self) 0086 printStatus() 0087 return failures.isEmpty 0088 } 0089 0090 func report
Reporters.swift:86 printStatus()Reporters.swift:161 super.printStatus()(name: String, @noescape closure: ContextReporter -> ()) { 0091 ++depth 0092 position.append(name) 0093 closure(self) 0094 --depth 0095 position.removeLast() 0096 } 0097 0098 func addSuccess
Reporters.swift:116 super.report(name, closure: closure)(name: String) { 0099 ++successes 0100 } 0101 0102 func addDisabled
Reporters.swift:121 super.addSuccess(name)Reporters.swift:145 super.addSuccess(name)Reporters.swift:173 super.addSuccess(name)(name: String) { 0103 ++disabled 0104 } 0105 0106 func addFailure
Reporters.swift:126 super.addDisabled(name)Reporters.swift:150 super.addDisabled(name)Reporters.swift:181 super.addDisabled(name)(name: String, failure: FailureType) { 0107 failures.append(CaseFailure(position: position + [name], failure: failure)) 0108 } 0109 } 0110 0111 0112 /// Standard reporter 0113 class StandardReporter
Reporters.swift:131 super.addFailure(name, failure: failure)Reporters.swift:155 super.addFailure(name, failure: failure)Reporters.swift:189 super.addFailure(name, failure: failure): CountReporter { 0114 override func report(name: String, @noescape closure: ContextReporter -> ()) { 0115 colour(.Bold, "-> \(name)") 0116 super.report(name, closure: closure) 0117 print("") 0118 } 0119 0120 override func addSuccess(name: String) { 0121 super.addSuccess(name) 0122 colour(.Green, "-> \(name)") 0123 } 0124 0125 override func addDisabled(name: String) { 0126 super.addDisabled(name) 0127 colour(.Yellow, "-> \(name)") 0128 } 0129 0130 override func addFailure(name: String, failure: FailureType) { 0131 super.addFailure(name, failure: failure) 0132 colour(.Red, "-> \(name)") 0133 } 0134 0135 func colour
Global.swift:29 reporter = StandardReporter()(colour: ANSI, _ message: String) { 0136 let indentation = String(count: depth * 2, repeatedValue: " " as Character) 0137 print("\(indentation)\(colour)\(message)\(ANSI.Reset)") 0138 } 0139 } 0140 0141 0142 /// Simple reporter that outputs minimal . F and S. 0143 class DotReporter
Reporters.swift:115 colour(.Bold, "-> \(name)")Reporters.swift:122 colour(.Green, "-> \(name)")Reporters.swift:127 colour(.Yellow, "-> \(name)")Reporters.swift:132 colour(.Red, "-> \(name)"): CountReporter { 0144 override func addSuccess(name: String) { 0145 super.addSuccess(name) 0146 print(ANSI.Green, ".", ANSI.Reset, separator: "", terminator: "") 0147 } 0148 0149 override func addDisabled(name: String) { 0150 super.addDisabled(name) 0151 print(ANSI.Yellow, "S", ANSI.Reset, separator: "", terminator: "") 0152 } 0153 0154 override func addFailure(name: String, failure: FailureType) { 0155 super.addFailure(name, failure: failure) 0156 print(ANSI.Red, "F", ANSI.Reset, separator: "", terminator: "") 0157 } 0158 0159 override func printStatus() { 0160 print("\n") 0161 super.printStatus() 0162 } 0163 } 0164 0165 0166 /// Test Anything Protocol compatible reporter 0167 /// http://testanything.org 0168 class TapReporter
Global.swift:27 reporter = DotReporter(): CountReporter { 0169 var count
Global.swift:25 reporter = TapReporter()= 0 0170 0171 override func addSuccess(name: String) { 0172 ++count 0173 super.addSuccess(name) 0174 0175 let message = (position + [name]).joinWithSeparator(" ") 0176 print("ok \(count) - \(message)") 0177 } 0178 0179 override func addDisabled(name: String) { 0180 ++count 0181 super.addDisabled(name) 0182 0183 let message = (position + [name]).joinWithSeparator(" ") 0184 print("ok \(count) - # skip \(message)") 0185 } 0186 0187 override func addFailure(name: String, failure: FailureType) { 0188 ++count 0189 super.addFailure(name, failure: failure) 0190 0191 let message = (position + [name]).joinWithSeparator(" ") 0192 print("not ok \(count) - \(message)") 0193 print("# \(failure.reason) from \(failure.file):\(failure.line)") 0194 } 0195 0196 override func printStatus() { 0197 print("\(min(1, count))..\(count)") 0198 } 0199 } 0200
Reporters.swift:172 ++countReporters.swift:176 print("ok \(count) - \(message)")Reporters.swift:180 ++countReporters.swift:184 print("ok \(count) - # skip \(message)")Reporters.swift:188 ++countReporters.swift:192 print("not ok \(count) - \(message)")Reporters.swift:197 print("\(min(1, count))..\(count)")Reporters.swift:197 print("\(min(1, count))..\(count)")