Skip to content

Commit 9f24b02

Browse files
committed
C#: Move StringBuilder dataflow tests to separate file
1 parent 3431fcf commit 9f24b02

File tree

7 files changed

+377
-361
lines changed

7 files changed

+377
-361
lines changed

csharp/ql/test/library-tests/dataflow/global/DataFlow.expected

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,21 @@
5151
| GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 |
5252
| GlobalDataFlow.cs:404:15:404:20 | access to local variable sink11 |
5353
| GlobalDataFlow.cs:427:41:427:46 | access to local variable sink20 |
54-
| GlobalDataFlow.cs:478:15:478:20 | access to local variable sink45 |
55-
| GlobalDataFlow.cs:486:32:486:32 | access to parameter s |
56-
| GlobalDataFlow.cs:508:15:508:22 | access to field field |
57-
| GlobalDataFlow.cs:509:15:509:22 | access to field field |
58-
| GlobalDataFlow.cs:515:15:515:22 | access to field field |
59-
| GlobalDataFlow.cs:516:15:516:22 | access to field field |
60-
| GlobalDataFlow.cs:517:15:517:22 | access to field field |
61-
| GlobalDataFlow.cs:526:15:526:21 | access to field field |
54+
| GlobalDataFlow.cs:461:15:461:20 | access to local variable sink45 |
55+
| GlobalDataFlow.cs:469:32:469:32 | access to parameter s |
56+
| GlobalDataFlow.cs:491:15:491:22 | access to field field |
57+
| GlobalDataFlow.cs:492:15:492:22 | access to field field |
58+
| GlobalDataFlow.cs:498:15:498:22 | access to field field |
59+
| GlobalDataFlow.cs:499:15:499:22 | access to field field |
60+
| GlobalDataFlow.cs:500:15:500:22 | access to field field |
61+
| GlobalDataFlow.cs:509:15:509:21 | access to field field |
62+
| GlobalDataFlow.cs:516:15:516:21 | access to field field |
63+
| GlobalDataFlow.cs:517:15:517:21 | access to field field |
64+
| GlobalDataFlow.cs:531:15:531:21 | access to field field |
65+
| GlobalDataFlow.cs:532:15:532:21 | access to field field |
6266
| GlobalDataFlow.cs:533:15:533:21 | access to field field |
63-
| GlobalDataFlow.cs:534:15:534:21 | access to field field |
64-
| GlobalDataFlow.cs:548:15:548:21 | access to field field |
65-
| GlobalDataFlow.cs:549:15:549:21 | access to field field |
66-
| GlobalDataFlow.cs:550:15:550:21 | access to field field |
67-
| GlobalDataFlow.cs:556:15:556:22 | access to field field |
68-
| GlobalDataFlow.cs:564:15:564:21 | access to field field |
67+
| GlobalDataFlow.cs:539:15:539:22 | access to field field |
68+
| GlobalDataFlow.cs:547:15:547:21 | access to field field |
6969
| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x |
7070
| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x |
7171
| Splitting.cs:11:19:11:19 | access to local variable x |

csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected

Lines changed: 134 additions & 134 deletions
Large diffs are not rendered by default.

