use of com.oracle.svm.configure.config.ConfigurationType in project graal by oracle.
the class TypeMethodsWithFlagsTest method doTestMethods.
private static void doTestMethods(TypeConfiguration typeConfig) {
ConfigurationType methodTestType = getConfigTypeOrFail(typeConfig, "MethodAndFieldTest");
Assert.assertNull(ConfigurationType.TestBackdoor.getMethodInfoIfPresent(methodTestType, new ConfigurationMethod("<init>", "(I)V")));
Assert.assertNotNull(ConfigurationType.TestBackdoor.getMethodInfoIfPresent(methodTestType, new ConfigurationMethod("method", "()V")));
}
use of com.oracle.svm.configure.config.ConfigurationType in project graal by oracle.
the class TypeMethodsWithFlagsTest method populateConfig.
void populateConfig() {
ConfigurationType oldType = new ConfigurationType(ConfigurationCondition.alwaysTrue(), getTypeName());
setFlags(oldType);
previousConfig.add(oldType);
ConfigurationType newType = new ConfigurationType(ConfigurationCondition.alwaysTrue(), getTypeName());
for (Map.Entry<ConfigurationMethod, ConfigurationMemberDeclaration> methodEntry : methodsThatMustExist.entrySet()) {
newType.addMethod(methodEntry.getKey().getName(), methodEntry.getKey().getInternalSignature(), methodEntry.getValue());
}
for (Map.Entry<ConfigurationMethod, ConfigurationMemberDeclaration> methodEntry : methodsThatMustNotExist.entrySet()) {
newType.addMethod(methodEntry.getKey().getName(), methodEntry.getKey().getInternalSignature(), methodEntry.getValue());
}
currentConfig.add(newType);
}
use of com.oracle.svm.configure.config.ConfigurationType in project graal by oracle.
the class TypeMethodsWithFlagsTest method doTestFields.
private static void doTestFields(TypeConfiguration typeConfig) {
ConfigurationType fieldTestType = getConfigTypeOrFail(typeConfig, "MethodAndFieldTest");
Assert.assertNull(ConfigurationType.TestBackdoor.getFieldInfoIfPresent(fieldTestType, "SimpleField"));
Assert.assertNull(ConfigurationType.TestBackdoor.getFieldInfoIfPresent(fieldTestType, "AllowWriteField"));
FieldInfo newField = ConfigurationType.TestBackdoor.getFieldInfoIfPresent(fieldTestType, "NewField");
Assert.assertFalse(newField.isFinalButWritable());
FieldInfo newWritableField = getFieldInfoOrFail(fieldTestType, "NewAllowWriteField");
Assert.assertTrue(newWritableField.isFinalButWritable());
FieldInfo newlyWritableField = getFieldInfoOrFail(fieldTestType, "NewNowWritableField");
Assert.assertTrue(newlyWritableField.isFinalButWritable());
}
use of com.oracle.svm.configure.config.ConfigurationType in project graal by oracle.
the class TypeMethodsWithFlagsTest method doTest.
void doTest() {
TypeConfiguration currentConfigWithoutPrevious = TypeConfiguration.copyAndSubtract(currentConfig, previousConfig);
String name = getTypeName();
ConfigurationType configurationType = currentConfigWithoutPrevious.get(ConfigurationCondition.alwaysTrue(), name);
if (methodsThatMustExist.size() == 0) {
Assert.assertNull("Generated configuration type " + name + " exists. Expected it to be cleared as it is empty.", configurationType);
} else {
Assert.assertNotNull("Generated configuration type " + name + " does not exist. Has the test code changed?", configurationType);
for (Map.Entry<ConfigurationMethod, ConfigurationMemberDeclaration> methodEntry : methodsThatMustExist.entrySet()) {
ConfigurationMemberDeclaration kind = ConfigurationType.TestBackdoor.getMethodInfoIfPresent(configurationType, methodEntry.getKey()).getDeclaration();
Assert.assertNotNull("Method " + methodEntry.getKey() + " unexpectedly NOT found in the new configuration.", kind);
Assert.assertEquals("Method " + methodEntry.getKey() + " contains a different kind than expected in the new configuration.", kind, methodEntry.getValue());
}
for (Map.Entry<ConfigurationMethod, ConfigurationMemberDeclaration> methodEntry : methodsThatMustNotExist.entrySet()) {
ConfigurationMemberInfo kind = ConfigurationType.TestBackdoor.getMethodInfoIfPresent(configurationType, methodEntry.getKey());
Assert.assertNull("Method " + methodEntry.getKey() + " unexpectedly found in the new configuration.", kind);
}
}
}
use of com.oracle.svm.configure.config.ConfigurationType in project graal by oracle.
the class TypeMethodsWithFlagsTest method doTestTypeFlags.
private static void doTestTypeFlags(TypeConfiguration typeConfig) {
ConfigurationType flagTestHasDeclaredType = getConfigTypeOrFail(typeConfig, "FlagTestC");
Assert.assertTrue(ConfigurationType.TestBackdoor.haveAllDeclaredClasses(flagTestHasDeclaredType) || ConfigurationType.TestBackdoor.haveAllDeclaredFields(flagTestHasDeclaredType) || ConfigurationType.TestBackdoor.getAllDeclaredConstructors(flagTestHasDeclaredType) == ConfigurationMemberAccessibility.ACCESSED);
ConfigurationType flagTestHasPublicType = getConfigTypeOrFail(typeConfig, "FlagTestD");
Assert.assertTrue(ConfigurationType.TestBackdoor.haveAllPublicClasses(flagTestHasPublicType) || ConfigurationType.TestBackdoor.haveAllPublicFields(flagTestHasPublicType) || ConfigurationType.TestBackdoor.getAllPublicConstructors(flagTestHasPublicType) == ConfigurationMemberAccessibility.ACCESSED);
}
Aggregations