Skip to content

Commit 3138918

Browse files
committed
add test for promise inside Promise.all
1 parent dd3342b commit 3138918

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

javascript/ql/test/library-tests/Promises/flow2.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,8 @@
1414
var [clean2, tainted2] = await Promise.resolve(Promise.all(["clean", source]));
1515
sink(clean2); // OK - but flagged by taint-tracking
1616
sink(tainted2); // NOT OK
17+
18+
var [clean2, tainted2] = await Promise.all(["clean", Promise.resolve(source)]);
19+
sink(clean2); // OK - but flagged by taint-tracking
20+
sink(tainted2); // NOT OK - but only flagged by taint-tracking
1721
});

javascript/ql/test/library-tests/Promises/tests.expected

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ test_ResolvedPromiseDefinition
66
| flow2.js:14:33:14:79 | Promise ... urce])) | flow2.js:14:49:14:78 | Promise ... ource]) |
77
| flow2.js:14:49:14:78 | Promise ... ource]) | flow2.js:14:62:14:68 | "clean" |
88
| flow2.js:14:49:14:78 | Promise ... ource]) | flow2.js:14:71:14:76 | source |
9+
| flow2.js:18:33:18:79 | Promise ... urce)]) | flow2.js:18:46:18:52 | "clean" |
10+
| flow2.js:18:33:18:79 | Promise ... urce)]) | flow2.js:18:55:18:77 | Promise ... source) |
11+
| flow2.js:18:55:18:77 | Promise ... source) | flow2.js:18:71:18:76 | source |
912
| flow.js:4:11:4:33 | Promise ... source) | flow.js:4:27:4:32 | source |
1013
| flow.js:20:2:20:24 | Promise ... source) | flow.js:20:18:20:23 | source |
1114
| flow.js:22:2:22:24 | Promise ... source) | flow.js:22:18:22:23 | source |
@@ -234,6 +237,8 @@ exclusiveTaintFlow
234237
| flow2.js:2:15:2:22 | "source" | flow2.js:7:8:7:13 | arr[1] |
235238
| flow2.js:2:15:2:22 | "source" | flow2.js:11:7:11:11 | clean |
236239
| flow2.js:2:15:2:22 | "source" | flow2.js:15:7:15:12 | clean2 |
240+
| flow2.js:2:15:2:22 | "source" | flow2.js:19:7:19:12 | clean2 |
241+
| flow2.js:2:15:2:22 | "source" | flow2.js:20:7:20:14 | tainted2 |
237242
| interflow.js:3:18:3:25 | "source" | interflow.js:18:10:18:14 | error |
238243
typetrack
239244
| flow2.js:4:2:4:31 | Promise ... lean"]) | flow2.js:4:14:4:30 | [source, "clean"] | copy $PromiseResolveField$ |
@@ -247,6 +252,9 @@ typetrack
247252
| flow2.js:14:33:14:79 | Promise ... urce])) | flow2.js:14:49:14:78 | Promise ... ource]) | store $PromiseResolveField$ |
248253
| flow2.js:14:49:14:78 | Promise ... ource]) | flow2.js:14:61:14:77 | ["clean", source] | copy $PromiseResolveField$ |
249254
| flow2.js:14:49:14:78 | Promise ... ource]) | flow2.js:14:61:14:77 | ["clean", source] | store $PromiseResolveField$ |
255+
| flow2.js:18:27:18:79 | await P ... urce)]) | flow2.js:18:33:18:79 | Promise ... urce)]) | load $PromiseResolveField$ |
256+
| flow2.js:18:33:18:79 | Promise ... urce)]) | flow2.js:18:45:18:78 | ["clean ... ource)] | copy $PromiseResolveField$ |
257+
| flow2.js:18:33:18:79 | Promise ... urce)]) | flow2.js:18:45:18:78 | ["clean ... ource)] | store $PromiseResolveField$ |
250258
| flow.js:20:2:20:43 | Promise ... ink(x)) | flow.js:20:36:20:42 | sink(x) | copy $PromiseResolveField$ |
251259
| flow.js:20:2:20:43 | Promise ... ink(x)) | flow.js:20:36:20:42 | sink(x) | store $PromiseResolveField$ |
252260
| flow.js:20:31:20:31 | x | flow.js:20:2:20:24 | Promise ... source) | load $PromiseResolveField$ |

0 commit comments

Comments
 (0)