Skip to content

Commit 096757d

Browse files
committed
C#: Add CFG tests for accessor calls
1 parent 26a0f4b commit 096757d

File tree

9 files changed

+1517
-0
lines changed

9 files changed

+1517
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
class AccessorCalls
2+
{
3+
int Field;
4+
int Prop { get; set; }
5+
int this[int i] { get => i; set { } }
6+
public delegate void EventHandler();
7+
event EventHandler Event { add { } remove { } }
8+
AccessorCalls x;
9+
10+
void M1(EventHandler e)
11+
{
12+
this.Field = this.Field;
13+
this.Prop = this.Prop;
14+
this[0] = this[1];
15+
this.Event += e;
16+
this.Event -= e;
17+
}
18+
19+
void M2(EventHandler e)
20+
{
21+
this.x.Field = this.x.Field;
22+
this.x.Prop = this.x.Prop;
23+
this.x[0] = this.x[1];
24+
this.x.Event += e;
25+
this.x.Event -= e;
26+
}
27+
28+
void M3()
29+
{
30+
this.Field++;
31+
this.Prop++;
32+
this[0]++;
33+
}
34+
35+
void M4()
36+
{
37+
this.x.Field++;
38+
this.x.Prop++;
39+
this.x[0]++;
40+
}
41+
42+
void M5()
43+
{
44+
this.Field += this.Field;
45+
this.Prop += this.Prop;
46+
this[0] += this[0];
47+
}
48+
49+
void M6()
50+
{
51+
this.x.Field += this.x.Field;
52+
this.x.Prop += this.x.Prop;
53+
this.x[0] += this.x[0];
54+
}
55+
56+
void M7(int i)
57+
{
58+
(this.Field, this.Prop, (i, this[0])) = (this.Field, this.Prop, (0, this[1]));
59+
}
60+
61+
void M8(int i)
62+
{
63+
(this.x.Field, this.x.Prop, (i, this.x[0])) = (this.x.Field, this.x.Prop, (0, this.x[1]));
64+
}
65+
}

csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
| AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | exit get_Item | 3 |
2+
| AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | exit set_Item | 3 |
3+
| AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | exit add_Event | 3 |
4+
| AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | exit remove_Event | 3 |
5+
| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | exit M1 | 33 |
6+
| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | exit M2 | 41 |
7+
| AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | exit M3 | 16 |
8+
| AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | exit M4 | 19 |
9+
| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | exit M5 | 33 |
10+
| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 42 |
11+
| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 25 |
12+
| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 31 |
113
| ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | exit M1 | 4 |
214
| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | exit M2 | 5 |
315
| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | exit M3 | 6 |

csharp/ql/test/library-tests/controlflow/graph/BasicBlockDominance.expected

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
| post | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | enter get_Item |
2+
| post | AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | enter set_Item |
3+
| post | AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | enter add_Event |
4+
| post | AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | enter remove_Event |
5+
| post | AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | enter M1 |
6+
| post | AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | enter M2 |
7+
| post | AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | enter M3 |
8+
| post | AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | enter M4 |
9+
| post | AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | enter M5 |
10+
| post | AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | enter M6 |
11+
| post | AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | enter M7 |
12+
| post | AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | enter M8 |
113
| post | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | enter M1 |
214
| post | ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | enter M2 |
315
| post | ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | enter M3 |
@@ -1322,6 +1334,18 @@
13221334
| post | cflow.cs:428:70:428:71 | "" | cflow.cs:426:10:426:10 | enter M |
13231335
| post | cflow.cs:428:70:428:71 | "" | cflow.cs:428:56:428:56 | access to parameter s |
13241336
| post | cflow.cs:428:70:428:71 | "" | cflow.cs:428:70:428:71 | "" |
1337+
| pre | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | enter get_Item |
1338+
| pre | AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | enter set_Item |
1339+
| pre | AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | enter add_Event |
1340+
| pre | AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | enter remove_Event |
1341+
| pre | AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | enter M1 |
1342+
| pre | AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | enter M2 |
1343+
| pre | AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | enter M3 |
1344+
| pre | AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | enter M4 |
1345+
| pre | AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | enter M5 |
1346+
| pre | AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | enter M6 |
1347+
| pre | AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | enter M7 |
1348+
| pre | AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | enter M8 |
13251349
| pre | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | enter M1 |
13261350
| pre | ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | enter M2 |
13271351
| pre | ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | enter M3 |

0 commit comments

Comments
 (0)