Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 17f0ac4

Browse files
committed
C#: Add more CFG assertion tests
1 parent 55d25d9 commit 17f0ac4

19 files changed

Lines changed: 3854 additions & 24 deletions
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
using System;
2+
using System.Diagnostics;
3+
using Microsoft.VisualStudio.TestTools.UnitTesting;
4+
5+
class AssertTests
6+
{
7+
void M1(bool b)
8+
{
9+
string s = b ? null : "";
10+
Debug.Assert(s != null);
11+
Console.WriteLine(s.Length);
12+
}
13+
14+
void M2(bool b)
15+
{
16+
string s = b ? null : "";
17+
Assert.IsNull(s);
18+
Console.WriteLine(s.Length);
19+
}
20+
21+
void M3(bool b)
22+
{
23+
string s = b ? null : "";
24+
Assert.IsNotNull(s);
25+
Console.WriteLine(s.Length);
26+
}
27+
28+
void M4(bool b)
29+
{
30+
string s = b ? null : "";
31+
Assert.IsTrue(s == null);
32+
Console.WriteLine(s.Length);
33+
}
34+
35+
void M5(bool b)
36+
{
37+
string s = b ? null : "";
38+
Assert.IsTrue(s != null);
39+
Console.WriteLine(s.Length);
40+
}
41+
42+
void M6(bool b)
43+
{
44+
string s = b ? null : "";
45+
Assert.IsFalse(s != null);
46+
Console.WriteLine(s.Length);
47+
}
48+
49+
void M7(bool b)
50+
{
51+
string s = b ? null : "";
52+
Assert.IsFalse(s == null);
53+
Console.WriteLine(s.Length);
54+
}
55+
56+
void M8(bool b)
57+
{
58+
string s = b ? null : "";
59+
Assert.IsTrue(s != null && b);
60+
Console.WriteLine(s.Length);
61+
}
62+
63+
void M9(bool b)
64+
{
65+
string s = b ? null : "";
66+
Assert.IsFalse(s == null || b);
67+
Console.WriteLine(s.Length);
68+
}
69+
70+
void M10(bool b)
71+
{
72+
string s = b ? null : "";
73+
Assert.IsTrue(s == null && b);
74+
Console.WriteLine(s.Length);
75+
}
76+
77+
void M11(bool b)
78+
{
79+
string s = b ? null : "";
80+
Assert.IsFalse(s != null || b);
81+
Console.WriteLine(s.Length);
82+
}
83+
84+
void M12(bool b)
85+
{
86+
string s = b ? null : "";
87+
Debug.Assert(s != null);
88+
Console.WriteLine(s.Length);
89+
90+
s = b ? null : "";
91+
Assert.IsNull(s);
92+
Console.WriteLine(s.Length);
93+
94+
s = b ? null : "";
95+
Assert.IsNotNull(s);
96+
Console.WriteLine(s.Length);
97+
98+
s = b ? null : "";
99+
Assert.IsTrue(s == null);
100+
Console.WriteLine(s.Length);
101+
102+
s = b ? null : "";
103+
Assert.IsTrue(s != null);
104+
Console.WriteLine(s.Length);
105+
106+
s = b ? null : "";
107+
Assert.IsFalse(s != null);
108+
Console.WriteLine(s.Length);
109+
110+
s = b ? null : "";
111+
Assert.IsFalse(s == null);
112+
Console.WriteLine(s.Length);
113+
114+
s = b ? null : "";
115+
Assert.IsTrue(s != null && b);
116+
Console.WriteLine(s.Length);
117+
118+
s = b ? null : "";
119+
Assert.IsFalse(s == null || !b);
120+
Console.WriteLine(s.Length);
121+
122+
s = b ? null : "";
123+
Assert.IsTrue(s == null && b);
124+
Console.WriteLine(s.Length);
125+
126+
s = b ? null : "";
127+
Assert.IsFalse(s != null || !b);
128+
Console.WriteLine(s.Length);
129+
}
130+
}

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

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,76 @@
1515
| ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | exit M2 | 5 |
1616
| ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | exit M3 | 6 |
1717
| ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | exit M4 | 10 |
18+
| Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:20:9:20 | access to parameter b | 5 |
19+
| Assert.cs:9:16:9:32 | String s = ... | Assert.cs:7:10:7:11 | exit M1 | 11 |
20+
| Assert.cs:9:24:9:27 | null | Assert.cs:9:24:9:27 | null | 1 |
21+
| Assert.cs:9:31:9:32 | "" | Assert.cs:9:31:9:32 | "" | 1 |
22+
| Assert.cs:14:10:14:11 | enter M2 | Assert.cs:16:20:16:20 | access to parameter b | 5 |
23+
| Assert.cs:16:16:16:32 | String s = ... | Assert.cs:14:10:14:11 | exit M2 | 9 |
24+
| Assert.cs:16:24:16:27 | null | Assert.cs:16:24:16:27 | null | 1 |
25+
| Assert.cs:16:31:16:32 | "" | Assert.cs:16:31:16:32 | "" | 1 |
26+
| Assert.cs:21:10:21:11 | enter M3 | Assert.cs:23:20:23:20 | access to parameter b | 5 |
27+
| Assert.cs:23:16:23:32 | String s = ... | Assert.cs:21:10:21:11 | exit M3 | 9 |
28+
| Assert.cs:23:24:23:27 | null | Assert.cs:23:24:23:27 | null | 1 |
29+
| Assert.cs:23:31:23:32 | "" | Assert.cs:23:31:23:32 | "" | 1 |
30+
| Assert.cs:28:10:28:11 | enter M4 | Assert.cs:30:20:30:20 | access to parameter b | 5 |
31+
| Assert.cs:30:16:30:32 | String s = ... | Assert.cs:28:10:28:11 | exit M4 | 11 |
32+
| Assert.cs:30:24:30:27 | null | Assert.cs:30:24:30:27 | null | 1 |
33+
| Assert.cs:30:31:30:32 | "" | Assert.cs:30:31:30:32 | "" | 1 |
34+
| Assert.cs:35:10:35:11 | enter M5 | Assert.cs:37:20:37:20 | access to parameter b | 5 |
35+
| Assert.cs:37:16:37:32 | String s = ... | Assert.cs:35:10:35:11 | exit M5 | 11 |
36+
| Assert.cs:37:24:37:27 | null | Assert.cs:37:24:37:27 | null | 1 |
37+
| Assert.cs:37:31:37:32 | "" | Assert.cs:37:31:37:32 | "" | 1 |
38+
| Assert.cs:42:10:42:11 | enter M6 | Assert.cs:44:20:44:20 | access to parameter b | 5 |
39+
| Assert.cs:44:16:44:32 | String s = ... | Assert.cs:42:10:42:11 | exit M6 | 11 |
40+
| Assert.cs:44:24:44:27 | null | Assert.cs:44:24:44:27 | null | 1 |
41+
| Assert.cs:44:31:44:32 | "" | Assert.cs:44:31:44:32 | "" | 1 |
42+
| Assert.cs:49:10:49:11 | enter M7 | Assert.cs:51:20:51:20 | access to parameter b | 5 |
43+
| Assert.cs:51:16:51:32 | String s = ... | Assert.cs:49:10:49:11 | exit M7 | 11 |
44+
| Assert.cs:51:24:51:27 | null | Assert.cs:51:24:51:27 | null | 1 |
45+
| Assert.cs:51:31:51:32 | "" | Assert.cs:51:31:51:32 | "" | 1 |
46+
| Assert.cs:56:10:56:11 | enter M8 | Assert.cs:58:20:58:20 | access to parameter b | 5 |
47+
| Assert.cs:58:16:58:32 | String s = ... | Assert.cs:59:23:59:31 | ... != ... | 6 |
48+
| Assert.cs:58:24:58:27 | null | Assert.cs:58:24:58:27 | null | 1 |
49+
| Assert.cs:58:31:58:32 | "" | Assert.cs:58:31:58:32 | "" | 1 |
50+
| Assert.cs:59:9:59:37 | call to method IsTrue | Assert.cs:56:10:56:11 | exit M8 | 6 |
51+
| Assert.cs:59:36:59:36 | access to parameter b | Assert.cs:59:36:59:36 | access to parameter b | 1 |
52+
| Assert.cs:63:10:63:11 | enter M9 | Assert.cs:65:20:65:20 | access to parameter b | 5 |
53+
| Assert.cs:65:16:65:32 | String s = ... | Assert.cs:66:24:66:32 | ... == ... | 6 |
54+
| Assert.cs:65:24:65:27 | null | Assert.cs:65:24:65:27 | null | 1 |
55+
| Assert.cs:65:31:65:32 | "" | Assert.cs:65:31:65:32 | "" | 1 |
56+
| Assert.cs:66:9:66:38 | call to method IsFalse | Assert.cs:63:10:63:11 | exit M9 | 6 |
57+
| Assert.cs:66:37:66:37 | access to parameter b | Assert.cs:66:37:66:37 | access to parameter b | 1 |
58+
| Assert.cs:70:10:70:12 | enter M10 | Assert.cs:72:20:72:20 | access to parameter b | 5 |
59+
| Assert.cs:72:16:72:32 | String s = ... | Assert.cs:73:23:73:31 | ... == ... | 6 |
60+
| Assert.cs:72:24:72:27 | null | Assert.cs:72:24:72:27 | null | 1 |
61+
| Assert.cs:72:31:72:32 | "" | Assert.cs:72:31:72:32 | "" | 1 |
62+
| Assert.cs:73:9:73:37 | call to method IsTrue | Assert.cs:70:10:70:12 | exit M10 | 6 |
63+
| Assert.cs:73:36:73:36 | access to parameter b | Assert.cs:73:36:73:36 | access to parameter b | 1 |
64+
| Assert.cs:77:10:77:12 | enter M11 | Assert.cs:79:20:79:20 | access to parameter b | 5 |
65+
| Assert.cs:79:16:79:32 | String s = ... | Assert.cs:80:24:80:32 | ... != ... | 6 |
66+
| Assert.cs:79:24:79:27 | null | Assert.cs:79:24:79:27 | null | 1 |
67+
| Assert.cs:79:31:79:32 | "" | Assert.cs:79:31:79:32 | "" | 1 |
68+
| Assert.cs:80:9:80:38 | call to method IsFalse | Assert.cs:77:10:77:12 | exit M11 | 6 |
69+
| Assert.cs:80:37:80:37 | access to parameter b | Assert.cs:80:37:80:37 | access to parameter b | 1 |
70+
| Assert.cs:84:10:84:12 | enter M12 | Assert.cs:86:20:86:20 | access to parameter b | 5 |
71+
| Assert.cs:86:24:86:27 | [b (line 84): true] null | Assert.cs:115:23:115:31 | [b (line 84): true] ... != ... | 101 |
72+
| Assert.cs:86:31:86:32 | [b (line 84): false] "" | Assert.cs:115:23:115:31 | [b (line 84): false] ... != ... | 101 |
73+
| Assert.cs:115:9:115:37 | [b (line 84): false] call to method IsTrue | Assert.cs:119:24:119:32 | [b (line 84): false] ... == ... | 15 |
74+
| Assert.cs:115:9:115:37 | [b (line 84): true] call to method IsTrue | Assert.cs:119:24:119:32 | [b (line 84): true] ... == ... | 15 |
75+
| Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): false] access to parameter b | 1 |
76+
| Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | Assert.cs:115:36:115:36 | [b (line 84): true] access to parameter b | 1 |
77+
| Assert.cs:119:9:119:39 | [b (line 84): false] call to method IsFalse | Assert.cs:123:23:123:31 | [b (line 84): false] ... == ... | 15 |
78+
| Assert.cs:119:9:119:39 | [b (line 84): true] call to method IsFalse | Assert.cs:123:23:123:31 | [b (line 84): true] ... == ... | 15 |
79+
| Assert.cs:119:37:119:38 | [b (line 84): false] !... | Assert.cs:119:38:119:38 | [b (line 84): false] access to parameter b | 2 |
80+
| Assert.cs:119:37:119:38 | [b (line 84): true] !... | Assert.cs:119:38:119:38 | [b (line 84): true] access to parameter b | 2 |
81+
| Assert.cs:123:9:123:37 | [b (line 84): false] call to method IsTrue | Assert.cs:126:24:126:25 | "" | 9 |
82+
| Assert.cs:123:9:123:37 | [b (line 84): true] call to method IsTrue | Assert.cs:126:17:126:20 | null | 9 |
83+
| Assert.cs:123:36:123:36 | [b (line 84): false] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): false] access to parameter b | 1 |
84+
| Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | Assert.cs:123:36:123:36 | [b (line 84): true] access to parameter b | 1 |
85+
| Assert.cs:126:9:126:25 | ... = ... | Assert.cs:127:24:127:32 | ... != ... | 6 |
86+
| Assert.cs:127:9:127:39 | call to method IsFalse | Assert.cs:84:10:84:12 | exit M12 | 6 |
87+
| Assert.cs:127:37:127:38 | !... | Assert.cs:127:38:127:38 | access to parameter b | 2 |
1888
| Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | exit M | 33 |
1989
| Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... | 3 |
2090
| Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | exit + | 5 |

0 commit comments

Comments
 (0)