@Override public void evaluate() throws Throwable { try (C testContext = createTestContext(testName)) { ArrayList<T> callTargets = new ArrayList<>(testNodes.length); for (RootNode testNode : testNodes) { callTargets.add(createTestCallTarget(testContext, testNode)); } Object[] args = callTargets.toArray(); for (int i = 0; i < truffleMethod.warmupIterations; i++) { truffleMethod.invokeExplosively(test, args); } for (T callTarget : callTargets) { finishWarmup(testContext, callTarget); } truffleMethod.invokeExplosively(test, args); } } };
Statement createStatement(String testName, FrameworkMethod method, Object test) { final TruffleFrameworkMethod truffleMethod = (TruffleFrameworkMethod) method; final RootNode[] testNodes = truffleMethod.createTestRootNodes(test); if (testNodes == null) { return null; } return new Statement() { @Override public void evaluate() throws Throwable { try (C testContext = createTestContext(testName)) { ArrayList<T> callTargets = new ArrayList<>(testNodes.length); for (RootNode testNode : testNodes) { callTargets.add(createTestCallTarget(testContext, testNode)); } Object[] args = callTargets.toArray(); for (int i = 0; i < truffleMethod.warmupIterations; i++) { truffleMethod.invokeExplosively(test, args); } for (T callTarget : callTargets) { finishWarmup(testContext, callTarget); } truffleMethod.invokeExplosively(test, args); } } }; }
Statement createStatement(String testName, FrameworkMethod method, Object test) { final TruffleFrameworkMethod truffleMethod = (TruffleFrameworkMethod) method; final RootNode[] testNodes = truffleMethod.createTestRootNodes(test); if (testNodes == null) { return null; } return new Statement() { @Override public void evaluate() throws Throwable { ArrayList<T> callTargets = new ArrayList<>(testNodes.length); for (RootNode testNode : testNodes) { callTargets.add(createTestCallTarget(testNode)); } Object[] args = callTargets.toArray(); for (int i = 0; i < truffleMethod.warmupIterations; i++) { truffleMethod.invokeExplosively(test, args); } for (T callTarget : callTargets) { finishWarmup(callTarget, testName); } truffleMethod.invokeExplosively(test, args); } }; }
@Override public void evaluate() throws Throwable { ArrayList<T> callTargets = new ArrayList<>(testNodes.length); for (RootNode testNode : testNodes) { callTargets.add(createTestCallTarget(testNode)); } Object[] args = callTargets.toArray(); for (int i = 0; i < truffleMethod.warmupIterations; i++) { truffleMethod.invokeExplosively(test, args); } for (T callTarget : callTargets) { finishWarmup(callTarget, testName); } truffleMethod.invokeExplosively(test, args); } };
@Override protected void scanAnnotatedMembers(Map<Class<? extends Annotation>, List<FrameworkMethod>> methodsForAnnotations, Map<Class<? extends Annotation>, List<FrameworkField>> fieldsForAnnotations) { super.scanAnnotatedMembers(methodsForAnnotations, fieldsForAnnotations); for (List<FrameworkMethod> methods : methodsForAnnotations.values()) { methods.replaceAll(m -> new TruffleFrameworkMethod(this, m.getMethod())); } } }
@Override protected void scanAnnotatedMembers(Map<Class<? extends Annotation>, List<FrameworkMethod>> methodsForAnnotations, Map<Class<? extends Annotation>, List<FrameworkField>> fieldsForAnnotations) { super.scanAnnotatedMembers(methodsForAnnotations, fieldsForAnnotations); for (List<FrameworkMethod> methods : methodsForAnnotations.values()) { methods.replaceAll(m -> new TruffleFrameworkMethod(this, m.getMethod())); } } }