csharp/ql/test/library-tests/dataflow/global/GetAnOutNode.expected

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -147,29 +147,29 @@
147147
| GlobalDataFlow.cs:249:24:249:34 | access to property Result | normal | GlobalDataFlow.cs:249:24:249:34 | access to property Result |
148148
| GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc<T,T> | normal | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc<T,T> |
149149
| GlobalDataFlow.cs:389:16:389:19 | delegate call | normal | GlobalDataFlow.cs:389:16:389:19 | delegate call |
150-
| GlobalDataFlow.cs:448:9:448:20 | call to method Append | normal | GlobalDataFlow.cs:448:9:448:20 | call to method Append |
151-
| GlobalDataFlow.cs:453:18:453:36 | object creation of type StringBuilder | normal | GlobalDataFlow.cs:453:18:453:36 | object creation of type StringBuilder |
152-
| GlobalDataFlow.cs:455:22:455:34 | call to method ToString | normal | GlobalDataFlow.cs:455:22:455:34 | call to method ToString |
153-
| GlobalDataFlow.cs:458:9:458:18 | call to method Clear | normal | GlobalDataFlow.cs:458:9:458:18 | call to method Clear |
154-
| GlobalDataFlow.cs:459:23:459:35 | call to method ToString | normal | GlobalDataFlow.cs:459:23:459:35 | call to method ToString |
155-
| GlobalDataFlow.cs:465:22:465:65 | call to method Join | normal | GlobalDataFlow.cs:465:22:465:65 | call to method Join |
156-
| GlobalDataFlow.cs:468:23:468:65 | call to method Join | normal | GlobalDataFlow.cs:468:23:468:65 | call to method Join |
157-
| GlobalDataFlow.cs:474:20:474:49 | call to method Run<String> | normal | GlobalDataFlow.cs:474:20:474:49 | call to method Run<String> |
158-
| GlobalDataFlow.cs:475:25:475:50 | call to method ConfigureAwait | normal | GlobalDataFlow.cs:475:25:475:50 | call to method ConfigureAwait |
159-
| GlobalDataFlow.cs:476:23:476:44 | call to method GetAwaiter | normal | GlobalDataFlow.cs:476:23:476:44 | call to method GetAwaiter |
160-
| GlobalDataFlow.cs:477:22:477:40 | call to method GetResult | normal | GlobalDataFlow.cs:477:22:477:40 | call to method GetResult |
161-
| GlobalDataFlow.cs:505:18:505:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:505:18:505:34 | object creation of type SimpleClass |
162-
| GlobalDataFlow.cs:506:18:506:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:506:18:506:34 | object creation of type SimpleClass |
163-
| GlobalDataFlow.cs:511:18:511:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:511:18:511:34 | object creation of type SimpleClass |
164-
| GlobalDataFlow.cs:512:18:512:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:512:18:512:34 | object creation of type SimpleClass |
165-
| GlobalDataFlow.cs:513:18:513:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:513:18:513:34 | object creation of type SimpleClass |
166-
| GlobalDataFlow.cs:524:17:524:36 | object creation of type SubSimpleClass | normal | GlobalDataFlow.cs:524:17:524:36 | object creation of type SubSimpleClass |
167-
| GlobalDataFlow.cs:531:17:531:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:531:17:531:33 | object creation of type SimpleClass |
168-
| GlobalDataFlow.cs:539:17:539:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:539:17:539:33 | object creation of type SimpleClass |
169-
| GlobalDataFlow.cs:540:17:540:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:540:17:540:33 | object creation of type SimpleClass |
170-
| GlobalDataFlow.cs:541:17:541:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:541:17:541:33 | object creation of type SimpleClass |
171-
| GlobalDataFlow.cs:562:17:562:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:562:17:562:33 | object creation of type SimpleClass |
172-
| GlobalDataFlow.cs:575:44:575:47 | delegate call | normal | GlobalDataFlow.cs:575:44:575:47 | delegate call |
150+
| GlobalDataFlow.cs:448:22:448:65 | call to method Join | normal | GlobalDataFlow.cs:448:22:448:65 | call to method Join |
151+
| GlobalDataFlow.cs:451:23:451:65 | call to method Join | normal | GlobalDataFlow.cs:451:23:451:65 | call to method Join |
152+
| GlobalDataFlow.cs:457:20:457:49 | call to method Run<String> | normal | GlobalDataFlow.cs:457:20:457:49 | call to method Run<String> |
153+
| GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait | normal | GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait |
154+
| GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter | normal | GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter |
155+
| GlobalDataFlow.cs:460:22:460:40 | call to method GetResult | normal | GlobalDataFlow.cs:460:22:460:40 | call to method GetResult |
156+
| GlobalDataFlow.cs:488:18:488:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:488:18:488:34 | object creation of type SimpleClass |
157+
| GlobalDataFlow.cs:489:18:489:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:489:18:489:34 | object creation of type SimpleClass |
158+
| GlobalDataFlow.cs:494:18:494:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:494:18:494:34 | object creation of type SimpleClass |
159+
| GlobalDataFlow.cs:495:18:495:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:495:18:495:34 | object creation of type SimpleClass |
160+
| GlobalDataFlow.cs:496:18:496:34 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:496:18:496:34 | object creation of type SimpleClass |
161+
| GlobalDataFlow.cs:507:17:507:36 | object creation of type SubSimpleClass | normal | GlobalDataFlow.cs:507:17:507:36 | object creation of type SubSimpleClass |
162+
| GlobalDataFlow.cs:514:17:514:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:514:17:514:33 | object creation of type SimpleClass |
163+
| GlobalDataFlow.cs:522:17:522:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:522:17:522:33 | object creation of type SimpleClass |
164+
| GlobalDataFlow.cs:523:17:523:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:523:17:523:33 | object creation of type SimpleClass |
165+
| GlobalDataFlow.cs:524:17:524:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:524:17:524:33 | object creation of type SimpleClass |
166+
| GlobalDataFlow.cs:545:17:545:33 | object creation of type SimpleClass | normal | GlobalDataFlow.cs:545:17:545:33 | object creation of type SimpleClass |
167+
| GlobalDataFlow.cs:558:44:558:47 | delegate call | normal | GlobalDataFlow.cs:558:44:558:47 | delegate call |
168+
| GlobalDataFlowStringBuilder.cs:19:9:19:20 | call to method Append | normal | GlobalDataFlowStringBuilder.cs:19:9:19:20 | call to method Append |
169+
| GlobalDataFlowStringBuilder.cs:24:18:24:36 | object creation of type StringBuilder | normal | GlobalDataFlowStringBuilder.cs:24:18:24:36 | object creation of type StringBuilder |
170+
| GlobalDataFlowStringBuilder.cs:26:22:26:34 | call to method ToString | normal | GlobalDataFlowStringBuilder.cs:26:22:26:34 | call to method ToString |
171+
| GlobalDataFlowStringBuilder.cs:29:9:29:18 | call to method Clear | normal | GlobalDataFlowStringBuilder.cs:29:9:29:18 | call to method Clear |
172+
| GlobalDataFlowStringBuilder.cs:30:23:30:35 | call to method ToString | normal | GlobalDataFlowStringBuilder.cs:30:23:30:35 | call to method ToString |
173173
| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return<String> | normal | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return<String> |
174174
| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return<String> | normal | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return<String> |
175175
| Splitting.cs:20:22:20:30 | call to method Return<String> | normal | Splitting.cs:20:22:20:30 | call to method Return<String> |

