aboutsummaryrefslogtreecommitdiffstats
path: root/testing/src
diff options
context:
space:
mode:
authorwisberg <wisberg>2003-10-23 15:53:35 +0000
committerwisberg <wisberg>2003-10-23 15:53:35 +0000
commit68f2d9977ee5bdd9eb48098e7d56ec461fd5db8f (patch)
tree66f6160142a12d00b53bd811ce5924e9c013f776 /testing/src
parent9eb88f6b23c37afdbc754e9b591f90722ef9c8a4 (diff)
downloadaspectj-68f2d9977ee5bdd9eb48098e7d56ec461fd5db8f.tar.gz
aspectj-68f2d9977ee5bdd9eb48098e7d56ec461fd5db8f.zip
support for -1.3, -1.4, and -1.5
Diffstat (limited to 'testing/src')
-rw-r--r--testing/src/org/aspectj/testing/harness/bridge/CompilerRun.java51
1 files changed, 43 insertions, 8 deletions
diff --git a/testing/src/org/aspectj/testing/harness/bridge/CompilerRun.java b/testing/src/org/aspectj/testing/harness/bridge/CompilerRun.java
index 37d5ba9b5..91be27a0b 100644
--- a/testing/src/org/aspectj/testing/harness/bridge/CompilerRun.java
+++ b/testing/src/org/aspectj/testing/harness/bridge/CompilerRun.java
@@ -62,9 +62,13 @@ import java.util.ListIterator;
* </ul>
*/
public class CompilerRun implements IAjcRun {
+ static final String BUILDER_COMPILER =
+ "org.aspectj.ajdt.internal.core.builder.Builder.Command";
static final String AJDE_COMPILER = CompileCommand.class.getName();
static final String AJCTASK_COMPILER
= AjcTaskCompileCommand.class.getName();
+ static final String JAVAC_COMPILER
+ = JavacCompileCommand.class.getName();
static final String[] RA_String = new String[0];
@@ -142,7 +146,7 @@ public class CompilerRun implements IAjcRun {
if ((null == rdir) || (0 == rdir.length())) {
testBaseSrcDir = sandbox.testBaseDir;
} else {
- testBaseSrcDir = new File(sandbox.testBaseDir, rdir);
+ testBaseSrcDir = new File(sandbox.testBaseDir, rdir); // XXX what if rdir is two levels deep?
if (!validator.canReadDir(testBaseSrcDir, "sandbox.testBaseSrcDir")) {
return false;
}
@@ -296,9 +300,11 @@ public class CompilerRun implements IAjcRun {
sandbox.setAspectpath(aspectFiles, checkReadable, this);
}
- // set bootclasspath, if set as system property - urk!
- if (!LangUtil.isEmpty(JavaRun.BOOTCLASSPATH)) {
- sandbox.setBootclasspath(JavaRun.BOOTCLASSPATH, this);
+ // set bootclasspath if set for forking
+ AbstractRunSpec.Fork fork = spec.getFork();
+ String bootclasspath = fork.getJavaBootclasspath();
+ if (fork.fork() && (!LangUtil.isEmpty(bootclasspath))) {
+ sandbox.setBootclasspath(bootclasspath, this);
}
return true;
}
@@ -466,7 +472,17 @@ public class CompilerRun implements IAjcRun {
private static final String[] INVALID_OPTIONS = new String[]
{ "-workingdir", "-argfile", "-sourceroots", "-outjar"};
// when updating these, update tests/harness/selectionTest.xml
+
+ /** no support in the javac for these otherwise-valid options */
+ private static final String[] INVALID_JAVAC_OPTIONS = new String[]
+ { "-lenient", "-strict", "-usejavac", "-preprocess",
+ "-XOcodeSize", "-XSerializable", "-XaddSafePrefix",
+ "-XtargetNearSource",
+ "-incremental", "-Xlint", "-aspectpath",
+ "workingdir", "-argfile", "-sourceroots", "-outjar",
+ };
+
/** no support in the eclipse-based compiler for these otherwise-valid options */
private static final String[] INVALID_ECLIPSE_OPTIONS = new String[]
{ "-lenient", "-strict", "-usejavac", "-preprocess",
@@ -478,12 +494,12 @@ public class CompilerRun implements IAjcRun {
{
SEEK_PREFIX,
// eajc does not support -usejavac, -preprocess
- // testFlag() handles -ajc, -eclipse, -ajdeCompiler, -ignoreWarnings
+ // testFlag() handles -ajc, -eclipse, -javac, -ajdeCompiler, -ignoreWarnings
"-usejavac", "-preprocess",
"-Xlint", "-lenient", "-strict",
"-source14", "-verbose", "-emacssym",
- "-ajc", "-eclipse", "-ajdeCompiler", "-ajctaskCompiler",
- "-ignoreWarnings",
+ "-ajc", "-eclipse", "-ajdeCompiler", "-ajctaskCompiler", "-javac",
+ "-ignoreWarnings", "-1.3", "-1.4", "-1.5",
// XXX consider adding [!^]ajdeCompiler
"!usejavac", "!preprocess",
"!Xlint", "!lenient", "!strict",
@@ -738,6 +754,9 @@ public class CompilerRun implements IAjcRun {
* as this will otherwise fail to process it correctly.
* This converts it back to -source 1.4.
* <p>
+ * This also interprets any relevant System properties,
+ * e.g., from <code>JavaRun.BOOTCLASSPATH_KEY</code>.
+ * <p>
* Finally, compiler limitations are enforced here by skipping
* tests which the compiler cannot do:
* <ul>
@@ -959,7 +978,8 @@ public class CompilerRun implements IAjcRun {
}
} else if (ReflectionFactory.ECLIPSE.equals(result.compilerName)
|| AJDE_COMPILER.equals(result.compilerName)
- || AJCTASK_COMPILER.equals(result.compilerName)) {
+ || AJCTASK_COMPILER.equals(result.compilerName)
+ || BUILDER_COMPILER.equals(result.compilerName)) {
badOptions = LangUtil.selectOptions(argList, Spec.INVALID_ECLIPSE_OPTIONS);
if (!LangUtil.isEmpty(badOptions)) {
result.failureReason = "no support in eclipse-based compiler"
@@ -967,6 +987,15 @@ public class CompilerRun implements IAjcRun {
} else {
result.result = true;
}
+ } else if (JAVAC_COMPILER.equals(result.compilerName)) {
+ // XXX vet
+ badOptions = LangUtil.selectOptions(argList, Spec.INVALID_JAVAC_OPTIONS);
+ if (!LangUtil.isEmpty(badOptions)) {
+ result.failureReason = "no support in javac"
+ + " for (normally-valid) options " + Arrays.asList(badOptions);
+ } else {
+ result.result = true;
+ }
} else {
result.failureReason = "unrecognized compiler: " + result.compilerName;
}
@@ -1001,9 +1030,15 @@ public class CompilerRun implements IAjcRun {
if ("-ajdeCompiler".equals(arg)) {
result.compilerName = AJDE_COMPILER;
return true;
+ } else if ("-builderCompiler".equals(arg)) {
+ result.compilerName = BUILDER_COMPILER;
+ return true;
} else if ("-ajctaskCompiler".equals(arg)) {
result.compilerName = AJCTASK_COMPILER;
return true;
+ } else if ("-javac".equals(arg)) {
+ result.compilerName = JAVAC_COMPILER;
+ return true;
} else if ("-eclipse".equals(arg) || "!eclipse".equals(arg) || "^ajc".equals(arg)) {
result.compilerName = ReflectionFactory.ECLIPSE;
return true;