summaryrefslogtreecommitdiffstats
path: root/jack-tests
diff options
context:
space:
mode:
authorBenoit Lamarche <benoitlamarche@google.com>2015-05-21 15:57:41 +0200
committerBenoit Lamarche <benoitlamarche@google.com>2015-05-29 11:55:12 +0200
commitc359103bc956a61f1e87081994617b62a78f1dc8 (patch)
tree96f342e1bf18ed87913028b189d1440a4cc7eaff /jack-tests
parent6007144b3ab9a8c59648fa35a0af920d2a64356e (diff)
downloadtoolchain_jack-c359103bc956a61f1e87081994617b62a78f1dc8.tar.gz
toolchain_jack-c359103bc956a61f1e87081994617b62a78f1dc8.tar.bz2
toolchain_jack-c359103bc956a61f1e87081994617b62a78f1dc8.zip
Adapt incremental tests to use InputJackLibary
(cherry picked from commit 097b5d6e807b250847ec9ff27f4a7ac7a336620f) Change-Id: I954bb80fe35fcc59043665400dd8331e2153427b
Diffstat (limited to 'jack-tests')
-rw-r--r--jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java72
-rw-r--r--jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest008.java12
-rw-r--r--jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest011.java2
-rw-r--r--jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest012.java2
-rw-r--r--jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest013.java6
-rw-r--r--jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest014.java4
-rw-r--r--jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest015.java30
7 files changed, 61 insertions, 67 deletions
diff --git a/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java b/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
index 0a8dc756..23ceacad 100644
--- a/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
+++ b/jack-tests/src/com/android/jack/test/helper/IncrementalTestHelper.java
@@ -16,8 +16,9 @@
package com.android.jack.test.helper;
-import com.android.jack.backend.jayce.JayceFileImporter;
import com.android.jack.library.FileType;
+import com.android.jack.library.InputJackLibrary;
+import com.android.jack.library.InputJackLibraryCodec;
import com.android.jack.test.runner.AbstractRuntimeRunner;
import com.android.jack.test.runner.RuntimeRunner;
import com.android.jack.test.toolchain.AbstractTestTools;
@@ -26,6 +27,9 @@ import com.android.jack.test.toolchain.JackApiToolchainBase;
import com.android.jack.test.toolchain.JackBasedToolchain.MultiDexKind;
import com.android.jack.test.toolchain.JackCliToolchain;
import com.android.jack.test.toolchain.LegacyJillToolchain;
+import com.android.sched.util.codec.CodecContext;
+import com.android.sched.vfs.InputVFile;
+import com.android.sched.vfs.VPath;
import junit.framework.Assert;
@@ -37,6 +41,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -60,11 +65,9 @@ public class IncrementalTestHelper {
@Nonnull
private final File compilerStateFolder;
@Nonnull
- private final File jackFolder;
- @Nonnull
private final Set<File> javaFiles = new HashSet<File>();
@Nonnull
- private final Map<String, Long> fileModificationDate = new HashMap<String, Long>();
+ private final Map<VPath, Long> fileModificationDate = new HashMap<VPath, Long>();
@Nonnull
private OutputStream out = System.out;
@Nonnull
@@ -82,12 +85,12 @@ public class IncrementalTestHelper {
if (!compilerStateFolder.exists() && !compilerStateFolder.mkdir()) {
throw new IOException("Failed to create folder " + compilerStateFolder.getAbsolutePath());
}
+
dexOutDir = new File(testingFolder, "outputBinary");
if (!dexOutDir.exists() && !dexOutDir.mkdir()) {
throw new IOException("Failed to create folder " + dexOutDir.getAbsolutePath());
}
dexFile = new File(dexOutDir, "classes.dex");
- jackFolder = new File(compilerStateFolder, FileType.JAYCE.getPrefix());
}
public void setOut(OutputStream out) {
@@ -126,20 +129,11 @@ public class IncrementalTestHelper {
}
public void snapshotJackFilesModificationDate() {
- List<File> jackFiles = new ArrayList<File>();
- fillJackFiles(jackFolder, jackFiles);
- for (File jackFile : jackFiles) {
- fileModificationDate.put(jackFile.getAbsolutePath(), Long.valueOf(jackFile.lastModified()));
- }
- }
-
- private void fillJackFiles(@Nonnull File file, @Nonnull List<File> jackFiles) {
- if (file.isDirectory()) {
- for (File subFile : file.listFiles()) {
- fillJackFiles(subFile, jackFiles);
- }
- } else if (file.getName().endsWith(JayceFileImporter.JAYCE_FILE_EXTENSION)) {
- jackFiles.add(file);
+ Iterator<InputVFile> jayceIter = getJayceIterator();
+ while (jayceIter.hasNext()) {
+ InputVFile jayceFile = jayceIter.next();
+ fileModificationDate.put(jayceFile.getPathFromRoot(),
+ Long.valueOf(jayceFile.getLastModified()));
}
}
@@ -148,20 +142,20 @@ public class IncrementalTestHelper {
assert !fileModificationDate.isEmpty();
List<String> fqnOfRebuiltTypes = new ArrayList<String>();
- List<File> jackFiles = new ArrayList<File>();
- fillJackFiles(jackFolder, jackFiles);
-
- for (File jackFile : jackFiles) {
- Long previousDate = fileModificationDate.get(jackFile.getAbsolutePath());
- if (previousDate == null || jackFile.lastModified() > previousDate.longValue()) {
- String jackFileName = jackFile.getAbsolutePath();
- String binaryTypeName = jackFileName.substring(0, jackFileName.indexOf(".jayce"));
- binaryTypeName = binaryTypeName.substring(jackFolder.getAbsolutePath().length() + 1);
- fqnOfRebuiltTypes.add(binaryTypeName.replace(File.separatorChar, '.'));
+ Iterator<InputVFile> jayceIter = getJayceIterator();
+ while (jayceIter.hasNext()) {
+ InputVFile jayceFile = jayceIter.next();
+ VPath path = jayceFile.getPathFromRoot();
+ Long previousDate = fileModificationDate.get(path);
+ if (previousDate == null || jayceFile.getLastModified() > previousDate.longValue()) {
+ String fqnWithExtension = path.getPathAsString('.');
+ String fqn = fqnWithExtension.substring(0,
+ fqnWithExtension.lastIndexOf(FileType.JAYCE.getFileExtension()));
+ fqnOfRebuiltTypes.add(fqn);
}
}
- return (fqnOfRebuiltTypes);
+ return fqnOfRebuiltTypes;
}
public void incrementalBuildFromFolder() throws Exception {
@@ -224,13 +218,21 @@ public class IncrementalTestHelper {
}
@Nonnull
- public File getJackFolder() {
- return jackFolder;
+ public Iterator<InputVFile> getJayceIterator() {
+ InputJackLibrary compilerStateLib =
+ new InputJackLibraryCodec().parseString(new CodecContext(), compilerStateFolder.getPath());
+
+ return compilerStateLib.iterator(FileType.JAYCE);
}
@Nonnull
- public List<File> getJackFiles() {
- return AbstractTestTools.getFiles(jackFolder, ".jayce");
+ public int getJayceCount() {
+ int size = 0;
+ Iterator<InputVFile> jayceIter = getJayceIterator();
+ while (jayceIter.hasNext()) {
+ size++;
+ jayceIter.next();
+ }
+ return size;
}
-
}
diff --git a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest008.java b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest008.java
index 0d7a7da8..895c3e81 100644
--- a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest008.java
+++ b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest008.java
@@ -53,7 +53,7 @@ public class DependenciesTest008 {
" public static void main(String[] args) {new B().m();} } \n");
ite.incrementalBuildFromFolder();
- Assert.assertEquals(2, ite.getJackFiles().size());
+ Assert.assertEquals(2, ite.getJayceCount());
ite.addJavaFile("jack.incremental", "A.java",
"package jack.incremental; \n" +
@@ -65,7 +65,7 @@ public class DependenciesTest008 {
Assert.fail();
} catch (FrontendCompilationException e) {
// Error is ok
- Assert.assertEquals(0, ite.getJackFiles().size());
+ Assert.assertEquals(0, ite.getJayceCount());
}
}
@@ -83,14 +83,14 @@ public class DependenciesTest008 {
"class B { } \n");
ite.incrementalBuildFromFolder();
- Assert.assertEquals(2, ite.getJackFiles().size());
+ Assert.assertEquals(2, ite.getJayceCount());
ite.addJavaFile("jack.incremental", "A.java",
"package jack.incremental; \n" +
"public class A { }\n");
ite.incrementalBuildFromFolder();
- Assert.assertEquals(1, ite.getJackFiles().size());
+ Assert.assertEquals(1, ite.getJayceCount());
}
/**
@@ -113,7 +113,7 @@ public class DependenciesTest008 {
"public class C { public void test() {new B();} } \n");
ite.incrementalBuildFromFolder();
- Assert.assertEquals(3, ite.getJackFiles().size());
+ Assert.assertEquals(3, ite.getJayceCount());
ite.addJavaFile("jack.incremental", "A.java",
"package jack.incremental; \n" +
@@ -124,7 +124,7 @@ public class DependenciesTest008 {
Assert.fail();
} catch (FrontendCompilationException e) {
// Error is ok
- Assert.assertEquals(0, ite.getJackFiles().size());
+ Assert.assertEquals(0, ite.getJayceCount());
}
}
}
diff --git a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest011.java b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest011.java
index 3307d358..4fefa29d 100644
--- a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest011.java
+++ b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest011.java
@@ -60,7 +60,7 @@ public class DependenciesTest011 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(2, ite.getJackFiles().size());
+ Assert.assertEquals(2, ite.getJayceCount());
ite.deleteJavaFile(f);
diff --git a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest012.java b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest012.java
index 639ae8d8..d19a2430 100644
--- a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest012.java
+++ b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest012.java
@@ -61,7 +61,7 @@ public class DependenciesTest012 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(2, ite.getJackFiles().size());
+ Assert.assertEquals(2, ite.getJayceCount());
ite.deleteJavaFile(f);
diff --git a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest013.java b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest013.java
index 5d958d04..b29ca2ac 100644
--- a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest013.java
+++ b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest013.java
@@ -62,7 +62,7 @@ public class DependenciesTest013 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(2, ite.getJackFiles().size());
+ Assert.assertEquals(2, ite.getJayceCount());
ite.deleteJavaFile(f);
@@ -107,7 +107,7 @@ public class DependenciesTest013 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(3, ite.getJackFiles().size());
+ Assert.assertEquals(3, ite.getJayceCount());
ite.deleteJavaFile(f);
@@ -152,7 +152,7 @@ public class DependenciesTest013 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(3, ite.getJackFiles().size());
+ Assert.assertEquals(3, ite.getJayceCount());
ite.deleteJavaFile(f);
diff --git a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest014.java b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest014.java
index 5a932a68..1d8ac8e5 100644
--- a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest014.java
+++ b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest014.java
@@ -55,7 +55,7 @@ public class DependenciesTest014 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(2, ite.getJackFiles().size());
+ Assert.assertEquals(2, ite.getJayceCount());
ite.deleteJavaFile(f);
ite.incrementalBuildFromFolder();
@@ -86,7 +86,7 @@ public class DependenciesTest014 {
ite.incrementalBuildFromFolder();
ite.snapshotJackFilesModificationDate();
- Assert.assertEquals(3, ite.getJackFiles().size());
+ Assert.assertEquals(3, ite.getJayceCount());
ite.deleteJavaFile(fB);
ite.deleteJavaFile(fC);
diff --git a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest015.java b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest015.java
index cd06a73e..35c351f6 100644
--- a/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest015.java
+++ b/jack-tests/tests/com/android/jack/experimental/incremental/DependenciesTest015.java
@@ -26,14 +26,12 @@ import com.android.jack.test.toolchain.JackBasedToolchain.MultiDexKind;
import junit.framework.Assert;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.util.Arrays;
-import java.util.List;
/**
* JUnit test checking incremental support.
@@ -60,8 +58,7 @@ public class DependenciesTest015 {
iteLib.incrementalBuildFromFolder();
iteLib.snapshotJackFilesModificationDate();
- List<File> jackFilesLib = iteLib.getJackFiles();
- Assert.assertEquals(1, jackFilesLib.size());
+ Assert.assertEquals(1, iteLib.getJayceCount());
IncrementalTestHelper iteProg =
@@ -74,15 +71,14 @@ public class DependenciesTest015 {
iteProg.incrementalBuildFromFolder(new File[]{iteLib.getCompilerStateFolder()});
iteProg.snapshotJackFilesModificationDate();
- Assert.assertEquals(1, iteProg.getJackFiles().size());
+ Assert.assertEquals(1, iteProg.getJayceCount());
iteLib.deleteJavaFile(f);
iteLib.addJavaFile("jack.incremental", "A.java", "package jack.incremental; \n"
+ "public abstract class A { \n" + "public abstract int m(); }");
iteLib.incrementalBuildFromFolder();
iteLib.snapshotJackFilesModificationDate();
- jackFilesLib = iteLib.getJackFiles();
- Assert.assertEquals(1, jackFilesLib.size());
+ Assert.assertEquals(1, iteLib.getJayceCount());
ByteArrayOutputStream err = new ByteArrayOutputStream();
iteProg.setErr(err);
@@ -108,8 +104,7 @@ public class DependenciesTest015 {
iteLib.incrementalBuildFromFolder();
iteLib.snapshotJackFilesModificationDate();
- List<File> jackFilesLib = iteLib.getJackFiles();
- Assert.assertEquals(1, jackFilesLib.size());
+ Assert.assertEquals(1, iteLib.getJayceCount());
IncrementalTestHelper iteProg =
@@ -121,7 +116,7 @@ public class DependenciesTest015 {
iteProg.incrementalBuildFromFolder(null /* classpath */,
Arrays.asList(iteLib.getCompilerStateFolder()));
iteProg.snapshotJackFilesModificationDate();
- Assert.assertEquals(1, iteProg.getJackFiles().size());
+ Assert.assertEquals(1, iteProg.getJayceCount());
DexBuffer db = new DexBuffer(new FileInputStream(iteProg.getDexFile()));
Assert.assertTrue(db.typeNames().contains("Ljack/incremental/A;"));
@@ -131,13 +126,12 @@ public class DependenciesTest015 {
+ "public class C { \n" + "public void m() {} }");
iteLib.incrementalBuildFromFolder();
iteLib.snapshotJackFilesModificationDate();
- jackFilesLib = iteLib.getJackFiles();
- Assert.assertEquals(2, jackFilesLib.size());
+ Assert.assertEquals(2, iteLib.getJayceCount());
iteProg.incrementalBuildFromFolder(null, Arrays.asList(iteLib.getCompilerStateFolder()));
iteProg.snapshotJackFilesModificationDate();
- Assert.assertEquals(1, iteProg.getJackFiles().size());
+ Assert.assertEquals(1, iteProg.getJayceCount());
db = new DexBuffer(new FileInputStream(iteProg.getDexFile()));
Assert.assertTrue(db.typeNames().contains("Ljack/incremental/A;"));
@@ -159,8 +153,7 @@ public class DependenciesTest015 {
iteLib.incrementalBuildFromFolder();
iteLib.snapshotJackFilesModificationDate();
- List<File> jackFilesLib = iteLib.getJackFiles();
- Assert.assertEquals(1, jackFilesLib.size());
+ Assert.assertEquals(1, iteLib.getJayceCount());
IncrementalTestHelper iteProg =
@@ -172,7 +165,7 @@ public class DependenciesTest015 {
iteProg.incrementalBuildFromFolder(null /* classpath */,
Arrays.asList(iteLib.getCompilerStateFolder()), MultiDexKind.NATIVE);
iteProg.snapshotJackFilesModificationDate();
- Assert.assertEquals(1, iteProg.getJackFiles().size());
+ Assert.assertEquals(1, iteProg.getJayceCount());
DexBuffer db = new DexBuffer(new FileInputStream(iteProg.getDexFile()));
Assert.assertTrue(db.typeNames().contains("Ljack/incremental/A;"));
@@ -182,13 +175,12 @@ public class DependenciesTest015 {
+ "public class C { \n" + "public void m() {} }");
iteLib.incrementalBuildFromFolder();
iteLib.snapshotJackFilesModificationDate();
- jackFilesLib = iteLib.getJackFiles();
- Assert.assertEquals(2, jackFilesLib.size());
+ Assert.assertEquals(2, iteLib.getJayceCount());
iteProg.incrementalBuildFromFolder(null, Arrays.asList(iteLib.getCompilerStateFolder()));
iteProg.snapshotJackFilesModificationDate();
- Assert.assertEquals(1, iteProg.getJackFiles().size());
+ Assert.assertEquals(1, iteProg.getJayceCount());
db = new DexBuffer(new FileInputStream(iteProg.getDexFile()));
Assert.assertTrue(db.typeNames().contains("Ljack/incremental/A;"));