public abstract class MethodSubstitutionTest extends GraalCompilerTest
MethodSubstitutions are inlined correctly. Most test cases only assert that
there are no remaining invocations in the graph. This is sufficient if the method that is being
substituted is a native method. For Java methods, additional checks are necessary.GraalCompilerTest.ArgSupplier, GraalCompilerTest.ResultGraalTest.MultiCauseAssertionErrorlastCompiledGraph| Constructor and Description |
|---|
MethodSubstitutionTest() |
| Modifier and Type | Method and Description |
|---|---|
protected static StructuredGraph |
assertInGraph(StructuredGraph graph,
Class<?> clazz) |
protected static StructuredGraph |
assertNotInGraph(StructuredGraph graph,
Class<?> clazz) |
protected static Object |
executeVarargsSafe(InstalledCode code,
Object... args) |
protected Object |
invokeSafe(ResolvedJavaMethod method,
Object receiver,
Object... args) |
protected StructuredGraph |
testGraph(String snippet) |
protected void |
testSubstitution(String testMethodName,
Class<?> intrinsicClass,
Class<?> holder,
String methodName,
Class<?>[] parameterTypes,
boolean optional,
Object[] args1,
Object[] args2) |
addMethod, after, afterTest, applyArgSuppliers, argsWithReceiver, asResolvedJavaMethod, assertConstantReturn, assertEquals, assertEquals, assertEquals, before, beforeTest, branchProbability, breakpoint, breakpoint, checkArgs, checkHighTierGraph, checkLowTierGraph, checkMidTierGraph, compile, countUnusedConstants, createLIRSuites, createSuites, editGraphBuilderConfiguration, executeActual, executeActualCheckDeopt, executeExpected, getBackend, getCanonicalGraphString, getCode, getCode, getCode, getCodeCache, getConstantReflection, getCustomGraphBuilderSuite, getDefaultGraphBuilderPlugins, getDefaultGraphBuilderSuite, getDefaultHighTierContext, getLIRSuites, getLowerer, getMetaAccess, getNodeCountExcludingUnusedConstants, getProviders, getReplacements, getResolvedJavaMethod, getResolvedJavaMethod, getResolvedJavaMethod, getSnippetReflection, getSpeculationLog, getSuites, getTarget, initializeDebugging, invoke, isArchitecture, iterationCount, lookupMethod, parseDebug, parseEager, parseEager, parseForCompile, parseProfiled, parseProfiled, referenceInvoke, supply, test, test, testAgainstExpected, testAgainstExpected, testNassertDeepEquals, assertDeepEquals, assertDeepEquals, assertDeepEquals, assertFalse, assertFalse, assertFalse, assertTrue, assertTrue, assertTrue, equalFloatsOrDoublesDelta, fail, getMethod, getMethod, getMethod, ulpsDeltapublic MethodSubstitutionTest()
protected StructuredGraph testGraph(String snippet)
protected static StructuredGraph assertNotInGraph(StructuredGraph graph, Class<?> clazz)
protected void testSubstitution(String testMethodName, Class<?> intrinsicClass, Class<?> holder, String methodName, Class<?>[] parameterTypes, boolean optional, Object[] args1, Object[] args2)
protected static StructuredGraph assertInGraph(StructuredGraph graph, Class<?> clazz)
protected static Object executeVarargsSafe(InstalledCode code, Object... args)
protected Object invokeSafe(ResolvedJavaMethod method, Object receiver, Object... args)