Skip to content

Commit d874889

Browse files
committed
unified: More tests
1 parent 08172c7 commit d874889

2 files changed

Lines changed: 53 additions & 0 deletions

File tree

unified/ql/test/library-tests/dataflow/calls.swift

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,27 @@ func t2() {
1111
}
1212
sink(target()) // $ hasValueFlow=t2.1
1313
}
14+
15+
func t3() {
16+
func target(_ x: String) {
17+
sink(x) // $ hasValueFlow=t3.1
18+
}
19+
target(source("t3.1"))
20+
}
21+
22+
23+
func t4() {
24+
func target(x: String) {
25+
return x + "foo";
26+
}
27+
sink(target(source("t4.1"))); // $ hasTaintFlow=t4.1
28+
sink(target(source("t4.2"))); // $ hasTaintFlow=t4.2
29+
sink(target("safe"));
30+
}
31+
32+
func t5() {
33+
func target(name x: String) {
34+
sink(x) // $ hasValueFlow=t5.1
35+
}
36+
target(name: source("t5.1"))
37+
}

unified/ql/test/library-tests/dataflow/test.expected

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@ edges
33
| calls.swift:2:17:2:17 | x | calls.swift:3:14:3:14 | x | provenance | |
44
| calls.swift:5:12:5:25 | CallExpr | calls.swift:2:17:2:17 | x | provenance | |
55
| calls.swift:10:16:10:29 | CallExpr | calls.swift:12:10:12:17 | CallExpr | provenance | |
6+
| calls.swift:16:19:16:19 | x | calls.swift:17:14:17:14 | x | provenance | |
7+
| calls.swift:19:12:19:25 | CallExpr | calls.swift:16:19:16:19 | x | provenance | |
8+
| calls.swift:24:17:24:17 | x | calls.swift:25:16:25:16 | x | provenance | |
9+
| calls.swift:25:16:25:16 | x | calls.swift:25:16:25:24 | BinaryExpr | provenance | |
10+
| calls.swift:27:17:27:30 | CallExpr | calls.swift:24:17:24:17 | x | provenance | |
11+
| calls.swift:27:17:27:30 | CallExpr | calls.swift:27:10:27:31 | CallExpr | provenance | |
12+
| calls.swift:28:17:28:30 | CallExpr | calls.swift:24:17:24:17 | x | provenance | |
13+
| calls.swift:28:17:28:30 | CallExpr | calls.swift:28:10:28:31 | CallExpr | provenance | |
14+
| calls.swift:33:22:33:22 | x | calls.swift:34:14:34:14 | x | provenance | |
15+
| calls.swift:36:12:36:31 | CallExpr | calls.swift:33:22:33:22 | x | provenance | |
616
| implicit-self.swift:11:9:11:12 | [post] self [x] | implicit-self.swift:12:14:12:17 | self [x] | provenance | |
717
| implicit-self.swift:11:9:11:14 | MemberAccessExpr | implicit-self.swift:11:9:11:12 | [post] self [x] | provenance | |
818
| implicit-self.swift:11:18:11:31 | CallExpr | implicit-self.swift:11:9:11:14 | MemberAccessExpr | provenance | |
@@ -149,6 +159,19 @@ nodes
149159
| calls.swift:5:12:5:25 | CallExpr | semmle.label | CallExpr |
150160
| calls.swift:10:16:10:29 | CallExpr | semmle.label | CallExpr |
151161
| calls.swift:12:10:12:17 | CallExpr | semmle.label | CallExpr |
162+
| calls.swift:16:19:16:19 | x | semmle.label | x |
163+
| calls.swift:17:14:17:14 | x | semmle.label | x |
164+
| calls.swift:19:12:19:25 | CallExpr | semmle.label | CallExpr |
165+
| calls.swift:24:17:24:17 | x | semmle.label | x |
166+
| calls.swift:25:16:25:16 | x | semmle.label | x |
167+
| calls.swift:25:16:25:24 | BinaryExpr | semmle.label | BinaryExpr |
168+
| calls.swift:27:10:27:31 | CallExpr | semmle.label | CallExpr |
169+
| calls.swift:27:17:27:30 | CallExpr | semmle.label | CallExpr |
170+
| calls.swift:28:10:28:31 | CallExpr | semmle.label | CallExpr |
171+
| calls.swift:28:17:28:30 | CallExpr | semmle.label | CallExpr |
172+
| calls.swift:33:22:33:22 | x | semmle.label | x |
173+
| calls.swift:34:14:34:14 | x | semmle.label | x |
174+
| calls.swift:36:12:36:31 | CallExpr | semmle.label | CallExpr |
152175
| implicit-self.swift:11:9:11:12 | [post] self [x] | semmle.label | [post] self [x] |
153176
| implicit-self.swift:11:9:11:14 | MemberAccessExpr | semmle.label | MemberAccessExpr |
154177
| implicit-self.swift:11:18:11:31 | CallExpr | semmle.label | CallExpr |
@@ -330,10 +353,16 @@ nodes
330353
| test.swift:165:10:165:10 | a | semmle.label | a |
331354
| test.swift:166:10:166:10 | b | semmle.label | b |
332355
subpaths
356+
| calls.swift:27:17:27:30 | CallExpr | calls.swift:24:17:24:17 | x | calls.swift:25:16:25:24 | BinaryExpr | calls.swift:27:10:27:31 | CallExpr |
357+
| calls.swift:28:17:28:30 | CallExpr | calls.swift:24:17:24:17 | x | calls.swift:25:16:25:24 | BinaryExpr | calls.swift:28:10:28:31 | CallExpr |
333358
testFailures
334359
#select
335360
| calls.swift:3:14:3:14 | x | calls.swift:5:12:5:25 | CallExpr | calls.swift:3:14:3:14 | x | $@ | calls.swift:5:12:5:25 | CallExpr | CallExpr |
336361
| calls.swift:12:10:12:17 | CallExpr | calls.swift:10:16:10:29 | CallExpr | calls.swift:12:10:12:17 | CallExpr | $@ | calls.swift:10:16:10:29 | CallExpr | CallExpr |
362+
| calls.swift:17:14:17:14 | x | calls.swift:19:12:19:25 | CallExpr | calls.swift:17:14:17:14 | x | $@ | calls.swift:19:12:19:25 | CallExpr | CallExpr |
363+
| calls.swift:27:10:27:31 | CallExpr | calls.swift:27:17:27:30 | CallExpr | calls.swift:27:10:27:31 | CallExpr | $@ | calls.swift:27:17:27:30 | CallExpr | CallExpr |
364+
| calls.swift:28:10:28:31 | CallExpr | calls.swift:28:17:28:30 | CallExpr | calls.swift:28:10:28:31 | CallExpr | $@ | calls.swift:28:17:28:30 | CallExpr | CallExpr |
365+
| calls.swift:34:14:34:14 | x | calls.swift:36:12:36:31 | CallExpr | calls.swift:34:14:34:14 | x | $@ | calls.swift:36:12:36:31 | CallExpr | CallExpr |
337366
| implicit-self.swift:12:14:12:19 | MemberAccessExpr | implicit-self.swift:11:18:11:31 | CallExpr | implicit-self.swift:12:14:12:19 | MemberAccessExpr | $@ | implicit-self.swift:11:18:11:31 | CallExpr | CallExpr |
338367
| implicit-self.swift:18:14:18:14 | x | implicit-self.swift:17:13:17:26 | CallExpr | implicit-self.swift:18:14:18:14 | x | $@ | implicit-self.swift:17:13:17:26 | CallExpr | CallExpr |
339368
| implicit-self.swift:24:14:24:19 | MemberAccessExpr | implicit-self.swift:23:13:23:26 | CallExpr | implicit-self.swift:24:14:24:19 | MemberAccessExpr | $@ | implicit-self.swift:23:13:23:26 | CallExpr | CallExpr |

0 commit comments

Comments
 (0)