summaryrefslogtreecommitdiffstats
path: root/jack-tests/tests/com/android/jack/library
diff options
context:
space:
mode:
authorJean-Marie Henaff <jmhenaff@google.com>2014-12-12 10:57:35 +0100
committerJean-Marie Henaff <jmhenaff@google.com>2015-01-14 09:17:30 +0100
commit09f9bf059547d1123dc53009282acd796dd4219a (patch)
treee3848c2bbdae936d940e27a50c9cb8557ea451cd /jack-tests/tests/com/android/jack/library
parentc12881d6cf4f3389568ad7e5ae47d49d10451f87 (diff)
downloadtoolchain_jack-09f9bf059547d1123dc53009282acd796dd4219a.zip
toolchain_jack-09f9bf059547d1123dc53009282acd796dd4219a.tar.gz
toolchain_jack-09f9bf059547d1123dc53009282acd796dd4219a.tar.bz2
Adapt more tests to new test framework
Change-Id: Id409d03f887ce20dbcf1a04792df75e3acafd499
Diffstat (limited to 'jack-tests/tests/com/android/jack/library')
-rw-r--r--jack-tests/tests/com/android/jack/library/LibraryTests.java120
1 files changed, 120 insertions, 0 deletions
diff --git a/jack-tests/tests/com/android/jack/library/LibraryTests.java b/jack-tests/tests/com/android/jack/library/LibraryTests.java
new file mode 100644
index 0000000..eddf344
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/library/LibraryTests.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.library;
+
+import com.android.jack.test.toolchain.AbstractTestTools;
+import com.android.jack.test.toolchain.AndroidToolchain;
+import com.android.jack.test.toolchain.JackBasedToolchain;
+import com.android.sched.util.RunnableHooks;
+import com.android.sched.util.file.FileOrDirectory.ChangePermission;
+import com.android.sched.util.file.FileOrDirectory.Existence;
+import com.android.sched.util.file.InputZipFile;
+import com.android.sched.vfs.InputVFS;
+import com.android.sched.vfs.InputZipVFS;
+
+import junit.framework.Assert;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.IOException;
+
+import javax.annotation.Nonnull;
+
+public class LibraryTests {
+ @BeforeClass
+ public static void setUpClass() {
+ LibraryTests.class.getClassLoader().setDefaultAssertionStatus(true);
+ }
+
+ @Test
+ public void testEmptyLibraryInClassPath() throws Exception {
+ File emptyLib = createEmptyLibrary();
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + emptyLib.getPath(),
+ AbstractTestTools.createTempFile("library001", ".jack"), /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+ }
+
+ @Test
+ public void testRscLibraryInClassPath() throws Exception {
+ File emptyLib = createRscLibrary();
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath())
+ + File.pathSeparator + emptyLib.getPath(),
+ AbstractTestTools.createTempFile("library001", ".jack"), /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+ }
+
+ @Test
+ public void testImportEmptyLibrary() throws Exception {
+ File lib = createEmptyLibrary();
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.addStaticLibs(lib);
+ toolchain.srcToExe(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()),
+ AbstractTestTools.createTempFile("library001", ".jack"), /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+ }
+
+ @Test
+ public void testImportRscLibrary() throws Exception {
+ File lib = createRscLibrary();
+ File out = AbstractTestTools.createTempFile("library001", ".jack");
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.addStaticLibs(lib);
+ toolchain.srcToLib(AbstractTestTools.getClasspathAsString(toolchain.getDefaultBootClasspath()),
+ out, /* zipFile = */
+ true, AbstractTestTools.getTestRootDir("com.android.jack.library.test001.jack"));
+
+ RunnableHooks hooks = new RunnableHooks();
+ InputVFS vfs = new InputZipVFS(
+ new InputZipFile(out.getPath(), hooks, Existence.MUST_EXIST, ChangePermission.NOCHANGE));
+ try {
+ InputJackLibrary inputJackLibrary = JackLibraryFactory.getInputLibrary(vfs);
+ Assert.assertTrue(inputJackLibrary.containsFileType(FileType.RSC));
+ } finally {
+ vfs.close();
+ }
+ }
+
+ @Nonnull
+ private File createEmptyLibrary() throws IOException, Exception {
+ File emptyLib = AbstractTestTools.createTempFile("empty", ".jack");
+
+ AndroidToolchain toolchain = AbstractTestTools.getCandidateToolchain(AndroidToolchain.class);
+ toolchain.srcToLib(/* classpath = */ null, emptyLib, /* zipFiles = */ true);
+
+ return emptyLib;
+ }
+
+ @Nonnull
+ private File createRscLibrary() throws IOException, Exception {
+ File emptyLib = AbstractTestTools.createTempFile("rsc", ".jack");
+
+ JackBasedToolchain toolchain =
+ AbstractTestTools.getCandidateToolchain(JackBasedToolchain.class);
+ toolchain.addResource(AbstractTestTools.getTestRootDir("com.android.jack.library.test001.lib"));
+ toolchain.srcToLib(/* classpath = */ null, emptyLib, /* zipFiles = */ true);
+
+ return emptyLib;
+ }
+}