123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package langlib;
- import org.aspectj.testing.Tester;
-
- import java.awt.Button;
- import java.awt.event.ActionEvent;
- import java.beans.PropertyChangeListener;
- import java.io.*;
- import java.lang.reflect.Method;
-
- import javax.swing.*;
- import javax.swing.Action;
-
- // DO NOT CHANGE LINEATION! WARNING NUMBERS DEPEND ON IT! See grep below
-
-
-
-
-
- /**
- * todo yet untested:
- * - dynamic calls
- */
- public aspect PointcutsCW {
- declare error: Pointcuts.never() : "never";
- declare error: within(PointcutsCW) && Pointcuts.never() : "never";
-
- declare warning: Pointcuts.mainExecution() : "mainExecution";
- declare warning: Pointcuts.anyMethodExecution() : "anyMethodExecution";
- declare warning: Pointcuts.anyPublicMethodExecution() : "anyPublicMethodExecution";
- declare warning: Pointcuts.anyNonPrivateMethodExecution() : "anyNonPrivateMethodExecution";
- declare warning: Pointcuts.anyConstructorExecution() : "anyConstructorExecution";
- declare warning: Pointcuts.anyPublicConstructorExecution() : "anyPublicConstructorExecution";
- declare warning: Pointcuts.anyNonPrivateConstructorExecution() : "anyNonPrivateConstructorExecution";
-
- declare warning: Pointcuts.anyPublicFieldGet() : "anyPublicFieldGet";
- declare warning: Pointcuts.anyNonPrivateFieldGet() : "anyNonPrivateFieldGet";
- declare warning: Pointcuts.anyPublicFieldSet() : "anyPublicFieldSet";
- declare warning: Pointcuts.anyNonPrivateFieldSet() : "anyNonPrivateFieldSet";
- declare warning: Pointcuts.withinSetter() : "withinSetter";
- declare warning: Pointcuts.withinGetter() : "withinGetter";
- declare warning: Pointcuts.anyNonPublicFieldSetOutsideConstructorOrSetter() : "anyNonPublicFieldSetOutsideConstructorOrSetter";
-
- declare warning: Pointcuts.anyRunnableImplementation() : "anyRunnableImplementation";
- declare warning: Pointcuts.anyGetSystemErrOut() : "anyGetSystemErrOut";
- declare warning: Pointcuts.anySetSystemErrOut() : "anySetSystemErrOut";
- declare warning: Pointcuts.withinAnyJavaCode() : "withinAnyJavaCode"; // XXX
- declare warning: Pointcuts.notWithinJavaCode() : "notWithinJavaCode"; // XXX
- declare warning: Pointcuts.toStringExecution() : "toStringExecution";
- declare warning: Pointcuts.anyThreadConstruction() : "anyThreadConstruction";
- declare warning: Pointcuts.anyJavaIOCalls() : "anyJavaIOCalls";
- declare warning: Pointcuts.anyJavaAWTOrSwingCalls() : "anyJavaAWTOrSwingCalls";
- declare warning: Pointcuts.cloneImplementationsInNonCloneable() : "cloneImplementationsInNonCloneable";
- declare warning: Pointcuts.runImplementationsInNonRunnable() : "runImplementationsInNonRunnable";
- declare warning: Pointcuts.anySystemReflectiveCalls() : "anySystemReflectiveCalls";
- declare warning: Pointcuts.anySystemClassLoadingCalls() : "anySystemClassLoadingCalls";
- declare warning: Pointcuts.anySystemProcessSpawningCalls() : "anySystemProcessSpawningCalls";
- declare warning: Pointcuts.mostThrowableReadCalls() : "mostThrowableReadCalls";
- declare warning: Pointcuts.exceptionWrappingCalls() : "exceptionWrappingCalls";
-
- public static int publicStaticInt;
- public int publicInt;
- private static int privateStaticInt;
- private int privateInt;
- static int defaultStaticInt;
- int defaultInt;
-
- // CW anyMethodExecution, anyPublicMethodExecution, anyNonPrivateMethodExecution
- public static void main(String[] list) {
- new PointcutsCW().toString(); // RT cflowMainExecution
- }
-
- private PointcutsCW() {} // CW anyConstructorExecution
-
- public PointcutsCW(int i) {} // CW anyConstructorExecution, anyPublicConstructorExecution, anyNonPrivateConstructorExecution
-
- PointcutsCW(String s) { // CW anyConstructorExecution, anyNonPrivateConstructorExecution
-
- defaultInt = 0; // CW anyNonPrivateFieldSet
-
- }
-
- // CW anyMethodExecution, anyPublicMethodExecution, anyNonPrivateMethodExecution
- public String toString() {// CW toStringExecution
- return "";
- }
-
- private int perrorCode() { } // CW anyMethodExecution
-
- private void setInt() { // CW anyMethodExecution,
-
- defaultInt = 0; // CW anyNonPrivateFieldSet, withinSetter
-
- }
-
- private int getInt() {
-
- return defaultInt; // CW anyNonPrivateFieldGet, withinGetter
-
- }
-
- static class NotRunnable {
- // CW anyMethodExecution, anyPublicMethodExecution, anyNonPrivateMethodExecution
- public void run() { // CW runImplementationsInNonRunnable
- }
- }
-
- static class R implements Runnable { // CW anyRunnableImplementation
-
- // CW anyMethodExecution, anyPublicMethodExecution, anyNonPrivateMethodExecution
- public void run() {
-
- }
-
- // CW anyMethodExecution, anyPublicMethodExecution, anyNonPrivateMethodExecution
- public Object clone() { // CW cloneImplementationsInNonCloneable
- return null;
- }
-
- }
-
- // CW anyMethodExecution, anyPublicMethodExecution, anyNonPrivateMethodExecution
- public static void pserrorCode() throws IOException {
-
- i = publicStaticInt; // CW anyPublicFieldGet, anyNonPrivateFieldGet
-
- i = publicInt; // CW anyPublicFieldGet, anyNonPrivateFieldGet
-
- i = privateStaticInt;
-
- i = privateInt;
-
- i = defaultStaticInt; // CW anyNonPrivateFieldGet
-
- i = defaultInt; // CW anyNonPrivateFieldGet
-
- publicStaticInt = 1; // CW anyPublicFieldSet, anyNonPrivateFieldSet
-
- publicInt = 1; // CW anyPublicFieldSet, anyNonPrivateFieldSet
-
- // for these 4: CW anyNonPublicFieldSetOutsideConstructorOrSetter
- privateStaticInt = 1;
-
- privateInt = 1;
-
- defaultStaticInt = 1; // CW anyNonPrivateFieldSet
-
- defaultInt = 1; // CW anyNonPrivateFieldSet
-
- System.out.println(""); // CW anyGetSystemErrOut, anyNonPrivateFieldGet, anyPublicFieldGet
-
- System.err.println(""); // CW anyGetSystemErrOut, anyNonPrivateFieldGet anyPublicFieldGet
-
- new Thread((Runnable)null); // CW anyThreadConstruction
-
- FileReader fr = new FileReader("none"); // CW anyJavaIOCalls
-
- int i = fr.read(); // CW anyJavaIOCalls
-
- DefaultListModel model = new DefaultListModel(); // CW anyJavaAWTOrSwingCalls
-
- model.addElement(null); // CW anyJavaAWTOrSwingCalls
-
- Button button = new Button(); // CW anyJavaAWTOrSwingCalls
-
- button.addActionListener(null); // CW anyJavaAWTOrSwingCalls
-
- String myName = PointcutsCW.class.getName();
-
- Class me = Class.forName(myName); // CW anySystemClassLoadingCalls
-
- Method m = me.getDeclaredMethod("notFound", new Class[]{}); // CW anySystemReflectiveCalls
-
- Process p = Runtime.exec("ls"); // CW anySystemProcessSpawningCalls
-
- Error e = new Error("hello");
-
- e.getMessage(); // CW mostThrowableReadCalls
-
- e.printStackTrace(); // CW mostThrowableReadCalls
-
- e.getClass(); // CW mostThrowableReadCalls
-
- }
-
- }
-
- aspect DynamicTests {
- static {
- Tester.expectEvent("mainExecution");
- Tester.expectEvent("cflowMainExecution");
- Tester.expectEvent("adviceCflow");
- Tester.expectEvent("notInAdviceCflow");
- }
- after(PointcutsCE pointcutsCE) returning : target(pointcutsCE)
- && Pointcuts.cflowMainExecution() && call(String toString()) {
- String targ = pointcutsCE.toString();
- Tester.event("cflowMainExecution");
- Tester.event("adviceCflow");
- }
-
- after(PointcutsCE pointcutsCE) returning : target(pointcutsCE)
- && notInAdviceCflow() && call(String toString()) {
- Tester.event("notInAdviceCflow"); // should only get one of these
- }
-
- after() returning : within(PointcutsCE) && Pointcuts.mainExecution() {
- Tester.event("mainExecution"); // also cflowMainExecution
- Tester.checkAllEvents();
- }
-
- }
- /*
- grep -n " CW" PointcutsCW.java \
- | sed 's|^\(.*\)\:.*\/\/*CW \(.*\)$|<message kind="warning" line="\1" text="\2"/>|' \
- > messages.txt
-
- */
|