summaryrefslogtreecommitdiffstats
path: root/tests/new/pointcutLibrary/langlib/PointcutsCW.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/new/pointcutLibrary/langlib/PointcutsCW.java')
-rw-r--r--tests/new/pointcutLibrary/langlib/PointcutsCW.java217
1 files changed, 217 insertions, 0 deletions
diff --git a/tests/new/pointcutLibrary/langlib/PointcutsCW.java b/tests/new/pointcutLibrary/langlib/PointcutsCW.java
new file mode 100644
index 000000000..8d567ff95
--- /dev/null
+++ b/tests/new/pointcutLibrary/langlib/PointcutsCW.java
@@ -0,0 +1,217 @@
+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
+
+*/ \ No newline at end of file