diff options
author | Benoit Lamarche <benoitlamarche@google.com> | 2015-04-07 15:36:00 +0200 |
---|---|---|
committer | Benoit Lamarche <benoitlamarche@google.com> | 2015-04-07 15:36:00 +0200 |
commit | 7585c6828f091bee8fee380da9c838dcf16f09fd (patch) | |
tree | 901e8b32eb57ffbfb698d81d4ea31869c5af7bbb /jack-tests/tests/com/android | |
parent | 50ab98605f6839940a495cb58a08b9f1588309a3 (diff) | |
download | toolchain_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/tests/com/android')
-rw-r--r-- | jack-tests/tests/com/android/jack/classpath/ClasspathTests.java | 31 |
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")); } } |