18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 import org.testng.annotations.Test;
25
26 import java.lang.foreign.*;
27 import java.lang.foreign.Arena;
28 import java.lang.invoke.MethodHandle;
29 import java.nio.file.Path;
30 import java.util.concurrent.ExecutorService;
31 import java.util.concurrent.Executors;
32 import java.util.concurrent.TimeUnit;
33
34 import static org.testng.Assert.*;
35
36 /*
37 * @test
38 * @enablePreview
39 * @requires jdk.foreign.linker != "UNSUPPORTED"
40 * @run testng/othervm --enable-native-access=ALL-UNNAMED LibraryLookupTest
41 */
42 public class LibraryLookupTest {
43
44 static final Path JAVA_LIBRARY_PATH = Path.of(System.getProperty("java.library.path"));
45 static final MethodHandle INC = Linker.nativeLinker().downcallHandle(FunctionDescriptor.ofVoid());
46 static final Path LIB_PATH = JAVA_LIBRARY_PATH.resolve(System.mapLibraryName("LibraryLookup"));
47
48 @Test
49 void testLoadLibraryConfined() {
50 try (Arena arena0 = Arena.ofConfined()) {
51 callFunc(loadLibrary(arena0));
52 try (Arena arena1 = Arena.ofConfined()) {
53 callFunc(loadLibrary(arena1));
54 try (Arena arena2 = Arena.ofConfined()) {
55 callFunc(loadLibrary(arena2));
56 }
57 }
58 }
59 }
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 import org.testng.annotations.Test;
25
26 import java.lang.foreign.*;
27 import java.lang.foreign.Arena;
28 import java.lang.invoke.MethodHandle;
29 import java.nio.file.Path;
30 import java.util.concurrent.ExecutorService;
31 import java.util.concurrent.Executors;
32 import java.util.concurrent.TimeUnit;
33
34 import static org.testng.Assert.*;
35
36 /*
37 * @test
38 * @run testng/othervm --enable-native-access=ALL-UNNAMED LibraryLookupTest
39 */
40 public class LibraryLookupTest {
41
42 static final Path JAVA_LIBRARY_PATH = Path.of(System.getProperty("java.library.path"));
43 static final MethodHandle INC = Linker.nativeLinker().downcallHandle(FunctionDescriptor.ofVoid());
44 static final Path LIB_PATH = JAVA_LIBRARY_PATH.resolve(System.mapLibraryName("LibraryLookup"));
45
46 @Test
47 void testLoadLibraryConfined() {
48 try (Arena arena0 = Arena.ofConfined()) {
49 callFunc(loadLibrary(arena0));
50 try (Arena arena1 = Arena.ofConfined()) {
51 callFunc(loadLibrary(arena1));
52 try (Arena arena2 = Arena.ofConfined()) {
53 callFunc(loadLibrary(arena2));
54 }
55 }
56 }
57 }
|