< prev index next >

test/jdk/com/sun/tools/jextract/test8221154/SrcGenTest.java

Print this page

        

@@ -22,10 +22,11 @@
  */
 
 import java.foreign.annotations.NativeAddressof;
 import java.foreign.annotations.NativeGetter;
 import java.foreign.annotations.NativeHeader;
+import java.foreign.annotations.NativeLocation;
 import java.foreign.annotations.NativeSetter;
 import java.foreign.annotations.NativeStruct;
 import java.foreign.memory.Pointer;
 import java.io.File;
 import java.io.IOException;

@@ -146,38 +147,70 @@
 
         // global 'num' getter, pointer getter
         Method numGetter = findGlobalVariableGet(headerCls, "num");
         assertTrue(numGetter != null);
         assertTrue(numGetter.getAnnotation(NativeGetter.class) != null);
+        assertTrue(numGetter.getAnnotation(NativeLocation.class) != null);
 
         Method numPtrGetter = findGlobalVariablePointerGet(headerCls, "num");
         assertTrue(numPtrGetter != null);
         assertTrue(numPtrGetter.getAnnotation(NativeAddressof.class) != null);
 
         // global 'num' setter
         Method numSetter = findGlobalVariableSet(headerCls, "num", int.class);
         assertTrue(numSetter != null);
         assertTrue(numSetter.getAnnotation(NativeSetter.class) != null);
 
+        // check "x_coord" method
+        Method xCoordMethod = findFirstMethod(headerCls, "x_coord");
+        assertTrue(xCoordMethod.getReturnType() == int.class);
+        Class<?>[] xCoordParamTypes = xCoordMethod.getParameterTypes();
+        assertTrue(xCoordParamTypes.length == 1);
+        assertTrue(xCoordParamTypes[0] == Pointer.class);
+        assertTrue(xCoordMethod.getAnnotation(NativeLocation.class) != null);
+        assertTrue(!Modifier.isStatic(xCoordMethod.getModifiers()));
+
+        // check "y_coord" method
+        Method yCoordMethod = findFirstMethod(headerCls, "y_coord");
+        assertTrue(yCoordMethod.getReturnType() == int.class);
+        Class<?>[] yCoordParamTypes = yCoordMethod.getParameterTypes();
+        assertTrue(yCoordParamTypes.length == 1);
+        assertTrue(yCoordParamTypes[0] == Pointer.class);
+        assertTrue(yCoordMethod.getAnnotation(NativeLocation.class) != null);
+        assertTrue(!Modifier.isStatic(yCoordMethod.getModifiers()));
+
+        // check "sum" method
+        Method sumMethod = findFirstMethod(headerCls, "sum");
+        assertTrue(sumMethod.getReturnType() == int.class);
+        Class<?>[] sumParamTypes = sumMethod.getParameterTypes();
+        assertTrue(sumParamTypes.length == 2);
+        assertTrue(sumParamTypes[0] == int.class);
+        assertTrue(sumParamTypes[1] == Object[].class);
+        assertTrue(sumMethod.getAnnotation(NativeLocation.class) != null);
+        assertTrue(!Modifier.isStatic(sumMethod.getModifiers()));
+
         // struct Point
         Class<?> pointCls = Arrays.stream(headerCls.getClasses())
             .filter(c -> c.getSimpleName().equals("Point")).findFirst().get();
         assertTrue(Modifier.isInterface(pointCls.getModifiers()));
         assertTrue(pointCls.getAnnotation(NativeStruct.class) != null);
+        assertTrue(pointCls.getAnnotation(NativeLocation.class) != null);
 
         // Point extends Struct
         Class<?> pointSuper = pointCls.getInterfaces()[0];
         assertTrue(pointSuper.getName().equals("java.foreign.memory.Struct"));
 
         // x, y getters, pointer getters
         Method xGetter = findStructFieldGet(pointCls, "x");
         assertTrue(xGetter != null);
         assertTrue(xGetter.getAnnotation(NativeGetter.class) != null);
+        assertTrue(xGetter.getAnnotation(NativeLocation.class) != null);
 
         Method yGetter = findStructFieldGet(pointCls, "y");
         assertTrue(yGetter != null);
         assertTrue(yGetter.getAnnotation(NativeGetter.class) != null);
+        assertTrue(yGetter.getAnnotation(NativeLocation.class) != null);
 
         Method xPtrGetter = findStructFieldPointerGet(pointCls, "x");
         assertTrue(xPtrGetter != null);
         assertTrue(xPtrGetter.getAnnotation(NativeAddressof.class) != null);
 

@@ -212,17 +245,19 @@
         Method xCoordMethod = findFirstMethod(forwarderCls, "x_coord");
         assertTrue(xCoordMethod.getReturnType() == int.class);
         Class<?>[] xCoordParamTypes = xCoordMethod.getParameterTypes();
         assertTrue(xCoordParamTypes.length == 1);
         assertTrue(xCoordParamTypes[0] == Pointer.class);
+        assertTrue(Modifier.isStatic(xCoordMethod.getModifiers()));
 
         // check "y_coord" method
         Method yCoordMethod = findFirstMethod(forwarderCls, "y_coord");
         assertTrue(yCoordMethod.getReturnType() == int.class);
         Class<?>[] yCoordParamTypes = yCoordMethod.getParameterTypes();
         assertTrue(yCoordParamTypes.length == 1);
         assertTrue(yCoordParamTypes[0] == Pointer.class);
+        assertTrue(Modifier.isStatic(xCoordMethod.getModifiers()));
 
         // global variable "num" getter
         Method numGet = findGlobalVariableGet(forwarderCls, "num");
         assertTrue(numGet != null);
 
< prev index next >