diff options
author | Jean-Marie Henaff <jmhenaff@google.com> | 2014-12-12 10:57:35 +0100 |
---|---|---|
committer | Jean-Marie Henaff <jmhenaff@google.com> | 2015-01-14 09:17:30 +0100 |
commit | 09f9bf059547d1123dc53009282acd796dd4219a (patch) | |
tree | e3848c2bbdae936d940e27a50c9cb8557ea451cd /jack-tests/tests/com/android/jack/library | |
parent | c12881d6cf4f3389568ad7e5ae47d49d10451f87 (diff) | |
download | toolchain_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.java | 120 |
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; + } +} |