return path.toString(); | return path.toString(); | ||||
} | } | ||||
/** | |||||
* @param s the String to parse for [on|off|true|false] | |||||
* @throws IllegalArgumentException if input is bad | |||||
**/ | |||||
public static boolean parseBoolean(String input) { | |||||
return parseBoolean(input, true); | |||||
} | |||||
/** | |||||
* @param s the String to parse for [on|off|true|false] | |||||
* @param iaxOnError if true and input is bad, throw | |||||
* IllegalArgumentException | |||||
* @return true if input is true, false otherwise | |||||
* @throws IllegalArgumentException if iaxOnError and input is bad | |||||
*/ | |||||
public static boolean parseBoolean(final String input, boolean iaxOnError) { | |||||
final String syntax = ": [on|off|true|false]"; | |||||
if (null == input) { | |||||
return false; | |||||
} | |||||
String lc = input.trim().toLowerCase(); | |||||
boolean result = false; | |||||
boolean valid = false; | |||||
switch (lc.length()) { | |||||
case 2: | |||||
if (valid = "on".equals(lc)) { | |||||
result = true; | |||||
} | |||||
break; | |||||
case 3: | |||||
valid = "off".equals(lc); | |||||
break; | |||||
case 4: | |||||
if (valid = "true".equals(lc)) { | |||||
result = true; | |||||
} | |||||
break; | |||||
case 5: | |||||
valid = "false".equals(lc); | |||||
break; | |||||
} | |||||
if (iaxOnError && !valid) { | |||||
throw new IllegalArgumentException(input + syntax); | |||||
} | |||||
return result; | |||||
} | |||||
public static File aspectjrtJarFile() { | public static File aspectjrtJarFile() { | ||||
return (File) LIB_ENTRIES.get(ASPECTJRT_KEY + ".file"); | return (File) LIB_ENTRIES.get(ASPECTJRT_KEY + ".file"); |
assertTrue(!TestUtil.sameFiles(holder, expectedBaseDir, actualBaseDir, filename)); | assertTrue(!TestUtil.sameFiles(holder, expectedBaseDir, actualBaseDir, filename)); | ||||
} | } | ||||
public void testParseBoolean() { | |||||
{ | |||||
String[] trues = {"true", "TRUE", "on", "ON" }; | |||||
for (int i = 0; i < trues.length; i++) { | |||||
assertTrue(trues[i], TestUtil.parseBoolean(trues[i])); | |||||
} | |||||
} | |||||
{ | |||||
String[] falses = {"false", "FALSE", "off", "off" }; | |||||
for (int i = 0; i < falses.length; i++) { | |||||
assertTrue(falses[i], !TestUtil.parseBoolean(falses[i])); | |||||
} | |||||
} | |||||
String[] errors = {"fals", "tru", "T", "on of" }; | |||||
boolean fail = false; | |||||
final int MAX = errors.length-1; | |||||
for (int i = 0; i <= MAX; i++) { | |||||
try { | |||||
TestUtil.parseBoolean(errors[i], fail); | |||||
assertTrue("no exception: " + errors[i], !fail); | |||||
} catch (IllegalArgumentException e) { | |||||
assertTrue("exception: " + errors[i], fail); | |||||
String m = e.getMessage(); | |||||
if (-1 == m.indexOf(errors[i])) { | |||||
fail(errors[i] + " not in " + m); | |||||
} | |||||
} | |||||
if ((i == MAX) && !fail) { | |||||
i = -1; | |||||
fail = true; | |||||
} | |||||
} | |||||
} | |||||
public void testFileCompareClass() throws IOException { | public void testFileCompareClass() throws IOException { | ||||
if (!TestUtil.ClassLineator.haveDisassembler()) { | if (!TestUtil.ClassLineator.haveDisassembler()) { | ||||
System.err.println("skipping testFileCompareClass - no disassembler on classpath"); | System.err.println("skipping testFileCompareClass - no disassembler on classpath"); |
import org.aspectj.testing.run.IRunStatus; | import org.aspectj.testing.run.IRunStatus; | ||||
import org.aspectj.testing.run.WrappedRunIterator; | import org.aspectj.testing.run.WrappedRunIterator; | ||||
import org.aspectj.testing.util.TestClassLoader; | import org.aspectj.testing.util.TestClassLoader; | ||||
import org.aspectj.testing.util.TestUtil; | |||||
import org.aspectj.testing.xml.SoftMessage; | import org.aspectj.testing.xml.SoftMessage; | ||||
import org.aspectj.testing.xml.XMLWriter; | import org.aspectj.testing.xml.XMLWriter; | ||||
import org.aspectj.util.FileUtil; | import org.aspectj.util.FileUtil; | ||||
} | } | ||||
public void setLTW(String ltw) { | public void setLTW(String ltw) { | ||||
useLTW = Boolean.parseBoolean(ltw); | |||||
useLTW = TestUtil.parseBoolean(ltw); | |||||
} | } | ||||
public void setAspectpath(String path) { | public void setAspectpath(String path) { | ||||
this.classpath = XMLWriter.unflattenList(path); | this.classpath = XMLWriter.unflattenList(path); | ||||
} | } | ||||
public void setErrStreamIsError(String errStreamIsError) { | public void setErrStreamIsError(String errStreamIsError) { | ||||
this.errStreamIsError = Boolean.parseBoolean(errStreamIsError); | |||||
this.errStreamIsError = TestUtil.parseBoolean(errStreamIsError); | |||||
} | } | ||||
public void setOutStreamIsError(String outStreamIsError) { | public void setOutStreamIsError(String outStreamIsError) { | ||||
this.outStreamIsError = Boolean.parseBoolean(outStreamIsError); | |||||
this.outStreamIsError = TestUtil.parseBoolean(outStreamIsError); | |||||
} | } | ||||
/** @param skip if true, then do not set up Tester */ | /** @param skip if true, then do not set up Tester */ |