blob: 5bbfbfbdfc618a179e2cb9018d22de8924a86575 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
|
/* *******************************************************************
* Copyright (c) 2004 IBM Corporation
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
* which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* ******************************************************************/
package org.aspectj.systemtest.ajc11;
import org.aspectj.testing.XMLBasedAjcTestCase;
import junit.framework.Test;
public class Ajc11Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(Ajc11Tests.class);
}
protected java.net.URL getSpecFile() {
return getClassResource("ajc11.xml");
}
public void test001() {
runTest("declare interface extends class");
}
public void test002() {
runTest("declare interface implements class");
}
public void test003() {
runTest("declaring a private method on an inner interface");
}
public void test004() {
runTest("CE expected when declaring fields on arrays");
}
public void test005() {
runTest("signature of handler join point");
}
public void test006() {
runTest("source locations within expressions");
}
public void test007() {
runTest("crashes given method in declared method");
}
public void test008() {
runTest("after returning advice on interface constructor");
}
public void test009() {
runTest("after returning advice on interface constructor - error");
}
public void test010() {
runTest("after advice on static call join point");
}
public void test011() {
runTest("incompatible class change error");
}
public void test012() {
runTest("simple cflow of method execution");
}
public void test013() {
runTest("using instance as class reference to constant field");
}
public void test014() {
runTest("interface self-reference in anonymous instance");
}
public void test015() {
runTest("self-reference from (aspect-declared) method-local class");
}
public void test016() {
runTest("expect CE for unterminated declare error");
}
public void test017() {
runTest("expect CE for declaration collision between subaspects instead of domination order");
}
public void test018() {
runTest("subtype pattern in dominates should pick out aspect subtypes");
}
public void test019() {
runTest("subtype pattern in dominates will conflict with type pattern");
}
public void test020() {
runTest("after returning advice on interface and implementation constructor");
}
public void test021() {
runTest("after throwing advice with non-throwable formal");
}
public void test022() {
runTest("declare array field using postfix");
}
public void test023() {
runTest("prohibit declaring new aspect constructor with arguments");
}
public void test024() {
runTest("prohibit declaring only aspect constructor with arguments");
}
public void test025() {
runTest("declare class extends interface");
}
public void test026() {
runTest("declare class implements class");
}
public void test027() {
runTest("declare interface implements interface");
}
public void test028() {
runTest("if and cflow arg binding");
}
public void test029() {
runTest("circularity in declare dominates");
}
public void test030() {
runTest("percflow code hangs compiler");
}
public void test031() {
runTest("Verification error tracing constructor that takes arguments");
}
public void test032() {
runTest("declared exceptions in inter-type decls");
}
public void test033() {
runTest("Verify error on non-Throwable in declare soft");
}
public void test034() {
runTest("inter-type fields with array types");
}
public void test035() {
runTest("checking around join point for advice return type - numeric");
}
public void test036() {
runTest("void around advice without proceed");
}
public void test037() {
runTest("declaring method on superclass and subclass");
}
public void test038() {
runTest("introducing final fields (simple)");
}
public void test039() {
runTest("introducing final fields and using as constants");
}
public void test040() {
runTest("introducing final fields and checking errors");
}
public void test041() {
runTest("Static inner aspects cannot reference user defined pointcuts");
}
public void test042() {
runTest("Static inner aspects cannot reference user defined pointcuts");
}
public void test043() {
runTest("Declare precedence should not allow multiple * patterns");
}
public void test044() {
runTest("VerifyError on accessing objects not accessible to the weaver");
}
public void test045() {
runTest("aspect static initializers should run before instance constructed");
}
public void test046() {
runTest("super call in intertype method declaration body causes VerifyError");
}
public void test047() {
runTest("Error with certain combination of advice");
}
public void test048() {
runTest("Pointcut adviceexecution() does not work");
}
public void test049() {
runTest("problems with finalize call");
}
public void test050() {
runTest("Negation of if pointcut does not work");
}
public void test051() {
runTest("ajc reports error when encountering static declaration of nested classes");
}
public void test052() {
runTest("can't use pointcuts defined in inner aspects ");
}
public void test053() {
runTest("can't resolve nested public interfaces (also PR#32399)");
}
public void test054() {
runTest("thisJoinPoint.getArgs() causes IncompatibleClassChangeError");
}
public void test055() {
runTest("inter-type declaration of void field");
}
public void test056() {
runTest("no such constructor for proceed argument (error)");
}
public void test057() {
runTest("omnibus declare warning context with no initializer/constructor");
}
public void test058() {
runTest("omnibus declare warning context");
}
public void test059() {
runTest("cflow binding issues with ignoring state");
}
public void test060() {
runTest("cflow binding -- original weaver crash");
}
public void test061() {
runTest("type not imported in around advice");
}
public void test062() {
runTest("type not imported in aspect");
}
public void test063() {
runTest("class extending abstract aspect");
}
public void test064() {
runTest("declare soft and throw statements");
}
public void test065() {
runTest("inter-type declaration bug with abstract classes");
}
public void test066() {
runTest("Inter type declaration to base class not seen by derived class");
}
public void test067() {
runTest("Declare parents with intermediate ancestor");
}
public void test068() {
runTest("Declare parents removing ancestor");
}
public void test069() {
runTest("IllegalAccessError while accessing introduced variable / 1.1rc1");
}
public void test070() {
runTest("implemented abstract pointcut");
}
public void test071() {
runTest("privileged aspect main verify error");
}
public void test072() {
runTest("Internal compiler error with thisJoinPoint.getStaticPart()");
}
public void test073() {
runTest("Inconsistant stack height with around");
}
public void test074() {
runTest("Ajc 1.1 rc1 java.lang.VerifyError with messy arounds");
}
public void test075() {
runTest("try/finally in around advice (same as ...messy arounds?)");
}
public void test076() {
runTest("advise join points in subclass of empty interface");
}
public void test077() {
runTest("can't put around advice on interface static initializer");
}
public void test078() {
runTest("cflow concretization causing assertion failure");
}
public void test079() {
runTest("lame error message: negation doesn't allow binding");
}
public void test080() {
runTest("Error when introducing members of type Class");
}
// public void test081(){
// runTest("arrays via Class.forName()");
// }
public void test082() {
runTest("perthis and inline arounds");
}
public void test083() {
runTest("Weaver fails with NPE for very large source files ");
}
public void test084() {
runTest("CLE: no sources");
}
public void test085() {
runTest("CLE: bad filename");
}
public void test086() {
runTest("CLE: no dir specified for sourceroots");
}
public void test087() {
runTest("CLE: no sourceroot specified for incremental");
}
public void test088() {
runTest("CLE: file specified with incremental");
}
public void test089() {
runTest("public static fields being ignored");
}
public void test090() {
runTest("can not resolve this member warning");
}
public void test091() {
runTest("try switch VerifyError, InconsistentStackHeight");
}
public void test092() {
runTest("Compiler crash in ajc 1.1 - terrible error for inaccessible constructor - 1.7");
}
public void test093() {
runTest("Missing import crashes compiler");
}
public void test094() {
runTest("NPE in bcel.LazyMethodGen when delegating from one ctor to a second that includes a switch");
}
public void test095() {
runTest("switch statement in aspects crashes weaving");
}
public void test096() {
runTest("ajc stack trace on declaring hashcode() method in aspect");
}
public void test097() {
runTest("using super in method introduced on interface with multiple supertypes");
}
public void test098() {
runTest("Compiler crashes in jar and cflow (with no .jar)");
}
public void test099() {
runTest("Compiler crashes in jar and cflow (with .jar)");
}
public void test100() {
runTest("Default method impl for interface causes internal exception.");
}
public void test102() {
runTest("compile error expected for abstract pointcut outside abstract aspect");
}
public void test103() {
runTest("subtype-qualified pointcut reference");
}
public void test104() {
runTest("weaver trace on mis-qualified pointcut reference");
}
public void test105() {
runTest("compile error expected for interface pointcuts");
}
public void test106() {
runTest("interface call signatures when declaring method in aspect");
}
public void test107() {
runTest("reflective check of declared exceptions from aspect-declared methods");
}
public void test108() {
runTest("throw derivative pointcuts not advised");
}
public void test109() {
runTest("perthis and signature bad interaction");
}
public void test110() {
runTest("declare error fails on pointcuts composed from multiple classes");
}
public void test111() {
runTest("declare error fails on pointcuts composed from multiple classes");
}
public void test112() {
runTest("Interaction between pointcut binding and declare parents");
}
public void test113() {
runTest("Non-functional concretezation of ReferencePointcut");
}
public void test114() {
runTest("zip and jar suffixes for extdirs entries");
}
}
|