diff options
author | wisberg <wisberg> | 2003-04-28 20:08:56 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2003-04-28 20:08:56 +0000 |
commit | 9b30f9f9d9e55ff51dc6c05ee88e00c1d84c8abf (patch) | |
tree | 253ba1792a13cab460b07fe12fe43e1398cc8d4a | |
parent | 7d144321837cac05cdbe2a30323d670dfcc9809a (diff) | |
download | aspectj-9b30f9f9d9e55ff51dc6c05ee88e00c1d84c8abf.tar.gz aspectj-9b30f9f9d9e55ff51dc6c05ee88e00c1d84c8abf.zip |
test cases for binary warnings (bugs 37020, 37021, 37023)
-rw-r--r-- | tests/ajcTestsFailing.xml | 112 | ||||
-rw-r--r-- | tests/new/binaryWarnings/injars/app-ajc-1.1.jar | bin | 0 -> 1143 bytes | |||
-rw-r--r-- | tests/new/binaryWarnings/injars/app-javac-1.4.jar | bin | 0 -> 1208 bytes | |||
-rw-r--r-- | tests/new/binaryWarnings/readme.txt | 43 | ||||
-rw-r--r-- | tests/new/binaryWarnings/src/app/Main.java | 55 | ||||
-rw-r--r-- | tests/new/binaryWarnings/src/aspects/MainWarnings.java | 56 |
6 files changed, 266 insertions, 0 deletions
diff --git a/tests/ajcTestsFailing.xml b/tests/ajcTestsFailing.xml index 41665da25..711108e0a 100644 --- a/tests/ajcTestsFailing.xml +++ b/tests/ajcTestsFailing.xml @@ -4,7 +4,119 @@ <!-- contains valid tests that the compiler has never passed --> <suite> + <!-- expected messages the same for these tests. note: + - that pointcut-and not supported in message text TODO + - no test on adviceexecution() + - only verifying by line number now + (not flagging error in filename. Binary filenames are + listed as, e.g., app.Main.class. + Should get from filename attribute) + --> + <ajc-test dir="new/binaryWarnings/src" pr="37020" + title="declare warnings on main"> + <compile files="aspects/MainWarnings.java,app/Main.java"> + <message kind="warning" file="app/Main.java" + line="6" text="set(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="8" text="set(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="12" text="get(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="14" text="set(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="16" text="call(Main.new())"/> + <message kind="warning" file="app/Main.java" + line="19" text="call(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="23" text="execution(Main.new())"/> + <message kind="warning" file="app/Main.java" + line="26" text="execution(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="29" text="get(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="31" text="set(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="33" text="handler(RuntimeException)"/> + <message kind="warning" file="app/Main.java" + line="35" text="withincode(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="42" text="withincode(void Main.stop())"/> + <message kind="warning" file="app/Main.java" + line="50" text="preinitialization(app.C.new())"/> + </compile> + + <run class="app.Main"/> + </ajc-test> + <ajc-test dir="new/binaryWarnings/src" pr="37020" + title="declare warnings on binary javac 1.4 classes"> + <compile files="aspects/MainWarnings.java,../injars/app-javac-1.4.jar"> + <message kind="warning" file="app/Main.java" + line="6" text="set(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="8" text="set(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="12" text="get(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="14" text="set(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="16" text="call(Main.new())"/> + <message kind="warning" file="app/Main.java" + line="19" text="call(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="23" text="execution(Main.new())"/> + <message kind="warning" file="app/Main.java" + line="26" text="execution(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="29" text="get(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="31" text="set(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="33" text="handler(RuntimeException)"/> + <message kind="warning" file="app/Main.java" + line="35" text="withincode(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="42" text="withincode(void Main.stop())"/> + <message kind="warning" file="app/Main.java" + line="50" text="preinitialization(app.C.new())"/> + </compile> + <run class="app.Main"/> + </ajc-test> + <ajc-test dir="new/binaryWarnings/src" pr="37023" + title="declare warnings on binary ajc 1.1 classes"> + <compile files="aspects/MainWarnings.java,../injars/app-ajc-1.1.jar"> + <message kind="warning" file="app/Main.java" + line="6" text="set(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="8" text="set(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="12" text="get(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="14" text="set(String Main.staticString)"/> + <message kind="warning" file="app/Main.java" + line="16" text="call(Main.new())"/> + <message kind="warning" file="app/Main.java" + line="19" text="call(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="23" text="execution(Main.new())"/> + <message kind="warning" file="app/Main.java" + line="26" text="execution(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="29" text="get(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="31" text="set(String Main.s)"/> + <message kind="warning" file="app/Main.java" + line="33" text="handler(RuntimeException)"/> + <message kind="warning" file="app/Main.java" + line="35" text="withincode(void Main.go(String))"/> + <message kind="warning" file="app/Main.java" + line="42" text="withincode(void Main.stop())"/> + <message kind="warning" file="app/Main.java" + line="50" text="preinitialization(app.C.new())"/> + + </compile> + <run class="app.Main"/> + </ajc-test> </suite> diff --git a/tests/new/binaryWarnings/injars/app-ajc-1.1.jar b/tests/new/binaryWarnings/injars/app-ajc-1.1.jar Binary files differnew file mode 100644 index 000000000..c05b42247 --- /dev/null +++ b/tests/new/binaryWarnings/injars/app-ajc-1.1.jar diff --git a/tests/new/binaryWarnings/injars/app-javac-1.4.jar b/tests/new/binaryWarnings/injars/app-javac-1.4.jar Binary files differnew file mode 100644 index 000000000..c16325897 --- /dev/null +++ b/tests/new/binaryWarnings/injars/app-javac-1.4.jar diff --git a/tests/new/binaryWarnings/readme.txt b/tests/new/binaryWarnings/readme.txt new file mode 100644 index 000000000..6b6eb486e --- /dev/null +++ b/tests/new/binaryWarnings/readme.txt @@ -0,0 +1,43 @@ + +Warning: brittle test! Change carefully and rebuild binaries! + +Bugs: 37020, 37021, 37023 + +- there are 3+ associated test specifications: + - source-only + - binary (javac) application, source aspect + - binary (ajc) application, source aspect + - binary (javac) application, binary aspect (todo) + - binary (ajc) application, binary aspect (todo) + +- the lines in Main.java correspond with + warning line values in the test specifications + +- the message text in MainWarnings.java correspond with + warning text values in the test specifications + +- all the warnings in MainWarnings.java + should resolve to unique lines + (until we verify based on more than line) + +- all test specifications should have exactly the same warnings + as each other as as specified in MainWarnings.java + +To build the injar sources from the src directory: + +Using javac: + mkdir classes + javac -d classes app/Main.java + jar cfM ../injars/app-javac-1.4.jar -C classes . + rm -rf classes + +Using ajc: + ajc -classpath ../../../lib/test/aspectjrt.jar \ + -outjar ../injars/app-ajc-1.1.jar app/Main.java + +Using ajc in eclipse, from a module directory: + + {ajc} -classpath ../lib/test/aspectjrt.jar + -outjar ../tests/new/binaryWarnings/injars/app-ajc-1.1.jar + ../test/new/binnaryWarnings/src/app/Main.java + diff --git a/tests/new/binaryWarnings/src/app/Main.java b/tests/new/binaryWarnings/src/app/Main.java new file mode 100644 index 000000000..a2daee1d9 --- /dev/null +++ b/tests/new/binaryWarnings/src/app/Main.java @@ -0,0 +1,55 @@ + +package app; +// WARNING: do not change lineation without changing test specification!! +public class Main { + + static String staticString = "hello"; + + String s = "me"; + + public static void main(String[] args) { + + String temp = staticString; // 12 + + staticString = temp + " world!"; // 14 + + Main main = new Main(); // 16 + + for (int i = 0; i < args.length; i++) { + main.go(args[i]); // 19 + } + } + + Main() { // 23 + } + + void go(String s) { // 26 + try { + + String temp = this.s; // 29 + + this.s = temp + ", " + s; // 31 + + } catch (RuntimeException e) { // 33 + + stop(); // 35 + + } + } + + void stop() { // 40 + + new Main(); // 42 + + } +} + + +class C { + + C() { // 50 + + } + +} + diff --git a/tests/new/binaryWarnings/src/aspects/MainWarnings.java b/tests/new/binaryWarnings/src/aspects/MainWarnings.java new file mode 100644 index 000000000..4debf1f3b --- /dev/null +++ b/tests/new/binaryWarnings/src/aspects/MainWarnings.java @@ -0,0 +1,56 @@ + +package aspects; + +import app.Main; + +// WARNING: do not change message text without changing test specification +public privileged aspect MainWarnings { + + declare warning : staticinitialization(Main) + : "staticinitializtion(Main)"; + + declare warning : initialization(Main.new()) + : "initialization(Main.new())"; + + declare warning : execution(Main.new()) + : "execution(Main.new())"; + + declare warning : execution(void Main.go(String)) + : "execution(void Main.go(String))"; + + declare warning : call(Main.new()) + : "call(Main.new())"; + + declare warning : call(void Main.go(String)) + : "call(void Main.go(String))"; + + declare warning : call(Main.new()) + && withincode(void Main.stop()) + : "call(Main.new()) && withincode(void Main.stop())"; + + declare warning : call(void Main.stop()) + && withincode(void Main.go(String)) + : "call(void Main.stop()) && withincode(void Main.go(String))"; + + declare warning : get(String Main.s) + : "get(String Main.s)"; + + declare warning : set(String Main.s) + : "set(String Main.s)"; + + declare warning : get(String Main.staticString) + : "get(String Main.staticString)"; + + declare warning : set(String Main.staticString) + : "set(String Main.staticString)"; + + declare warning : handler(RuntimeException) + && within(Main) + : "handler(RuntimeException) && within(Main)"; + + declare warning : preinitialization(app.C.new()) + : "preinitialization(app.C.new())"; + +// declare warning : adviceexecution() && within(app.AdvisingAspect) +// : "adviceexecution() && within(app.AdvisingAspect)"; +}
\ No newline at end of file |