summaryrefslogtreecommitdiffstats
path: root/weaver/testsrc/org
diff options
context:
space:
mode:
authoraclement <aclement>2005-04-13 15:45:12 +0000
committeraclement <aclement>2005-04-13 15:45:12 +0000
commitbd786b079b05d0dccd7bbe4ee871b06ddd84fb48 (patch)
tree1e1dc04139e05197e159ab43f8f3f3e8834015d6 /weaver/testsrc/org
parentd697649e6dbd11209d2ac9d31f6c0031dec338e0 (diff)
downloadaspectj-bd786b079b05d0dccd7bbe4ee871b06ddd84fb48.tar.gz
aspectj-bd786b079b05d0dccd7bbe4ee871b06ddd84fb48.zip
From The Branch: Alex's changes in the weaver module to avoid use of the default package where inappropriate.
Diffstat (limited to 'weaver/testsrc/org')
-rw-r--r--weaver/testsrc/org/aspectj/weaver/LocaleTest.java43
-rw-r--r--weaver/testsrc/org/aspectj/weaver/bcel/AroundWeaveTestCase.java4
-rw-r--r--weaver/testsrc/org/aspectj/weaver/bcel/UtilityTestCase.java3
-rw-r--r--weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java5
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/Aspect.java349
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/DynamicHelloWorld.java30
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/FancyHelloWorld.java26
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/FieldyHelloWorld.java12
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/HelloWorld.java14
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/MultiArgHelloWorld.java12
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/Test.java13
-rw-r--r--weaver/testsrc/org/aspectj/weaver/test/TestSwitchy.java33
12 files changed, 541 insertions, 3 deletions
diff --git a/weaver/testsrc/org/aspectj/weaver/LocaleTest.java b/weaver/testsrc/org/aspectj/weaver/LocaleTest.java
new file mode 100644
index 000000000..fc6518237
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/LocaleTest.java
@@ -0,0 +1,43 @@
+package org.aspectj.weaver;
+
+import java.io.IOException;
+import java.util.Locale;
+
+import junit.framework.TestCase;
+
+import org.aspectj.apache.bcel.generic.Instruction;
+import org.aspectj.apache.bcel.util.ByteSequence;
+
+public class LocaleTest extends TestCase {
+
+ public LocaleTest(String name) {
+ super(name);
+ }
+
+ public void testNormalLocale() {
+ doBipush();
+ }
+
+ public void testTurkishLocale() {
+ Locale def = Locale.getDefault();
+ Locale.setDefault(new Locale("tr", ""));
+ try {
+ doBipush();
+ } finally {
+ Locale.setDefault(def);
+ }
+ }
+
+ private static void doBipush() {
+ try {
+ Instruction.readInstruction(
+ new ByteSequence(new byte[] {
+ (byte)16, // bipush
+ (byte) 3 // data for bipush
+ }));
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+}
+
diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/AroundWeaveTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/AroundWeaveTestCase.java
index 543f1dfe8..983acc4a9 100644
--- a/weaver/testsrc/org/aspectj/weaver/bcel/AroundWeaveTestCase.java
+++ b/weaver/testsrc/org/aspectj/weaver/bcel/AroundWeaveTestCase.java
@@ -46,8 +46,8 @@ public class AroundWeaveTestCase extends WeaveTestCase {
private BcelAdvice makeAroundMunger(final boolean matchOnlyPrintln) {
- BcelWorld world = new BcelWorld();
- final Member sig =
+ BcelWorld world = super.world;
+ final Member sig =
Member.method(
TypeX.forName("Aspect"),
Modifier.STATIC,
diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/UtilityTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/UtilityTestCase.java
index be97540e6..05f5610ae 100644
--- a/weaver/testsrc/org/aspectj/weaver/bcel/UtilityTestCase.java
+++ b/weaver/testsrc/org/aspectj/weaver/bcel/UtilityTestCase.java
@@ -24,7 +24,8 @@ public class UtilityTestCase extends TestCase {
public void disassembleTest(String name) throws IOException {
BcelWorld world = new BcelWorld("../weaver/bin");
-
+ world.addPath(WeaveTestCase.classDir);
+
LazyClassGen clazz = new LazyClassGen(BcelWorld.getBcelObjectType(world.resolve(name)));
clazz.print();
System.out.println();
diff --git a/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java b/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java
index d14176891..5a78845cc 100644
--- a/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java
+++ b/weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java
@@ -33,6 +33,9 @@ public abstract class WeaveTestCase extends TestCase {
String outDirPath;
public BcelWorld world = new BcelWorld();
+ {
+ world.addPath(classDir);
+ }
public WeaveTestCase(String name) {
super(name);
@@ -118,6 +121,8 @@ public abstract class WeaveTestCase extends TestCase {
+ File.pathSeparator
+ getTraceJar()
+ File.pathSeparator
+ + classDir
+ + File.pathSeparator
+ System.getProperty("java.class.path");
}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/Aspect.java b/weaver/testsrc/org/aspectj/weaver/test/Aspect.java
new file mode 100644
index 000000000..cd4430283
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/Aspect.java
@@ -0,0 +1,349 @@
+/* This file is part of the compiler and core tools for the AspectJ(tm)
+ * programming language; see http://aspectj.org
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is AspectJ.
+ *
+ * The Initial Developer of the Original Code is Palo Alto Research Center,
+ * Incorporated (PARC). Portions created by PARC are are
+ * Copyright (C) 2002 Palo Alto Research Center, Incorporated.
+ * All Rights Reserved.
+ *
+ * Contributor(s):
+ */
+package org.aspectj.weaver.test;
+import java.util.*;
+
+import org.aspectj.runtime.internal.*;
+import org.aspectj.runtime.internal.AroundClosure;
+import org.aspectj.lang.JoinPoint;
+
+public class Aspect {
+
+ public static void ajc_before_0() {
+ System.out.println("before_0");
+ }
+ public static void ajc_before_0(String s) {
+ System.out.println("before_0: " + s);
+ }
+ public static boolean ajc_around_0(ArrayList s, AroundClosure c) throws Throwable {
+ System.out.println("doing around, got " + s);
+ Object ret = c.run(new Object[] {s}); // proceed(s)
+ return ((Boolean) ret).booleanValue();
+ }
+
+ public static void ajc_before_0(java.util.ArrayList list) {
+ System.out.println("before_0: " + list);
+ }
+
+ public static void ajc_before_method_execution() {
+
+ }
+ public static void ajc_before_method_execution(Object o) {
+ System.out.println("before_method_execution: " + o);
+ }
+
+ public static void ajc_after_method_execution() {
+ System.out.println("after_method_execution");
+ }
+ public static void ajc_after_method_execution(Object o) {
+ System.out.println("after_method_execution: " + o);
+ }
+
+ public static void ajc_afterReturning_method_execution() {
+ System.out.println("ajc_afterReturning_method_execution");
+ }
+ public static void ajc_afterReturning_method_execution(Object o) {
+ System.out.println("afterReturning_method_execution: " + o);
+ }
+
+ public static void ajc_afterThrowing_method_execution() {
+ System.out.println("ajc_afterThrowing_method_execution");
+ }
+ public static void ajc_afterThrowing_method_execution(Object o) {
+ System.out.println("afterThrowing_method_execution: " + o);
+ }
+
+
+
+
+
+ public static Object ajc_around(AroundClosure closure) throws Throwable {
+ Object ret = closure.run(new Object[] {});
+ return ret;
+ }
+
+ public static Object ajc_around(AroundClosure closure, JoinPoint tjp) throws Throwable {
+ System.out.println("thisJoinPoint: " + tjp);
+ Object ret = closure.run(new Object[] {});
+ return ret;
+ }
+
+ // ---
+
+
+ public static void ajc_before_method_call() {
+ System.out.println("before_method_call");
+ }
+ public static void ajc_before_method_call(Object o) {
+ System.out.println("before_method_call: " + o);
+ }
+
+ public static void ajc_after_method_call() {
+ System.out.println("after_method_call");
+ }
+ public static void ajc_after_method_call(Object o) {
+ System.out.println("after_method_call: " + o);
+ }
+
+ public static void ajc_afterReturning_method_call() {
+ System.out.println("ajc_afterReturning_method_call");
+ }
+ public static void ajc_afterReturning_method_call(Object o) {
+ System.out.println("afterReturning_method_call: " + o);
+ }
+
+ public static void ajc_afterThrowing_method_call() {
+ System.out.println("ajc_afterThrowing_method_call");
+ }
+ public static void ajc_afterThrowing_method_call(Object o) {
+ System.out.println("afterThrowing_method_call: " + o);
+ }
+
+ public static Object ajc_around_method_call(AroundClosure closure) throws Throwable {
+ Object ret = null;
+ for (int i=0; i<3; i++) {
+ System.out.println("enter: " + i);
+ ret = closure.run(new Object[] {});
+ }
+ return ret;
+ }
+
+ // ----
+
+ public static void ajc_before_constructor_call() {
+ System.out.println("before_constructor_call");
+ }
+ public static void ajc_before_constructor_call(Object o) {
+ System.out.println("before_constructor_call: " + o);
+ }
+
+ public static void ajc_after_constructor_call() {
+ System.out.println("after_constructor_call");
+ }
+ public static void ajc_after_constructor_call(Object o) {
+ System.out.println("after_constructor_call: " + o);
+ }
+
+ public static void ajc_afterReturning_constructor_call() {
+ System.out.println("ajc_afterReturning_constructor_call");
+ }
+ public static void ajc_afterReturning_constructor_call(Object o) {
+ System.out.println("afterReturning_constructor_call: " + o);
+ }
+
+ public static void ajc_afterThrowing_constructor_call() {
+ System.out.println("ajc_afterThrowing_constructor_call");
+ }
+ public static void ajc_afterThrowing_constructor_call(Object o) {
+ System.out.println("afterThrowing_constructor_call: " + o);
+ }
+
+ public static Object ajc_around_constructor_call(AroundClosure closure) throws Throwable {
+ Object ret = null;
+ for (int i=0; i<3; i++) {
+ System.out.println("enter: " + i);
+ ret = closure.run(new Object[] {});
+ }
+ return ret;
+ }
+ // ----
+
+ public static void ajc_before_constructor_execution() {
+ System.out.println("before_constructor_execution");
+ }
+ public static void ajc_before_constructor_execution(Object o) {
+ System.out.println("before_constructor_execution: " + o);
+ }
+
+ public static void ajc_after_constructor_execution() {
+ System.out.println("after_constructor_execution");
+ }
+ public static void ajc_after_constructor_execution(Object o) {
+ System.out.println("after_constructor_execution: " + o);
+ }
+
+ public static void ajc_afterReturning_constructor_execution() {
+ System.out.println("ajc_afterReturning_constructor_execution");
+ }
+ public static void ajc_afterReturning_constructor_execution(Object o) {
+ System.out.println("afterReturning_constructor_execution: " + o);
+ }
+
+ public static void ajc_afterThrowing_constructor_execution() {
+ System.out.println("ajc_afterThrowing_constructor_execution");
+ }
+ public static void ajc_afterThrowing_constructor_execution(Object o) {
+ System.out.println("afterThrowing_constructor_execution: " + o);
+ }
+
+ public static Object ajc_around_constructor_execution(AroundClosure closure) throws Throwable {
+ Object ret = null;
+ for (int i=0; i<3; i++) {
+ System.out.println("enter: " + i);
+ ret = closure.run(new Object[] {});
+ }
+ return ret;
+ }
+
+
+ // ---
+
+
+ public static void ajc_before_field_get() {
+ System.out.println("before_field_get");
+ }
+ public static void ajc_before_field_get(Object o) {
+ System.out.println("before_field_get: " + o);
+ }
+
+ public static void ajc_after_field_get() {
+ System.out.println("after_field_get");
+ }
+ public static void ajc_after_field_get(Object o) {
+ System.out.println("after_field_get: " + o);
+ }
+
+ public static void ajc_afterReturning_field_get() {
+ System.out.println("afterReturning_field_get");
+ }
+ public static void ajc_afterReturning_field_get(Object o) {
+ System.out.println("afterReturning_field_get: " + o);
+ }
+
+ public static void ajc_afterThrowing_field_get() {
+ System.out.println("afterThrowing_field_get");
+ }
+ public static void ajc_afterThrowing_field_get(Object o) {
+ System.out.println("afterThrowing_field_get: " + o);
+ }
+ public static void ajc_afterThrowing_field_get(Throwable t) {
+ System.out.println("afterThrowing_field_get: " + t);
+ }
+
+ public static Object ajc_around_field_get(AroundClosure closure) throws Throwable {
+ Object ret = closure.run(new Object[] {});
+ return ret;
+ }
+
+
+ // ---
+
+
+ public static void ajc_before_field_set() {
+ System.out.println("before_field_set");
+ }
+ public static void ajc_before_field_set(Object o) {
+ System.out.println("before_field_set: " + o);
+ }
+
+ public static void ajc_after_field_set() {
+ System.out.println("after_field_set");
+ }
+ public static void ajc_after_field_set(Object o) {
+ System.out.println("after_field_set: " + o);
+ }
+
+ public static void ajc_afterReturning_field_set() {
+ System.out.println("afterReturning_field_set");
+ }
+ public static void ajc_afterReturning_field_set(Object o) {
+ System.out.println("afterReturning_field_set: " + o);
+ }
+
+ public static void ajc_afterThrowing_field_set() {
+ System.out.println("afterThrowing_field_set");
+ }
+ public static void ajc_afterThrowing_field_set(Object o) {
+ System.out.println("afterThrowing_field_set: " + o);
+ }
+ public static void ajc_afterThrowing_field_set(Throwable t) {
+ System.out.println("afterThrowing_field_set: " + t);
+ }
+
+ public static Object ajc_around_field_set(AroundClosure closure) throws Throwable {
+ Object ret = closure.run(new Object[] {});
+ return ret;
+ }
+
+ // don't call this method for callee-side call join points
+ public static void ajc_before(JoinPoint.StaticPart tjp) {
+ System.out.println("before: " + tjp);
+ if (tjp.getSourceLocation() == null) {
+ throw new RuntimeException("didn't want null");
+ }
+ System.out.println(" loc: " + tjp.getSourceLocation());
+ }
+
+ public static void ajc_before(JoinPoint tjp) {
+ System.out.println("before: " + tjp + " this = " + tjp.getThis() +
+ " target = " + tjp.getTarget() +
+ " args = " + Arrays.asList(tjp.getArgs()));
+ }
+
+ // per object stuff
+
+ private static Map objects = new HashMap();
+
+ public static void ajc$perObjectBind(Object o) {
+ if (objects.containsKey(o)) return;
+ objects.put(o, new Aspect());
+ }
+
+ public static boolean hasAspect(Object o) {
+ return objects.containsKey(o);
+ }
+
+ public static Aspect aspectOf(Object o) {
+ return (Aspect) objects.get(o);
+ }
+
+
+ // per cflow stuff
+
+ public static void ajc$perCflowPush() {
+ ajc$perCflowStack.pushInstance(new Aspect());
+ }
+
+ public static boolean hasAspect() {
+ return ajc$perCflowStack.isValid();
+ }
+
+ public static Aspect aspectOf() {
+ if (ajc$perSingletonInstance != null) return ajc$perSingletonInstance;
+
+ return (Aspect) ajc$perCflowStack.peekInstance();
+ }
+
+ public static CFlowStack ajc$perCflowStack = new CFlowStack();
+
+ // non-static methods
+
+ public static Aspect ajc$perSingletonInstance = new Aspect();
+ public void ajc_before() {
+ System.out.println("before in: " + this);
+ }
+
+ public static CFlowStack ajc$cflowStack$0 = new CFlowStack();
+
+
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/DynamicHelloWorld.java b/weaver/testsrc/org/aspectj/weaver/test/DynamicHelloWorld.java
new file mode 100644
index 000000000..0e10e644a
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/DynamicHelloWorld.java
@@ -0,0 +1,30 @@
+package org.aspectj.weaver.test;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * FIXME regen with an Eclipse 2.1 the testdata/bin with this new package
+ * same for all classes in that package
+ * and update tests then (pointcuts etc)
+ *
+ * @version 1.0
+ * @author
+ */
+public class DynamicHelloWorld implements Serializable {
+
+ public static void main(String[] args) {
+ try {
+ new DynamicHelloWorld().doit("hello", Collections.EMPTY_LIST);
+ } catch (UnsupportedOperationException t) {
+ System.out.println("expected and caught: " + t);
+ return;
+ }
+ throw new RuntimeException("should have caught exception");
+ }
+
+ String doit(String s, List l) {
+ l.add(s); // this will throw an exception
+ return l.toString();
+ }
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/FancyHelloWorld.java b/weaver/testsrc/org/aspectj/weaver/test/FancyHelloWorld.java
new file mode 100644
index 000000000..5fb2577a0
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/FancyHelloWorld.java
@@ -0,0 +1,26 @@
+package org.aspectj.weaver.test;
+
+import java.io.PrintStream;
+
+/**
+ * @version 1.0
+ * @author
+ */
+public abstract class FancyHelloWorld {
+ public static void main(String[] args) {
+ PrintStream out = System.out;
+ try {
+ out.println("bye");
+ } catch (Exception e) {
+ out.println(e);
+ } finally {
+ out.println("finally");
+ }
+ }
+
+ public static String getName() {
+ int x = 0;
+ x += "name".hashCode();
+ return "name" + x;
+ }
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/FieldyHelloWorld.java b/weaver/testsrc/org/aspectj/weaver/test/FieldyHelloWorld.java
new file mode 100644
index 000000000..0ddd5e3bd
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/FieldyHelloWorld.java
@@ -0,0 +1,12 @@
+package org.aspectj.weaver.test;
+
+public class FieldyHelloWorld {
+
+ public static String str = "Hello";
+
+ public static void main(String[] args) {
+ str += " World";
+
+ System.out.println(str);
+ }
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/HelloWorld.java b/weaver/testsrc/org/aspectj/weaver/test/HelloWorld.java
new file mode 100644
index 000000000..f8da9b040
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/HelloWorld.java
@@ -0,0 +1,14 @@
+package org.aspectj.weaver.test;
+
+/**
+ * @version 1.0
+ * @author
+ */
+public class HelloWorld {
+
+ public static void main(String[] args) {
+ System.out
+ .println("hello world");
+ //System.out.println("hello world");
+ }
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/MultiArgHelloWorld.java b/weaver/testsrc/org/aspectj/weaver/test/MultiArgHelloWorld.java
new file mode 100644
index 000000000..d47fd4b93
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/MultiArgHelloWorld.java
@@ -0,0 +1,12 @@
+package org.aspectj.weaver.test;
+
+public class MultiArgHelloWorld {
+
+ public static void main(String[] args) {
+ foo("Hello", "World");
+ }
+
+ static void foo(Object s, Object t) {
+ System.out.println(s + " " + t);
+ }
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/Test.java b/weaver/testsrc/org/aspectj/weaver/test/Test.java
new file mode 100644
index 000000000..74ad97eb9
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/Test.java
@@ -0,0 +1,13 @@
+package org.aspectj.weaver.test;
+
+public class Test {
+ public static void main(String[] args) {
+ foo()
+ .
+ foo();
+ }
+ public static Test foo() {
+ new Exception().printStackTrace();
+ return new Test();
+ }
+}
diff --git a/weaver/testsrc/org/aspectj/weaver/test/TestSwitchy.java b/weaver/testsrc/org/aspectj/weaver/test/TestSwitchy.java
new file mode 100644
index 000000000..9339b772b
--- /dev/null
+++ b/weaver/testsrc/org/aspectj/weaver/test/TestSwitchy.java
@@ -0,0 +1,33 @@
+package org.aspectj.weaver.test;
+
+/**
+ * @author hilsdale
+ *
+ * To change this generated comment edit the template variable "typecomment":
+ * Window>Preferences>Java>Templates.
+ * To enable and disable the creation of type comments go to
+ * Window>Preferences>Java>Code Generation.
+ */
+public abstract class TestSwitchy {
+
+
+ public int i = 3;
+
+ public static final int j = 4;
+
+
+ public static void main(String[] args) {
+ switch (args.length) {
+ case 0: System.err.println("hi");
+ case 1: System.err.println("bye"); break;
+ case 2: System.err.println("two");
+ default: System.err.println("ning");
+ }
+ System.err.println("done");
+ }
+
+
+ abstract int goo();
+
+ void nimbo() {}
+}