15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
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 /*
25 * @test
26 * @modules jdk.incubator.vector
27 * @run testng MethodOverideTest
28 *
29 */
30
31 import jdk.incubator.vector.ByteVector;
32 import jdk.incubator.vector.DoubleVector;
33 import jdk.incubator.vector.FloatVector;
34 import jdk.incubator.vector.IntVector;
35 import jdk.incubator.vector.Vector.Shape;
36 import jdk.incubator.vector.ShortVector;
37 import jdk.incubator.vector.Vector;
38 import org.testng.Assert;
39 import org.testng.annotations.DataProvider;
40 import org.testng.annotations.Test;
41
42 import java.lang.reflect.Field;
43 import java.lang.reflect.Method;
44 import java.lang.reflect.Modifier;
45 import java.util.ArrayList;
46 import java.util.List;
47 import java.util.stream.Collectors;
48 import java.util.stream.Stream;
49
50 public class MethodOverideTest {
51
52 @DataProvider
53 public static Object[][] vectorClassesProvider() {
54 return Stream.of(
55 ByteVector.class,
56 ShortVector.class,
57 IntVector.class,
58 FloatVector.class,
59 DoubleVector.class).
60 map(c -> new Object[]{c}).
61 toArray(Object[][]::new);
62 }
63
64 static List<Object> getConcreteSpeciesInstances(Class<?> primitiveVectorClass) {
65 try {
66 List<Object> csis = new ArrayList<>();
67 for (Field sf : primitiveVectorClass.getFields()) {
68 if (Vector.Species.class.isAssignableFrom(sf.getType())) {
69 csis.add(sf.get(null));
70 }
71 }
72 return csis;
73 }
74 catch (ReflectiveOperationException e) {
75 throw new InternalError(e);
76 }
77 }
78
79 static List<Class<?>> getConcreteVectorClasses(Class<?> primitiveVectorClass) {
80 try {
81 List<Class<?>> cvcs = new ArrayList<>();
82 for (Object speciesInstance : getConcreteSpeciesInstances(primitiveVectorClass)) {
83 Method zero = primitiveVectorClass.getMethod("zero", Vector.Species.class);
84 Object vectorInstance = zero.invoke(null, speciesInstance);
85
86 cvcs.add(vectorInstance.getClass());
87 }
88 return cvcs;
89 }
90 catch (ReflectiveOperationException e) {
91 throw new InternalError(e);
92 }
93 }
94
95 static List<Method> getDeclaredPublicAndNonAbstractMethods(Class<?> c) {
96 return Stream.of(c.getDeclaredMethods()).
97 filter(cc -> Modifier.isPublic(cc.getModifiers())).
98 filter(cc -> !Modifier.isAbstract(cc.getModifiers())).
99 filter(cc -> !Modifier.isFinal(cc.getModifiers())).
100 filter(cc -> !cc.isSynthetic()).
101 collect(Collectors.toList());
102 }
103
|
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
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 /*
25 * @test
26 * @modules jdk.incubator.vector
27 * @run testng MethodOverideTest
28 *
29 */
30
31 import jdk.incubator.vector.ByteVector;
32 import jdk.incubator.vector.DoubleVector;
33 import jdk.incubator.vector.FloatVector;
34 import jdk.incubator.vector.IntVector;
35 import jdk.incubator.vector.VectorShape;
36 import jdk.incubator.vector.VectorSpecies;
37 import jdk.incubator.vector.ShortVector;
38 import jdk.incubator.vector.Vector;
39 import org.testng.Assert;
40 import org.testng.annotations.DataProvider;
41 import org.testng.annotations.Test;
42
43 import java.lang.reflect.Field;
44 import java.lang.reflect.Method;
45 import java.lang.reflect.Modifier;
46 import java.util.ArrayList;
47 import java.util.List;
48 import java.util.stream.Collectors;
49 import java.util.stream.Stream;
50
51 public class MethodOverideTest {
52
53 @DataProvider
54 public static Object[][] vectorClassesProvider() {
55 return Stream.of(
56 ByteVector.class,
57 ShortVector.class,
58 IntVector.class,
59 FloatVector.class,
60 DoubleVector.class).
61 map(c -> new Object[]{c}).
62 toArray(Object[][]::new);
63 }
64
65 static List<Object> getConcreteSpeciesInstances(Class<?> primitiveVectorClass) {
66 try {
67 List<Object> csis = new ArrayList<>();
68 for (Field sf : primitiveVectorClass.getFields()) {
69 if (VectorSpecies.class.isAssignableFrom(sf.getType())) {
70 csis.add(sf.get(null));
71 }
72 }
73 return csis;
74 }
75 catch (ReflectiveOperationException e) {
76 throw new InternalError(e);
77 }
78 }
79
80 static List<Class<?>> getConcreteVectorClasses(Class<?> primitiveVectorClass) {
81 try {
82 List<Class<?>> cvcs = new ArrayList<>();
83 for (Object speciesInstance : getConcreteSpeciesInstances(primitiveVectorClass)) {
84 Method zero = primitiveVectorClass.getMethod("zero", VectorSpecies.class);
85 Object vectorInstance = zero.invoke(null, speciesInstance);
86
87 cvcs.add(vectorInstance.getClass());
88 }
89 return cvcs;
90 }
91 catch (ReflectiveOperationException e) {
92 throw new InternalError(e);
93 }
94 }
95
96 static List<Method> getDeclaredPublicAndNonAbstractMethods(Class<?> c) {
97 return Stream.of(c.getDeclaredMethods()).
98 filter(cc -> Modifier.isPublic(cc.getModifiers())).
99 filter(cc -> !Modifier.isAbstract(cc.getModifiers())).
100 filter(cc -> !Modifier.isFinal(cc.getModifiers())).
101 filter(cc -> !cc.isSynthetic()).
102 collect(Collectors.toList());
103 }
104
|