@@ -16,10 +16,10 @@ SCENARIO(
16
16
" java_bytecode_parse_attributes" ,
17
17
" [core][java_bytecode][java_bytecode_parser]" )
18
18
{
19
- const symbol_tablet &new_symbol_table =
20
- load_java_class (" InnerClasses" , " ./java_bytecode/java_bytecode_parser" );
21
19
GIVEN (" Some public class files in the class path with inner classes" )
22
20
{
21
+ const symbol_tablet &new_symbol_table =
22
+ load_java_class (" InnerClasses" , " ./java_bytecode/java_bytecode_parser" );
23
23
WHEN (" Parsing the InnerClasses attribute for a public inner class" )
24
24
{
25
25
THEN (" The class should be marked as public" )
@@ -71,6 +71,8 @@ SCENARIO(
71
71
}
72
72
GIVEN (" Some package-private class files in the class path with inner classes" )
73
73
{
74
+ const symbol_tablet &new_symbol_table =
75
+ load_java_class (" InnerClassesDefault" , " ./java_bytecode/java_bytecode_parser" );
74
76
WHEN (" Parsing the InnerClasses attribute for a public inner class" )
75
77
{
76
78
THEN (" The class should be marked as public" )
@@ -125,6 +127,8 @@ SCENARIO(
125
127
" Some package-private class files in the class path with deeply nested "
126
128
" inner classes" )
127
129
{
130
+ const symbol_tablet &new_symbol_table =
131
+ load_java_class (" InnerClassesDeeplyNested" , " ./java_bytecode/java_bytecode_parser" );
128
132
WHEN (
129
133
" Parsing the InnerClasses attribute for a public doubly-nested inner "
130
134
" class" )
@@ -133,7 +137,7 @@ SCENARIO(
133
137
{
134
138
const symbolt &class_symbol = new_symbol_table.lookup_ref (
135
139
" java::InnerClassesDeeplyNested$SinglyNestedClass$"
136
- " PublicDoublyInnerClass " );
140
+ " PublicDoublyNestedInnerClass " );
137
141
const java_class_typet java_class =
138
142
to_java_class_type (class_symbol.type );
139
143
REQUIRE (java_class.get_is_inner_class ());
@@ -148,7 +152,7 @@ SCENARIO(
148
152
{
149
153
const symbolt &class_symbol = new_symbol_table.lookup_ref (
150
154
" java::InnerClassesDeeplyNested$SinglyNestedClass$"
151
- " DefaultDoublyInnerClass " );
155
+ " DefaultDoublyNestedInnerClass " );
152
156
const java_class_typet java_class =
153
157
to_java_class_type (class_symbol.type );
154
158
REQUIRE (java_class.get_is_inner_class ());
@@ -163,7 +167,7 @@ SCENARIO(
163
167
{
164
168
const symbolt &class_symbol = new_symbol_table.lookup_ref (
165
169
" java::InnerClassesDeeplyNested$SinglyNestedClass$"
166
- " ProtectedDoublyInnerClass " );
170
+ " ProtectedDoublyNestedInnerClass " );
167
171
const java_class_typet java_class =
168
172
to_java_class_type (class_symbol.type );
169
173
REQUIRE (java_class.get_is_inner_class ());
@@ -178,7 +182,7 @@ SCENARIO(
178
182
{
179
183
const symbolt &class_symbol = new_symbol_table.lookup_ref (
180
184
" java::InnerClassesDeeplyNested$SinglyNestedClass$"
181
- " PrivateDoublyInnerClass " );
185
+ " PrivateDoublyNestedInnerClass " );
182
186
const java_class_typet java_class =
183
187
to_java_class_type (class_symbol.type );
184
188
REQUIRE (java_class.get_is_inner_class ());
@@ -190,6 +194,8 @@ SCENARIO(
190
194
GIVEN (
191
195
" Some package-private class files in the class path with anonymous classes" )
192
196
{
197
+ const symbol_tablet &new_symbol_table =
198
+ load_java_class (" ContainsAnonymousClass" , " ./java_bytecode/java_bytecode_parser" );
193
199
WHEN (" Parsing the InnerClasses attribute for a public anonymous class" )
194
200
{
195
201
THEN (" The class should be marked as public" )
@@ -198,8 +204,8 @@ SCENARIO(
198
204
new_symbol_table.lookup_ref (" java::ContainsAnonymousClass$1" );
199
205
const java_class_typet java_class =
200
206
to_java_class_type (class_symbol.type );
201
- REQUIRE (java_class.get_is_inner_class ());
202
- REQUIRE (java_class.get_access () == ID_public );
207
+ REQUIRE_FALSE (java_class.get_is_inner_class ());
208
+ REQUIRE (java_class.get_access () == ID_private );
203
209
}
204
210
}
205
211
WHEN (
@@ -212,8 +218,8 @@ SCENARIO(
212
218
new_symbol_table.lookup_ref (" java::ContainsAnonymousClass$2" );
213
219
const java_class_typet java_class =
214
220
to_java_class_type (class_symbol.type );
215
- REQUIRE (java_class.get_is_inner_class ());
216
- REQUIRE (java_class.get_access () == ID_default );
221
+ REQUIRE_FALSE (java_class.get_is_inner_class ());
222
+ REQUIRE (java_class.get_access () == ID_private );
217
223
}
218
224
}
219
225
WHEN (" Parsing the InnerClasses attribute for a protected anonymous class" )
@@ -224,8 +230,8 @@ SCENARIO(
224
230
new_symbol_table.lookup_ref (" java::ContainsAnonymousClass$3" );
225
231
const java_class_typet java_class =
226
232
to_java_class_type (class_symbol.type );
227
- REQUIRE (java_class.get_is_inner_class ());
228
- REQUIRE (java_class.get_access () == ID_protected );
233
+ REQUIRE_FALSE (java_class.get_is_inner_class ());
234
+ REQUIRE (java_class.get_access () == ID_private );
229
235
}
230
236
}
231
237
WHEN (" Parsing the InnerClasses attribute for a private anonymous class" )
@@ -236,7 +242,7 @@ SCENARIO(
236
242
new_symbol_table.lookup_ref (" java::ContainsAnonymousClass$4" );
237
243
const java_class_typet java_class =
238
244
to_java_class_type (class_symbol.type );
239
- REQUIRE (java_class.get_is_inner_class ());
245
+ REQUIRE_FALSE (java_class.get_is_inner_class ());
240
246
REQUIRE (java_class.get_access () == ID_private);
241
247
}
242
248
}
@@ -245,16 +251,18 @@ SCENARIO(
245
251
GIVEN (
246
252
" Some package-private class files in the class path with local classes " )
247
253
{
254
+ const symbol_tablet &new_symbol_table =
255
+ load_java_class (" ContainsLocalClass" , " ./java_bytecode/java_bytecode_parser" );
248
256
WHEN (" Parsing the InnerClasses attribute for a package-private class " )
249
257
{
250
258
THEN (" The class should be marked as package-private" )
251
259
{
252
260
const symbolt &class_symbol =
253
- new_symbol_table.lookup_ref (" java::ContainsLocalClass$LocalClass$ " );
261
+ new_symbol_table.lookup_ref (" java::ContainsLocalClass$1LocalClass " );
254
262
const java_class_typet java_class =
255
263
to_java_class_type (class_symbol.type );
256
264
REQUIRE (java_class.get_is_inner_class ());
257
- REQUIRE (java_class.get_access () == ID_default );
265
+ REQUIRE (java_class.get_access () == ID_private );
258
266
}
259
267
}
260
268
}
0 commit comments