24 /*
25 * @test
26 * @run testng OutOfBoundsTest
27 */
28
29 import org.testng.annotations.Test;
30
31 import java.foreign.Libraries;
32 import java.foreign.NativeTypes;
33 import java.foreign.Scope;
34 import java.foreign.annotations.NativeAddressof;
35 import java.foreign.annotations.NativeFunction;
36 import java.foreign.annotations.NativeGetter;
37 import java.foreign.annotations.NativeHeader;
38 import java.foreign.annotations.NativeSetter;
39 import java.foreign.annotations.NativeStruct;
40 import java.foreign.memory.Pointer;
41 import java.foreign.memory.Struct;
42 import java.lang.invoke.MethodHandles;
43
44 public class OutOfBoundsTest {xtract
45
46 @NativeHeader
47 public interface OutOfBounds {
48 @NativeFunction("(u64:u8)v")
49 void ptr(Pointer<Byte> ptr);
50 }
51
52 @NativeStruct("[u64(ptr):u8](ptrStruct)")
53 public interface ptrStruct extends Struct<ptrStruct> {
54 @NativeGetter("ptr")
55 Pointer<Byte> ptr$get();
56 @NativeSetter("ptr")
57 void ptr$set(Pointer<Byte> var1);
58 @NativeAddressof("ptr")
59 Pointer<Pointer<Byte>> ptr$ptr();
60 }
61
62 private static final OutOfBounds lib = Libraries.bind(OutOfBounds.class, Libraries.loadLibrary(MethodHandles.lookup(), "OutOfBounds"));
63
64 @Test(expectedExceptions = IndexOutOfBoundsException.class)
|
24 /*
25 * @test
26 * @run testng OutOfBoundsTest
27 */
28
29 import org.testng.annotations.Test;
30
31 import java.foreign.Libraries;
32 import java.foreign.NativeTypes;
33 import java.foreign.Scope;
34 import java.foreign.annotations.NativeAddressof;
35 import java.foreign.annotations.NativeFunction;
36 import java.foreign.annotations.NativeGetter;
37 import java.foreign.annotations.NativeHeader;
38 import java.foreign.annotations.NativeSetter;
39 import java.foreign.annotations.NativeStruct;
40 import java.foreign.memory.Pointer;
41 import java.foreign.memory.Struct;
42 import java.lang.invoke.MethodHandles;
43
44 public class OutOfBoundsTest {
45
46 @NativeHeader
47 public interface OutOfBounds {
48 @NativeFunction("(u64:u8)v")
49 void ptr(Pointer<Byte> ptr);
50 }
51
52 @NativeStruct("[u64(ptr):u8](ptrStruct)")
53 public interface ptrStruct extends Struct<ptrStruct> {
54 @NativeGetter("ptr")
55 Pointer<Byte> ptr$get();
56 @NativeSetter("ptr")
57 void ptr$set(Pointer<Byte> var1);
58 @NativeAddressof("ptr")
59 Pointer<Pointer<Byte>> ptr$ptr();
60 }
61
62 private static final OutOfBounds lib = Libraries.bind(OutOfBounds.class, Libraries.loadLibrary(MethodHandles.lookup(), "OutOfBounds"));
63
64 @Test(expectedExceptions = IndexOutOfBoundsException.class)
|