public abstract class MethodSubstitutionTest extends GraalCompilerTest
MethodSubstitution
s 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.Result
GraalTest.MultiCauseAssertionError
lastCompiledGraph
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, testN
assertDeepEquals, assertDeepEquals, assertDeepEquals, assertDeepEquals, assertFalse, assertFalse, assertFalse, assertTrue, assertTrue, assertTrue, equalFloatsOrDoublesDelta, fail, getMethod, getMethod, getMethod, ulpsDelta
public 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)