8175336: [TESTBUG] aot junit tests added by 8169588 are not executed
Reviewed-by: kvn
This commit is contained in:
parent
f889b5119c
commit
5b097b494d
@ -20,10 +20,19 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @modules jdk.aot/jdk.tools.jaotc
|
||||
* jdk.aot/jdk.tools.jaotc.collect
|
||||
* @run junit/othervm jdk.tools.jaotc.test.collect.ClassSearchTest
|
||||
*/
|
||||
|
||||
package jdk.tools.jaotc.test.collect;
|
||||
|
||||
|
||||
import jdk.tools.jaotc.LoadedClass;
|
||||
import jdk.tools.jaotc.collect.*;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
@ -32,45 +41,90 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
public class ClassSearchTest {
|
||||
@Test(expected = InternalError.class)
|
||||
public void itShouldThrowExceptionIfNoProvidersAvailable() {
|
||||
ClassSearch target = new ClassSearch();
|
||||
SearchPath searchPath = new SearchPath();
|
||||
target.search(list("foo"), searchPath);
|
||||
target.search(list(new SearchFor("foo")), searchPath);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void itShouldFindAProviderForEachEntry() {
|
||||
Set<String> searched = new HashSet<>();
|
||||
ClassSearch target = new ClassSearch();
|
||||
target.addProvider(new SourceProvider() {
|
||||
@Override
|
||||
public ClassSource findSource(String name, SearchPath searchPath) {
|
||||
target.addProvider(provider("", (name, searchPath) -> {
|
||||
searched.add(name);
|
||||
return new NoopSource();
|
||||
}
|
||||
});
|
||||
target.search(list("foo", "bar", "foobar"), null);
|
||||
}));
|
||||
target.search(searchForList("foo", "bar", "foobar"), null);
|
||||
Assert.assertEquals(hashset("foo", "bar", "foobar"), searched);
|
||||
}
|
||||
|
||||
private SourceProvider provider(String supports, BiFunction<String, SearchPath, ClassSource> fn) {
|
||||
return new SourceProvider() {
|
||||
@Override
|
||||
public ClassSource findSource(String name, SearchPath searchPath) {
|
||||
return fn.apply(name, searchPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supports(String type) {
|
||||
return supports.equals(type);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void itShouldSearchAllProviders() {
|
||||
public void itShouldOnlySearchSupportedProvidersForKnownType() {
|
||||
Set<String> visited = new HashSet<>();
|
||||
ClassSearch target = new ClassSearch();
|
||||
target.addProvider((name, searchPath) -> {
|
||||
visited.add("1");
|
||||
|
||||
target.addProvider(provider("jar", (name, searchPath) -> {
|
||||
visited.add("jar");
|
||||
return null;
|
||||
});
|
||||
target.addProvider((name, searchPath) -> {
|
||||
visited.add("2");
|
||||
}));
|
||||
|
||||
target.addProvider(provider("dir", (name, searchPath) -> {
|
||||
visited.add("dir");
|
||||
return null;
|
||||
});
|
||||
}));
|
||||
|
||||
try {
|
||||
target.search(list("foo"), null);
|
||||
target.search(list(new SearchFor("some", "dir")), null);
|
||||
} catch (InternalError e) {
|
||||
// throws because no provider gives a source
|
||||
}
|
||||
|
||||
Assert.assertEquals(hashset("dir"), visited);
|
||||
}
|
||||
|
||||
@Test(expected = InternalError.class)
|
||||
public void itShouldThrowErrorIfMultipleSourcesAreAvailable() {
|
||||
ClassSearch target = new ClassSearch();
|
||||
target.addProvider(provider("", (name, searchPath) -> consumer -> Assert.fail()));
|
||||
target.addProvider(provider("", (name, searchPath) -> consumer -> Assert.fail()));
|
||||
|
||||
target.search(searchForList("somethign"), null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void itShouldSearchAllProvidersForUnknownType() {
|
||||
Set<String> visited = new HashSet<>();
|
||||
ClassSearch target = new ClassSearch();
|
||||
target.addProvider(provider("", (name, searchPath) -> {
|
||||
visited.add("1");
|
||||
return null;
|
||||
}));
|
||||
target.addProvider(provider("", (name, searchPath) -> {
|
||||
visited.add("2");
|
||||
return null;
|
||||
}));
|
||||
|
||||
try {
|
||||
target.search(searchForList("foo"), null);
|
||||
} catch (InternalError e) {
|
||||
// throws because no provider gives a source
|
||||
}
|
||||
@ -84,6 +138,11 @@ public class ClassSearchTest {
|
||||
|
||||
ClassSearch target = new ClassSearch();
|
||||
target.addProvider(new SourceProvider() {
|
||||
@Override
|
||||
public boolean supports(String type) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassSource findSource(String name, SearchPath searchPath) {
|
||||
return new ClassSource() {
|
||||
@ -101,7 +160,7 @@ public class ClassSearchTest {
|
||||
}
|
||||
});
|
||||
|
||||
java.util.List<LoadedClass> search = target.search(list("/tmp/something"), null);
|
||||
java.util.List<LoadedClass> search = target.search(searchForList("/tmp/something"), null);
|
||||
Assert.assertEquals(list(new LoadedClass("foo.Bar", null)), search);
|
||||
}
|
||||
|
||||
@ -115,8 +174,16 @@ public class ClassSearchTest {
|
||||
};
|
||||
|
||||
ClassSearch target = new ClassSearch();
|
||||
target.addProvider((name, searchPath) -> consumer -> consumer.accept("foo.Bar", classLoader));
|
||||
target.search(list("foobar"), null);
|
||||
target.addProvider(provider("", (name, searchPath) -> consumer -> consumer.accept("foo.Bar", classLoader)));
|
||||
target.search(searchForList("foobar"), null);
|
||||
}
|
||||
|
||||
private List<SearchFor> searchForList(String... entries) {
|
||||
List<SearchFor> list = new ArrayList<>();
|
||||
for (String entry : entries) {
|
||||
list.add(new SearchFor(entry));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private <T> List<T> list(T... entries) {
|
||||
|
@ -20,6 +20,14 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @modules jdk.aot/jdk.tools.jaotc
|
||||
* jdk.aot/jdk.tools.jaotc.collect
|
||||
* @run junit/othervm jdk.tools.jaotc.test.collect.ClassSourceTest
|
||||
*/
|
||||
|
||||
package jdk.tools.jaotc.test.collect;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
@ -27,6 +27,8 @@ import java.nio.file.Path;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import jdk.tools.jaotc.collect.FileSupport;
|
||||
|
||||
public class FakeFileSupport extends FileSupport {
|
||||
private final Set<String> exists = new HashSet<>();
|
||||
private final Set<String> directories = new HashSet<>();
|
||||
|
@ -22,6 +22,8 @@
|
||||
*/
|
||||
package jdk.tools.jaotc.test.collect;
|
||||
|
||||
import jdk.tools.jaotc.collect.SearchPath;
|
||||
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
@ -20,6 +20,17 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @modules jdk.aot/jdk.tools.jaotc
|
||||
* jdk.aot/jdk.tools.jaotc.collect
|
||||
*
|
||||
* @build jdk.tools.jaotc.test.collect.Utils
|
||||
* @build jdk.tools.jaotc.test.collect.FakeFileSupport
|
||||
* @run junit/othervm jdk.tools.jaotc.test.collect.SearchPathTest
|
||||
*/
|
||||
|
||||
package jdk.tools.jaotc.test.collect;
|
||||
|
||||
import org.junit.Before;
|
||||
@ -30,6 +41,8 @@ import java.nio.file.FileSystems;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import jdk.tools.jaotc.collect.*;
|
||||
|
||||
import static jdk.tools.jaotc.test.collect.Utils.set;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
|
@ -21,11 +21,22 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @modules jdk.aot/jdk.tools.jaotc
|
||||
* jdk.aot/jdk.tools.jaotc.collect
|
||||
* jdk.aot/jdk.tools.jaotc.collect.directory
|
||||
* @compile ../Utils.java
|
||||
* @compile ../FakeFileSupport.java
|
||||
* @run junit/othervm jdk.tools.jaotc.test.collect.directory.DirectorySourceProviderTest
|
||||
*/
|
||||
|
||||
package jdk.tools.jaotc.test.collect.directory;
|
||||
|
||||
import jdk.tools.jaotc.collect.ClassSource;
|
||||
import jdk.tools.jaotc.collect.directory.DirectorySourceProvider;
|
||||
import jdk.tools.jaotc.test.collect.FakeFileSupport;
|
||||
import jdk.tools.jaotc.test.collect.FileSupport;
|
||||
import jdk.tools.jaotc.collect.FileSupport;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -20,9 +20,23 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @modules jdk.aot/jdk.tools.jaotc
|
||||
* jdk.aot/jdk.tools.jaotc.collect
|
||||
* jdk.aot/jdk.tools.jaotc.collect.jar
|
||||
* @compile ../Utils.java
|
||||
* @compile ../FakeFileSupport.java
|
||||
* @compile ../FakeSearchPath.java
|
||||
*
|
||||
* @run junit/othervm jdk.tools.jaotc.test.collect.jar.JarSourceProviderTest
|
||||
*/
|
||||
|
||||
package jdk.tools.jaotc.test.collect.jar;
|
||||
|
||||
import jdk.tools.jaotc.collect.ClassSource;
|
||||
import jdk.tools.jaotc.collect.jar.JarSourceProvider;
|
||||
import jdk.tools.jaotc.test.collect.FakeFileSupport;
|
||||
import jdk.tools.jaotc.test.collect.FakeSearchPath;
|
||||
import org.junit.Assert;
|
||||
|
@ -20,15 +20,31 @@
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @modules jdk.aot/jdk.tools.jaotc
|
||||
* jdk.aot/jdk.tools.jaotc.collect
|
||||
* jdk.aot/jdk.tools.jaotc.collect.module
|
||||
* @compile ../Utils.java
|
||||
* @run junit/othervm jdk.tools.jaotc.test.collect.module.ModuleSourceProviderTest
|
||||
*/
|
||||
|
||||
package jdk.tools.jaotc.test.collect.module;
|
||||
|
||||
import jdk.tools.jaotc.*;
|
||||
import jdk.tools.jaotc.test.collect.FakeSearchPath;
|
||||
import jdk.tools.jaotc.collect.FileSupport;
|
||||
import jdk.tools.jaotc.collect.module.ModuleSource;
|
||||
import jdk.tools.jaotc.collect.module.ModuleSourceProvider;
|
||||
import jdk.tools.jaotc.test.collect.Utils;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileSystem;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
@ -36,28 +52,42 @@ import static org.junit.Assert.assertNull;
|
||||
public class ModuleSourceProviderTest {
|
||||
private ClassLoader classLoader;
|
||||
private ModuleSourceProvider target;
|
||||
private FileSupport fileSupport;
|
||||
private BiFunction<Path, Path, Path> getSubDirectory = null;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
classLoader = new FakeClassLoader();
|
||||
target = new ModuleSourceProvider(FileSystems.getDefault(), classLoader);
|
||||
fileSupport = new FileSupport() {
|
||||
|
||||
@Override
|
||||
public boolean isDirectory(Path path) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Path getSubDirectory(FileSystem fileSystem, Path root, Path path) throws IOException {
|
||||
if (getSubDirectory == null) {
|
||||
throw new IOException("Nope");
|
||||
}
|
||||
return getSubDirectory.apply(root, path);
|
||||
}
|
||||
};
|
||||
target = new ModuleSourceProvider(FileSystems.getDefault(), classLoader, fileSupport);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void itShouldUseSearchPath() {
|
||||
FakeSearchPath searchPath = new FakeSearchPath("blah/java.base");
|
||||
ModuleSource source = (ModuleSource) target.findSource("java.base", searchPath);
|
||||
assertEquals(Utils.set("java.base"), searchPath.entries);
|
||||
assertEquals("blah/java.base", source.getModulePath().toString());
|
||||
assertEquals("module:blah/java.base", source.toString());
|
||||
}
|
||||
public void itShouldUseFileSupport() {
|
||||
getSubDirectory = (root, path) -> {
|
||||
if (root.toString().equals("modules") && path.toString().equals("test.module")) {
|
||||
return Paths.get("modules/test.module");
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
@Test
|
||||
public void itShouldReturnNullIfSearchPathReturnsNull() {
|
||||
FakeSearchPath searchPath = new FakeSearchPath(null);
|
||||
ModuleSource source = (ModuleSource) target.findSource("jdk.base", searchPath);
|
||||
assertEquals(Utils.set("jdk.base"), searchPath.entries);
|
||||
assertNull(source);
|
||||
ModuleSource source = (ModuleSource) target.findSource("test.module", null);
|
||||
assertEquals("modules/test.module", source.getModulePath().toString());
|
||||
assertEquals("module:modules/test.module", source.toString());
|
||||
}
|
||||
|
||||
private static class FakeClassLoader extends ClassLoader {
|
||||
|
Loading…
x
Reference in New Issue
Block a user