summaryrefslogtreecommitdiffstats
path: root/jack-tests
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2015-04-07 15:36:00 +0200
committerBenoit Lamarche <benoitlamarche@google.com>2015-04-07 15:36:00 +0200
commit7585c6828f091bee8fee380da9c838dcf16f09fd (patch)
tree901e8b32eb57ffbfb698d81d4ea31869c5af7bbb /jack-tests
parent50ab98605f6839940a495cb58a08b9f1588309a3 (diff)
downloadtoolchain_jack-7585c6828f091bee8fee380da9c838dcf16f09fd.tar.gz
toolchain_jack-7585c6828f091bee8fee380da9c838dcf16f09fd.tar.bz2
toolchain_jack-7585c6828f091bee8fee380da9c838dcf16f09fd.zip
Fix issue with not existing classpath entry
We must check existence before permissions. Bug: 20025079 Change-Id: I19d8838e2a399806bc8b70bb1dab399537c7d158
Diffstat (limited to 'jack-tests')
-rw-r--r--jack-tests/tests/com/android/jack/classpath/ClasspathTests.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java b/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
index addb5a14..9eec59e5 100644
--- a/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
+++ b/jack-tests/tests/com/android/jack/classpath/ClasspathTests.java
@@ -31,6 +31,7 @@ import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -161,23 +162,39 @@ public class ClasspathTests {
@Test
public void testMissingClasspathEntry() throws Exception {
- JackApiToolchainBase toolchain =
- AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
+ JackApiToolchainBase toolchain = AbstractTestTools.getCandidateToolchain();
File srcDir = AbstractTestTools.getTestRootDir("com.android.jack.classpath.test004.jack");
File testOut = AbstractTestTools.createTempFile("ClasspathTest", "missing");
+ ByteArrayOutputStream errOut = new ByteArrayOutputStream();
+ toolchain.setErrorStream(errOut);
toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
- .addToClasspath(new File(srcDir, "missing.jack"))
- .srcToLib(testOut, /* zipFiles = */ true, srcDir);
+ .addToClasspath(new File(srcDir, "missing.jack")).srcToLib(testOut, /* zipFiles = */ true,
+ srcDir);
+ String errString = errOut.toString();
+ Assert.assertTrue(errString.contains("Bad classpath entry ignored"));
+ Assert.assertTrue(errString.contains("missing.jack\' does not exist"));
+ }
- toolchain = AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
+ @Test
+ public void testMissingClasspathEntryStrict() throws Exception {
+ JackApiToolchainBase toolchain =
+ AbstractTestTools.getCandidateToolchain(JackApiToolchainBase.class);
+ File srcDir = AbstractTestTools.getTestRootDir("com.android.jack.classpath.test004.jack");
+ File testOut = AbstractTestTools.createTempFile("ClasspathTest", "missing");
+ ByteArrayOutputStream errOut = new ByteArrayOutputStream();
+ toolchain.setErrorStream(errOut);
toolchain.addProperty(Jack.STRICT_CLASSPATH.getName(), "true");
try {
toolchain.addToClasspath(toolchain.getDefaultBootClasspath())
- .addToClasspath(new File(srcDir, "missing.jack"))
- .srcToLib(testOut, /* zipFiles = */ true, srcDir);
+ .addToClasspath(new File(srcDir, "missing.jack")).srcToLib(testOut, /* zipFiles = */ true,
+ srcDir);
Assert.fail();
} catch (JackAbortException e) {
Assert.assertTrue(e.getCause() instanceof LibraryReadingException);
+ } finally {
+ String errString = errOut.toString();
+ Assert.assertTrue(errString.contains("Error during the library reading phase"));
+ Assert.assertTrue(errString.contains("missing.jack\' does not exist"));
}
}