|
2 | 2 |
|
3 | 3 | func NSLog(_ format: String, _ args: CVarArg...) {}
|
4 | 4 | func NSLogv(_ format: String, _ args: CVaListPointer) {}
|
| 5 | +func getVaList(_ args: [CVarArg]) -> CVaListPointer { return CVaListPointer(_fromUnsafeMutablePointer: UnsafeMutablePointer(bitPattern: 0)!) } |
5 | 6 |
|
6 | 7 | struct OSLogType : RawRepresentable {
|
7 | 8 | static let `default` = OSLogType(rawValue: 0)
|
@@ -83,42 +84,42 @@ struct Logger {
|
83 | 84 | // --- tests ---
|
84 | 85 |
|
85 | 86 | func test1(password: String, passwordHash : String) {
|
86 |
| - print(password) // $ MISSING: hasCleartextLogging=86 |
87 |
| - print(password, separator: "") // $ MISSING: $ hasCleartextLogging=97 |
88 |
| - print("", separator: password) // $ hasCleartextLogging=88 |
89 |
| - print(password, separator: "", terminator: "") // $ MISSING: hasCleartextLogging=89 |
90 |
| - print("", separator: password, terminator: "") // $ hasCleartextLogging=90 |
91 |
| - print("", separator: "", terminator: password) // $ hasCleartextLogging=91 |
92 |
| - |
93 |
| - NSLog(password) // $ hasCleartextLogging=93 |
94 |
| - NSLog("%@", password as! CVarArg) // $ MISSING: hasCleartextLogging=94 |
95 |
| - NSLog("%@ %@", "" as! CVarArg, password as! CVarArg) // $ MISSING: hasCleartextLogging=95 |
96 |
| - NSLog("\(password)") // $ hasCleartextLogging=96 |
97 |
| - NSLogv("%@", getVaList([password as! CVarArg])) // $ MISSING: hasCleartextLogging=97 |
98 |
| - NSLogv("%@ %@", getVaList(["" as! CVarArg, password as! CVarArg])) // $ MISSING: hasCleartextLogging=98 |
| 87 | + print(password) // $ MISSING: hasCleartextLogging=87 |
| 88 | + print(password, separator: "") // $ MISSING: $ hasCleartextLogging=88 |
| 89 | + print("", separator: password) // $ hasCleartextLogging=89 |
| 90 | + print(password, separator: "", terminator: "") // $ MISSING: hasCleartextLogging=90 |
| 91 | + print("", separator: password, terminator: "") // $ hasCleartextLogging=91 |
| 92 | + print("", separator: "", terminator: password) // $ hasCleartextLogging=92 |
| 93 | + |
| 94 | + NSLog(password) // $ hasCleartextLogging=94 |
| 95 | + NSLog("%@", password as! CVarArg) // $ MISSING: hasCleartextLogging=95 |
| 96 | + NSLog("%@ %@", "" as! CVarArg, password as! CVarArg) // $ MISSING: hasCleartextLogging=96 |
| 97 | + NSLog("\(password)") // $ hasCleartextLogging=97 |
| 98 | + NSLogv("%@", getVaList([password as! CVarArg])) // $ MISSING: hasCleartextLogging=98 |
| 99 | + NSLogv("%@ %@", getVaList(["" as! CVarArg, password as! CVarArg])) // $ MISSING: hasCleartextLogging=99 |
99 | 100 |
|
100 | 101 | let bankAccount: Int = 0
|
101 | 102 | let log = Logger()
|
102 | 103 | // These MISSING test cases will be fixed when we properly generate the CFG around autoclosures.
|
103 | 104 | log.log("\(password)") // Safe
|
104 | 105 | log.log("\(password, privacy: .auto)") // Safe
|
105 | 106 | log.log("\(password, privacy: .private)") // Safe
|
106 |
| - log.log("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=106 |
| 107 | + log.log("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=107 |
107 | 108 | log.log("\(password, privacy: .sensitive)") // Safe
|
108 |
| - log.log("\(bankAccount)") // $ MISSING: hasCleartextLogging=108 |
109 |
| - log.log("\(bankAccount, privacy: .auto)") // $ MISSING: hasCleartextLogging=109 |
| 109 | + log.log("\(bankAccount)") // $ MISSING: hasCleartextLogging=109 |
| 110 | + log.log("\(bankAccount, privacy: .auto)") // $ MISSING: hasCleartextLogging=110 |
110 | 111 | log.log("\(bankAccount, privacy: .private)") // Safe
|
111 |
| - log.log("\(bankAccount, privacy: .public)") // $ MISSING: hasCleartextLogging=111 |
| 112 | + log.log("\(bankAccount, privacy: .public)") // $ MISSING: hasCleartextLogging=112 |
112 | 113 | log.log("\(bankAccount, privacy: .sensitive)") // Safe
|
113 |
| - log.log(level: .default, "\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=113 |
114 |
| - log.trace("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=114 |
115 |
| - log.debug("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=115 |
116 |
| - log.info("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=116 |
117 |
| - log.notice("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=117 |
118 |
| - log.warning("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=118 |
119 |
| - log.error("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=119 |
120 |
| - log.critical("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=120 |
121 |
| - log.fault("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=121 |
| 114 | + log.log(level: .default, "\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=114 |
| 115 | + log.trace("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=115 |
| 116 | + log.debug("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=116 |
| 117 | + log.info("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=117 |
| 118 | + log.notice("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=118 |
| 119 | + log.warning("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=119 |
| 120 | + log.error("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=120 |
| 121 | + log.critical("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=121 |
| 122 | + log.fault("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=122 |
122 | 123 | }
|
123 | 124 | /*
|
124 | 125 | class MyClass {
|
|
0 commit comments