From: wisberg Date: Mon, 28 Apr 2003 20:08:56 +0000 (+0000) Subject: test cases for binary warnings (bugs 37020, 37021, 37023) X-Git-Tag: V1_1_0_RC2~145 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9b30f9f9d9e55ff51dc6c05ee88e00c1d84c8abf;p=aspectj.git test cases for binary warnings (bugs 37020, 37021, 37023) --- 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/new/binaryWarnings/injars/app-ajc-1.1.jar b/tests/new/binaryWarnings/injars/app-ajc-1.1.jar new file mode 100644 index 000000000..c05b42247 Binary files /dev/null and b/tests/new/binaryWarnings/injars/app-ajc-1.1.jar differ diff --git a/tests/new/binaryWarnings/injars/app-javac-1.4.jar b/tests/new/binaryWarnings/injars/app-javac-1.4.jar new file mode 100644 index 000000000..c16325897 Binary files /dev/null and b/tests/new/binaryWarnings/injars/app-javac-1.4.jar differ 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