csharp/ql/test/library-tests/dataflow/global/GlobalDataFlow.cs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -443,23 +443,6 @@ string NonOutProperty
443443
get { return ""; }
444444
}
445445

446-
static void AppendToStringBuilder(StringBuilder sb, string s)
447-
{
448-
sb.Append(s);
449-
}
450-
451-
void TestStringBuilderFlow()
452-
{
453-
var sb = new StringBuilder();
454-
AppendToStringBuilder(sb, "taint source");
455-
var sink43 = sb.ToString();
456-
Check(sink43);
457-
458-
sb.Clear();
459-
var nonSink = sb.ToString();
460-
Check(nonSink);
461-
}
462-
463446
void TestStringFlow()
464447
{
465448
var sink44 = string.Join(",", "whatever", "taint source");
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System;
2+
using System.Text;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
7+
/// <summary>
8+
/// All (tainted) sinks are named `sink[Param|Field|Property]N`, for some N, and all
9+
/// non-sinks are named `nonSink[Param|Field|Property]N`, for some N.
10+
/// Both sinks and non-sinks are passed to the method `Check` for convenience in the
11+
/// test query.
12+
/// </summary>
13+
public class DataFlowStringBuilder
14+
{
15+
static void Check<T>(T x) { }
16+
17+
static void AppendToStringBuilder(StringBuilder sb, string s)
18+
{
19+
sb.Append(s);
20+
}
21+
22+
void TestStringBuilderFlow()
23+
{
24+
var sb = new StringBuilder();
25+
AppendToStringBuilder(sb, "taint source");
26+
var sink43 = sb.ToString();
27+
Check(sink43);
28+
29+
sb.Clear();
30+
var nonSink = sb.ToString();
31+
Check(nonSink);
32+
}
33+
}

csharp/ql/test/library-tests/dataflow/global/TaintTracking.expected

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,23 @@
5656
| GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 |
5757
| GlobalDataFlow.cs:404:15:404:20 | access to local variable sink11 |
5858
| GlobalDataFlow.cs:427:41:427:46 | access to local variable sink20 |
59-
| GlobalDataFlow.cs:456:15:456:20 | access to local variable sink43 |
60-
| GlobalDataFlow.cs:466:15:466:20 | access to local variable sink44 |
61-
| GlobalDataFlow.cs:478:15:478:20 | access to local variable sink45 |
62-
| GlobalDataFlow.cs:486:32:486:32 | access to parameter s |
63-
| GlobalDataFlow.cs:508:15:508:22 | access to field field |
64-
| GlobalDataFlow.cs:509:15:509:22 | access to field field |
65-
| GlobalDataFlow.cs:515:15:515:22 | access to field field |
66-
| GlobalDataFlow.cs:516:15:516:22 | access to field field |
67-
| GlobalDataFlow.cs:517:15:517:22 | access to field field |
68-
| GlobalDataFlow.cs:526:15:526:21 | access to field field |
59+
| GlobalDataFlow.cs:449:15:449:20 | access to local variable sink44 |
60+
| GlobalDataFlow.cs:461:15:461:20 | access to local variable sink45 |
61+
| GlobalDataFlow.cs:469:32:469:32 | access to parameter s |
62+
| GlobalDataFlow.cs:491:15:491:22 | access to field field |
63+
| GlobalDataFlow.cs:492:15:492:22 | access to field field |
64+
| GlobalDataFlow.cs:498:15:498:22 | access to field field |
65+
| GlobalDataFlow.cs:499:15:499:22 | access to field field |
66+
| GlobalDataFlow.cs:500:15:500:22 | access to field field |
67+
| GlobalDataFlow.cs:509:15:509:21 | access to field field |
68+
| GlobalDataFlow.cs:516:15:516:21 | access to field field |
69+
| GlobalDataFlow.cs:517:15:517:21 | access to field field |
70+
| GlobalDataFlow.cs:531:15:531:21 | access to field field |
71+
| GlobalDataFlow.cs:532:15:532:21 | access to field field |
6972
| GlobalDataFlow.cs:533:15:533:21 | access to field field |
70-
| GlobalDataFlow.cs:534:15:534:21 | access to field field |
71-
| GlobalDataFlow.cs:548:15:548:21 | access to field field |
72-
| GlobalDataFlow.cs:549:15:549:21 | access to field field |
73-
| GlobalDataFlow.cs:550:15:550:21 | access to field field |
74-
| GlobalDataFlow.cs:556:15:556:22 | access to field field |
75-
| GlobalDataFlow.cs:564:15:564:21 | access to field field |
73+
| GlobalDataFlow.cs:539:15:539:22 | access to field field |
74+
| GlobalDataFlow.cs:547:15:547:21 | access to field field |
75+
| GlobalDataFlowStringBuilder.cs:27:15:27:20 | access to local variable sink43 |
7676
| Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x |
7777
| Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x |
7878
| Splitting.cs:11:19:11:19 | access to local variable x |

0 commit comments

Comments
 (0)