From 5371380e80e01bcafd964f1818b3a397240d06d0 Mon Sep 17 00:00:00 2001 From: Daco Harkes Date: Thu, 12 Dec 2019 16:48:40 +0000 Subject: [PATCH] [vm/ffi] Split up function_callbacks_test This simplifies manual testing. Change-Id: I77c5ac1e9942b793f746587e44bb061eabf90297 Cq-Include-Trybots: luci.dart.try:vm-ffi-android-debug-arm-try,vm-ffi-android-debug-arm64-try,app-kernel-linux-debug-x64-try,vm-kernel-linux-debug-ia32-try,vm-kernel-win-debug-x64-try,vm-kernel-win-debug-ia32-try,vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-abi-try,vm-kernel-precomp-android-release-arm64-try,vm-kernel-asan-linux-release-x64-try,vm-kernel-linux-release-simarm-try,vm-kernel-linux-release-simarm64-try,vm-kernel-precomp-android-release-arm_x64-try,vm-kernel-precomp-obfuscate-linux-release-x64-try,vm-kernel-precomp-mac-release-simarm_x64-try,dart-sdk-linux-try,analyzer-analysis-server-linux-try,analyzer-linux-release-try,front-end-linux-release-x64-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124328 Commit-Queue: Daco Harkes Reviewed-by: Martin Kustermann --- tests/ffi/ffi.status | 4 +- tests/ffi/function_callbacks_many_test.dart | 1069 +++++++++++++++++ tests/ffi/function_callbacks_test.dart | 1026 +--------------- ...specific_function_callbacks_exit_test.dart | 78 ++ ...ific_function_callbacks_negative_test.dart | 26 + .../vmspecific_function_callbacks_test.dart | 63 +- 6 files changed, 1186 insertions(+), 1080 deletions(-) create mode 100644 tests/ffi/function_callbacks_many_test.dart create mode 100644 tests/ffi/vmspecific_function_callbacks_exit_test.dart create mode 100644 tests/ffi/vmspecific_function_callbacks_negative_test.dart diff --git a/tests/ffi/ffi.status b/tests/ffi/ffi.status index a5560c3d4c7..ee7bf8099f8 100644 --- a/tests/ffi/ffi.status +++ b/tests/ffi/ffi.status @@ -9,9 +9,7 @@ data_not_asan_test: SkipByDesign # This test tries to allocate too much memory o # They're incompatible with ASAN because not all memory is freed when aborting and # with AppJit because the abort the VM before it can generate a snapshot. [ $compiler == app_jitk || $builder_tag == asan ] -vmspecific_function_callbacks_test/01: Skip -vmspecific_function_callbacks_test/02: Skip -vmspecific_function_callbacks_test/03: Skip +vmspecific_function_callbacks_exit_test: SkipByDesign [ $arch == arm && $system != android ] *: Skip # "hardfp" calling convention is not yet supported (iOS is also supported but not tested): dartbug.com/36309 diff --git a/tests/ffi/function_callbacks_many_test.dart b/tests/ffi/function_callbacks_many_test.dart new file mode 100644 index 00000000000..d187093f75d --- /dev/null +++ b/tests/ffi/function_callbacks_many_test.dart @@ -0,0 +1,1069 @@ +// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. +// +// Dart test program for testing dart:ffi function pointers with callbacks. +// +// VMOptions=--enable-testing-pragmas +// VMOptions=--enable-testing-pragmas --stacktrace-every=100 +// VMOptions=--enable-testing-pragmas --write-protect-code --no-dual-map-code +// VMOptions=--enable-testing-pragmas --write-protect-code --no-dual-map-code --stacktrace-every=100 +// VMOptions=--use-slow-path --enable-testing-pragmas +// VMOptions=--use-slow-path --enable-testing-pragmas --stacktrace-every=100 +// VMOptions=--use-slow-path --enable-testing-pragmas --write-protect-code --no-dual-map-code +// VMOptions=--use-slow-path --enable-testing-pragmas --write-protect-code --no-dual-map-code --stacktrace-every=100 +// SharedObjects=ffi_test_functions + +import 'dart:ffi'; + +import "package:expect/expect.dart"; + +import 'dylib_utils.dart'; + +typedef NativeCallbackTest = Int32 Function(Pointer); +typedef NativeCallbackTestFn = int Function(Pointer); + +final DynamicLibrary testLibrary = dlopenPlatformSpecific("ffi_test_functions"); + +class Test { + final String name; + final Pointer callback; + final bool skip; + + Test(this.name, this.callback, {bool skipIf: false}) : skip = skipIf {} + + void run() { + if (skip) return; + + final NativeCallbackTestFn tester = testLibrary + .lookupFunction("Test$name"); + final int testCode = tester(callback); + if (testCode != 0) { + Expect.fail("Test $name failed."); + } + } +} + +typedef SimpleAdditionType = Int32 Function(Int32, Int32); +int simpleAddition(int x, int y) => x + y; + +void main() { + testManyCallbacks(); +} + +void testManyCallbacks() { + // Create enough callbacks (1000) to overflow one page of the JIT callback + // trampolines. The use of distinct exceptional return values forces separate + // trampolines. + final List pointers = []; + + // All the parameters of 'fromFunction' are forced to be constant so that we + // only need to generate one trampoline per 'fromFunction' call-site. + // + // As a consequence, to force the creation of 1000 trampolines (and prevent + // any possible caching), we need literally 1000 call-sites. + pointers.add(Pointer.fromFunction(simpleAddition, 0)); + pointers.add(Pointer.fromFunction(simpleAddition, 1)); + pointers.add(Pointer.fromFunction(simpleAddition, 2)); + pointers.add(Pointer.fromFunction(simpleAddition, 3)); + pointers.add(Pointer.fromFunction(simpleAddition, 4)); + pointers.add(Pointer.fromFunction(simpleAddition, 5)); + pointers.add(Pointer.fromFunction(simpleAddition, 6)); + pointers.add(Pointer.fromFunction(simpleAddition, 7)); + pointers.add(Pointer.fromFunction(simpleAddition, 8)); + pointers.add(Pointer.fromFunction(simpleAddition, 9)); + pointers.add(Pointer.fromFunction(simpleAddition, 10)); + pointers.add(Pointer.fromFunction(simpleAddition, 11)); + pointers.add(Pointer.fromFunction(simpleAddition, 12)); + pointers.add(Pointer.fromFunction(simpleAddition, 13)); + pointers.add(Pointer.fromFunction(simpleAddition, 14)); + pointers.add(Pointer.fromFunction(simpleAddition, 15)); + pointers.add(Pointer.fromFunction(simpleAddition, 16)); + pointers.add(Pointer.fromFunction(simpleAddition, 17)); + pointers.add(Pointer.fromFunction(simpleAddition, 18)); + pointers.add(Pointer.fromFunction(simpleAddition, 19)); + pointers.add(Pointer.fromFunction(simpleAddition, 20)); + pointers.add(Pointer.fromFunction(simpleAddition, 21)); + pointers.add(Pointer.fromFunction(simpleAddition, 22)); + pointers.add(Pointer.fromFunction(simpleAddition, 23)); + pointers.add(Pointer.fromFunction(simpleAddition, 24)); + pointers.add(Pointer.fromFunction(simpleAddition, 25)); + pointers.add(Pointer.fromFunction(simpleAddition, 26)); + pointers.add(Pointer.fromFunction(simpleAddition, 27)); + pointers.add(Pointer.fromFunction(simpleAddition, 28)); + pointers.add(Pointer.fromFunction(simpleAddition, 29)); + pointers.add(Pointer.fromFunction(simpleAddition, 30)); + pointers.add(Pointer.fromFunction(simpleAddition, 31)); + pointers.add(Pointer.fromFunction(simpleAddition, 32)); + pointers.add(Pointer.fromFunction(simpleAddition, 33)); + pointers.add(Pointer.fromFunction(simpleAddition, 34)); + pointers.add(Pointer.fromFunction(simpleAddition, 35)); + pointers.add(Pointer.fromFunction(simpleAddition, 36)); + pointers.add(Pointer.fromFunction(simpleAddition, 37)); + pointers.add(Pointer.fromFunction(simpleAddition, 38)); + pointers.add(Pointer.fromFunction(simpleAddition, 39)); + pointers.add(Pointer.fromFunction(simpleAddition, 40)); + pointers.add(Pointer.fromFunction(simpleAddition, 41)); + pointers.add(Pointer.fromFunction(simpleAddition, 42)); + pointers.add(Pointer.fromFunction(simpleAddition, 43)); + pointers.add(Pointer.fromFunction(simpleAddition, 44)); + pointers.add(Pointer.fromFunction(simpleAddition, 45)); + pointers.add(Pointer.fromFunction(simpleAddition, 46)); + pointers.add(Pointer.fromFunction(simpleAddition, 47)); + pointers.add(Pointer.fromFunction(simpleAddition, 48)); + pointers.add(Pointer.fromFunction(simpleAddition, 49)); + pointers.add(Pointer.fromFunction(simpleAddition, 50)); + pointers.add(Pointer.fromFunction(simpleAddition, 51)); + pointers.add(Pointer.fromFunction(simpleAddition, 52)); + pointers.add(Pointer.fromFunction(simpleAddition, 53)); + pointers.add(Pointer.fromFunction(simpleAddition, 54)); + pointers.add(Pointer.fromFunction(simpleAddition, 55)); + pointers.add(Pointer.fromFunction(simpleAddition, 56)); + pointers.add(Pointer.fromFunction(simpleAddition, 57)); + pointers.add(Pointer.fromFunction(simpleAddition, 58)); + pointers.add(Pointer.fromFunction(simpleAddition, 59)); + pointers.add(Pointer.fromFunction(simpleAddition, 60)); + pointers.add(Pointer.fromFunction(simpleAddition, 61)); + pointers.add(Pointer.fromFunction(simpleAddition, 62)); + pointers.add(Pointer.fromFunction(simpleAddition, 63)); + pointers.add(Pointer.fromFunction(simpleAddition, 64)); + pointers.add(Pointer.fromFunction(simpleAddition, 65)); + pointers.add(Pointer.fromFunction(simpleAddition, 66)); + pointers.add(Pointer.fromFunction(simpleAddition, 67)); + pointers.add(Pointer.fromFunction(simpleAddition, 68)); + pointers.add(Pointer.fromFunction(simpleAddition, 69)); + pointers.add(Pointer.fromFunction(simpleAddition, 70)); + pointers.add(Pointer.fromFunction(simpleAddition, 71)); + pointers.add(Pointer.fromFunction(simpleAddition, 72)); + pointers.add(Pointer.fromFunction(simpleAddition, 73)); + pointers.add(Pointer.fromFunction(simpleAddition, 74)); + pointers.add(Pointer.fromFunction(simpleAddition, 75)); + pointers.add(Pointer.fromFunction(simpleAddition, 76)); + pointers.add(Pointer.fromFunction(simpleAddition, 77)); + pointers.add(Pointer.fromFunction(simpleAddition, 78)); + pointers.add(Pointer.fromFunction(simpleAddition, 79)); + pointers.add(Pointer.fromFunction(simpleAddition, 80)); + pointers.add(Pointer.fromFunction(simpleAddition, 81)); + pointers.add(Pointer.fromFunction(simpleAddition, 82)); + pointers.add(Pointer.fromFunction(simpleAddition, 83)); + pointers.add(Pointer.fromFunction(simpleAddition, 84)); + pointers.add(Pointer.fromFunction(simpleAddition, 85)); + pointers.add(Pointer.fromFunction(simpleAddition, 86)); + pointers.add(Pointer.fromFunction(simpleAddition, 87)); + pointers.add(Pointer.fromFunction(simpleAddition, 88)); + pointers.add(Pointer.fromFunction(simpleAddition, 89)); + pointers.add(Pointer.fromFunction(simpleAddition, 90)); + pointers.add(Pointer.fromFunction(simpleAddition, 91)); + pointers.add(Pointer.fromFunction(simpleAddition, 92)); + pointers.add(Pointer.fromFunction(simpleAddition, 93)); + pointers.add(Pointer.fromFunction(simpleAddition, 94)); + pointers.add(Pointer.fromFunction(simpleAddition, 95)); + pointers.add(Pointer.fromFunction(simpleAddition, 96)); + pointers.add(Pointer.fromFunction(simpleAddition, 97)); + pointers.add(Pointer.fromFunction(simpleAddition, 98)); + pointers.add(Pointer.fromFunction(simpleAddition, 99)); + pointers.add(Pointer.fromFunction(simpleAddition, 100)); + pointers.add(Pointer.fromFunction(simpleAddition, 101)); + pointers.add(Pointer.fromFunction(simpleAddition, 102)); + pointers.add(Pointer.fromFunction(simpleAddition, 103)); + pointers.add(Pointer.fromFunction(simpleAddition, 104)); + pointers.add(Pointer.fromFunction(simpleAddition, 105)); + pointers.add(Pointer.fromFunction(simpleAddition, 106)); + pointers.add(Pointer.fromFunction(simpleAddition, 107)); + pointers.add(Pointer.fromFunction(simpleAddition, 108)); + pointers.add(Pointer.fromFunction(simpleAddition, 109)); + pointers.add(Pointer.fromFunction(simpleAddition, 110)); + pointers.add(Pointer.fromFunction(simpleAddition, 111)); + pointers.add(Pointer.fromFunction(simpleAddition, 112)); + pointers.add(Pointer.fromFunction(simpleAddition, 113)); + pointers.add(Pointer.fromFunction(simpleAddition, 114)); + pointers.add(Pointer.fromFunction(simpleAddition, 115)); + pointers.add(Pointer.fromFunction(simpleAddition, 116)); + pointers.add(Pointer.fromFunction(simpleAddition, 117)); + pointers.add(Pointer.fromFunction(simpleAddition, 118)); + pointers.add(Pointer.fromFunction(simpleAddition, 119)); + pointers.add(Pointer.fromFunction(simpleAddition, 120)); + pointers.add(Pointer.fromFunction(simpleAddition, 121)); + pointers.add(Pointer.fromFunction(simpleAddition, 122)); + pointers.add(Pointer.fromFunction(simpleAddition, 123)); + pointers.add(Pointer.fromFunction(simpleAddition, 124)); + pointers.add(Pointer.fromFunction(simpleAddition, 125)); + pointers.add(Pointer.fromFunction(simpleAddition, 126)); + pointers.add(Pointer.fromFunction(simpleAddition, 127)); + pointers.add(Pointer.fromFunction(simpleAddition, 128)); + pointers.add(Pointer.fromFunction(simpleAddition, 129)); + pointers.add(Pointer.fromFunction(simpleAddition, 130)); + pointers.add(Pointer.fromFunction(simpleAddition, 131)); + pointers.add(Pointer.fromFunction(simpleAddition, 132)); + pointers.add(Pointer.fromFunction(simpleAddition, 133)); + pointers.add(Pointer.fromFunction(simpleAddition, 134)); + pointers.add(Pointer.fromFunction(simpleAddition, 135)); + pointers.add(Pointer.fromFunction(simpleAddition, 136)); + pointers.add(Pointer.fromFunction(simpleAddition, 137)); + pointers.add(Pointer.fromFunction(simpleAddition, 138)); + pointers.add(Pointer.fromFunction(simpleAddition, 139)); + pointers.add(Pointer.fromFunction(simpleAddition, 140)); + pointers.add(Pointer.fromFunction(simpleAddition, 141)); + pointers.add(Pointer.fromFunction(simpleAddition, 142)); + pointers.add(Pointer.fromFunction(simpleAddition, 143)); + pointers.add(Pointer.fromFunction(simpleAddition, 144)); + pointers.add(Pointer.fromFunction(simpleAddition, 145)); + pointers.add(Pointer.fromFunction(simpleAddition, 146)); + pointers.add(Pointer.fromFunction(simpleAddition, 147)); + pointers.add(Pointer.fromFunction(simpleAddition, 148)); + pointers.add(Pointer.fromFunction(simpleAddition, 149)); + pointers.add(Pointer.fromFunction(simpleAddition, 150)); + pointers.add(Pointer.fromFunction(simpleAddition, 151)); + pointers.add(Pointer.fromFunction(simpleAddition, 152)); + pointers.add(Pointer.fromFunction(simpleAddition, 153)); + pointers.add(Pointer.fromFunction(simpleAddition, 154)); + pointers.add(Pointer.fromFunction(simpleAddition, 155)); + pointers.add(Pointer.fromFunction(simpleAddition, 156)); + pointers.add(Pointer.fromFunction(simpleAddition, 157)); + pointers.add(Pointer.fromFunction(simpleAddition, 158)); + pointers.add(Pointer.fromFunction(simpleAddition, 159)); + pointers.add(Pointer.fromFunction(simpleAddition, 160)); + pointers.add(Pointer.fromFunction(simpleAddition, 161)); + pointers.add(Pointer.fromFunction(simpleAddition, 162)); + pointers.add(Pointer.fromFunction(simpleAddition, 163)); + pointers.add(Pointer.fromFunction(simpleAddition, 164)); + pointers.add(Pointer.fromFunction(simpleAddition, 165)); + pointers.add(Pointer.fromFunction(simpleAddition, 166)); + pointers.add(Pointer.fromFunction(simpleAddition, 167)); + pointers.add(Pointer.fromFunction(simpleAddition, 168)); + pointers.add(Pointer.fromFunction(simpleAddition, 169)); + pointers.add(Pointer.fromFunction(simpleAddition, 170)); + pointers.add(Pointer.fromFunction(simpleAddition, 171)); + pointers.add(Pointer.fromFunction(simpleAddition, 172)); + pointers.add(Pointer.fromFunction(simpleAddition, 173)); + pointers.add(Pointer.fromFunction(simpleAddition, 174)); + pointers.add(Pointer.fromFunction(simpleAddition, 175)); + pointers.add(Pointer.fromFunction(simpleAddition, 176)); + pointers.add(Pointer.fromFunction(simpleAddition, 177)); + pointers.add(Pointer.fromFunction(simpleAddition, 178)); + pointers.add(Pointer.fromFunction(simpleAddition, 179)); + pointers.add(Pointer.fromFunction(simpleAddition, 180)); + pointers.add(Pointer.fromFunction(simpleAddition, 181)); + pointers.add(Pointer.fromFunction(simpleAddition, 182)); + pointers.add(Pointer.fromFunction(simpleAddition, 183)); + pointers.add(Pointer.fromFunction(simpleAddition, 184)); + pointers.add(Pointer.fromFunction(simpleAddition, 185)); + pointers.add(Pointer.fromFunction(simpleAddition, 186)); + pointers.add(Pointer.fromFunction(simpleAddition, 187)); + pointers.add(Pointer.fromFunction(simpleAddition, 188)); + pointers.add(Pointer.fromFunction(simpleAddition, 189)); + pointers.add(Pointer.fromFunction(simpleAddition, 190)); + pointers.add(Pointer.fromFunction(simpleAddition, 191)); + pointers.add(Pointer.fromFunction(simpleAddition, 192)); + pointers.add(Pointer.fromFunction(simpleAddition, 193)); + pointers.add(Pointer.fromFunction(simpleAddition, 194)); + pointers.add(Pointer.fromFunction(simpleAddition, 195)); + pointers.add(Pointer.fromFunction(simpleAddition, 196)); + pointers.add(Pointer.fromFunction(simpleAddition, 197)); + pointers.add(Pointer.fromFunction(simpleAddition, 198)); + pointers.add(Pointer.fromFunction(simpleAddition, 199)); + pointers.add(Pointer.fromFunction(simpleAddition, 200)); + pointers.add(Pointer.fromFunction(simpleAddition, 201)); + pointers.add(Pointer.fromFunction(simpleAddition, 202)); + pointers.add(Pointer.fromFunction(simpleAddition, 203)); + pointers.add(Pointer.fromFunction(simpleAddition, 204)); + pointers.add(Pointer.fromFunction(simpleAddition, 205)); + pointers.add(Pointer.fromFunction(simpleAddition, 206)); + pointers.add(Pointer.fromFunction(simpleAddition, 207)); + pointers.add(Pointer.fromFunction(simpleAddition, 208)); + pointers.add(Pointer.fromFunction(simpleAddition, 209)); + pointers.add(Pointer.fromFunction(simpleAddition, 210)); + pointers.add(Pointer.fromFunction(simpleAddition, 211)); + pointers.add(Pointer.fromFunction(simpleAddition, 212)); + pointers.add(Pointer.fromFunction(simpleAddition, 213)); + pointers.add(Pointer.fromFunction(simpleAddition, 214)); + pointers.add(Pointer.fromFunction(simpleAddition, 215)); + pointers.add(Pointer.fromFunction(simpleAddition, 216)); + pointers.add(Pointer.fromFunction(simpleAddition, 217)); + pointers.add(Pointer.fromFunction(simpleAddition, 218)); + pointers.add(Pointer.fromFunction(simpleAddition, 219)); + pointers.add(Pointer.fromFunction(simpleAddition, 220)); + pointers.add(Pointer.fromFunction(simpleAddition, 221)); + pointers.add(Pointer.fromFunction(simpleAddition, 222)); + pointers.add(Pointer.fromFunction(simpleAddition, 223)); + pointers.add(Pointer.fromFunction(simpleAddition, 224)); + pointers.add(Pointer.fromFunction(simpleAddition, 225)); + pointers.add(Pointer.fromFunction(simpleAddition, 226)); + pointers.add(Pointer.fromFunction(simpleAddition, 227)); + pointers.add(Pointer.fromFunction(simpleAddition, 228)); + pointers.add(Pointer.fromFunction(simpleAddition, 229)); + pointers.add(Pointer.fromFunction(simpleAddition, 230)); + pointers.add(Pointer.fromFunction(simpleAddition, 231)); + pointers.add(Pointer.fromFunction(simpleAddition, 232)); + pointers.add(Pointer.fromFunction(simpleAddition, 233)); + pointers.add(Pointer.fromFunction(simpleAddition, 234)); + pointers.add(Pointer.fromFunction(simpleAddition, 235)); + pointers.add(Pointer.fromFunction(simpleAddition, 236)); + pointers.add(Pointer.fromFunction(simpleAddition, 237)); + pointers.add(Pointer.fromFunction(simpleAddition, 238)); + pointers.add(Pointer.fromFunction(simpleAddition, 239)); + pointers.add(Pointer.fromFunction(simpleAddition, 240)); + pointers.add(Pointer.fromFunction(simpleAddition, 241)); + pointers.add(Pointer.fromFunction(simpleAddition, 242)); + pointers.add(Pointer.fromFunction(simpleAddition, 243)); + pointers.add(Pointer.fromFunction(simpleAddition, 244)); + pointers.add(Pointer.fromFunction(simpleAddition, 245)); + pointers.add(Pointer.fromFunction(simpleAddition, 246)); + pointers.add(Pointer.fromFunction(simpleAddition, 247)); + pointers.add(Pointer.fromFunction(simpleAddition, 248)); + pointers.add(Pointer.fromFunction(simpleAddition, 249)); + pointers.add(Pointer.fromFunction(simpleAddition, 250)); + pointers.add(Pointer.fromFunction(simpleAddition, 251)); + pointers.add(Pointer.fromFunction(simpleAddition, 252)); + pointers.add(Pointer.fromFunction(simpleAddition, 253)); + pointers.add(Pointer.fromFunction(simpleAddition, 254)); + pointers.add(Pointer.fromFunction(simpleAddition, 255)); + pointers.add(Pointer.fromFunction(simpleAddition, 256)); + pointers.add(Pointer.fromFunction(simpleAddition, 257)); + pointers.add(Pointer.fromFunction(simpleAddition, 258)); + pointers.add(Pointer.fromFunction(simpleAddition, 259)); + pointers.add(Pointer.fromFunction(simpleAddition, 260)); + pointers.add(Pointer.fromFunction(simpleAddition, 261)); + pointers.add(Pointer.fromFunction(simpleAddition, 262)); + pointers.add(Pointer.fromFunction(simpleAddition, 263)); + pointers.add(Pointer.fromFunction(simpleAddition, 264)); + pointers.add(Pointer.fromFunction(simpleAddition, 265)); + pointers.add(Pointer.fromFunction(simpleAddition, 266)); + pointers.add(Pointer.fromFunction(simpleAddition, 267)); + pointers.add(Pointer.fromFunction(simpleAddition, 268)); + pointers.add(Pointer.fromFunction(simpleAddition, 269)); + pointers.add(Pointer.fromFunction(simpleAddition, 270)); + pointers.add(Pointer.fromFunction(simpleAddition, 271)); + pointers.add(Pointer.fromFunction(simpleAddition, 272)); + pointers.add(Pointer.fromFunction(simpleAddition, 273)); + pointers.add(Pointer.fromFunction(simpleAddition, 274)); + pointers.add(Pointer.fromFunction(simpleAddition, 275)); + pointers.add(Pointer.fromFunction(simpleAddition, 276)); + pointers.add(Pointer.fromFunction(simpleAddition, 277)); + pointers.add(Pointer.fromFunction(simpleAddition, 278)); + pointers.add(Pointer.fromFunction(simpleAddition, 279)); + pointers.add(Pointer.fromFunction(simpleAddition, 280)); + pointers.add(Pointer.fromFunction(simpleAddition, 281)); + pointers.add(Pointer.fromFunction(simpleAddition, 282)); + pointers.add(Pointer.fromFunction(simpleAddition, 283)); + pointers.add(Pointer.fromFunction(simpleAddition, 284)); + pointers.add(Pointer.fromFunction(simpleAddition, 285)); + pointers.add(Pointer.fromFunction(simpleAddition, 286)); + pointers.add(Pointer.fromFunction(simpleAddition, 287)); + pointers.add(Pointer.fromFunction(simpleAddition, 288)); + pointers.add(Pointer.fromFunction(simpleAddition, 289)); + pointers.add(Pointer.fromFunction(simpleAddition, 290)); + pointers.add(Pointer.fromFunction(simpleAddition, 291)); + pointers.add(Pointer.fromFunction(simpleAddition, 292)); + pointers.add(Pointer.fromFunction(simpleAddition, 293)); + pointers.add(Pointer.fromFunction(simpleAddition, 294)); + pointers.add(Pointer.fromFunction(simpleAddition, 295)); + pointers.add(Pointer.fromFunction(simpleAddition, 296)); + pointers.add(Pointer.fromFunction(simpleAddition, 297)); + pointers.add(Pointer.fromFunction(simpleAddition, 298)); + pointers.add(Pointer.fromFunction(simpleAddition, 299)); + pointers.add(Pointer.fromFunction(simpleAddition, 300)); + pointers.add(Pointer.fromFunction(simpleAddition, 301)); + pointers.add(Pointer.fromFunction(simpleAddition, 302)); + pointers.add(Pointer.fromFunction(simpleAddition, 303)); + pointers.add(Pointer.fromFunction(simpleAddition, 304)); + pointers.add(Pointer.fromFunction(simpleAddition, 305)); + pointers.add(Pointer.fromFunction(simpleAddition, 306)); + pointers.add(Pointer.fromFunction(simpleAddition, 307)); + pointers.add(Pointer.fromFunction(simpleAddition, 308)); + pointers.add(Pointer.fromFunction(simpleAddition, 309)); + pointers.add(Pointer.fromFunction(simpleAddition, 310)); + pointers.add(Pointer.fromFunction(simpleAddition, 311)); + pointers.add(Pointer.fromFunction(simpleAddition, 312)); + pointers.add(Pointer.fromFunction(simpleAddition, 313)); + pointers.add(Pointer.fromFunction(simpleAddition, 314)); + pointers.add(Pointer.fromFunction(simpleAddition, 315)); + pointers.add(Pointer.fromFunction(simpleAddition, 316)); + pointers.add(Pointer.fromFunction(simpleAddition, 317)); + pointers.add(Pointer.fromFunction(simpleAddition, 318)); + pointers.add(Pointer.fromFunction(simpleAddition, 319)); + pointers.add(Pointer.fromFunction(simpleAddition, 320)); + pointers.add(Pointer.fromFunction(simpleAddition, 321)); + pointers.add(Pointer.fromFunction(simpleAddition, 322)); + pointers.add(Pointer.fromFunction(simpleAddition, 323)); + pointers.add(Pointer.fromFunction(simpleAddition, 324)); + pointers.add(Pointer.fromFunction(simpleAddition, 325)); + pointers.add(Pointer.fromFunction(simpleAddition, 326)); + pointers.add(Pointer.fromFunction(simpleAddition, 327)); + pointers.add(Pointer.fromFunction(simpleAddition, 328)); + pointers.add(Pointer.fromFunction(simpleAddition, 329)); + pointers.add(Pointer.fromFunction(simpleAddition, 330)); + pointers.add(Pointer.fromFunction(simpleAddition, 331)); + pointers.add(Pointer.fromFunction(simpleAddition, 332)); + pointers.add(Pointer.fromFunction(simpleAddition, 333)); + pointers.add(Pointer.fromFunction(simpleAddition, 334)); + pointers.add(Pointer.fromFunction(simpleAddition, 335)); + pointers.add(Pointer.fromFunction(simpleAddition, 336)); + pointers.add(Pointer.fromFunction(simpleAddition, 337)); + pointers.add(Pointer.fromFunction(simpleAddition, 338)); + pointers.add(Pointer.fromFunction(simpleAddition, 339)); + pointers.add(Pointer.fromFunction(simpleAddition, 340)); + pointers.add(Pointer.fromFunction(simpleAddition, 341)); + pointers.add(Pointer.fromFunction(simpleAddition, 342)); + pointers.add(Pointer.fromFunction(simpleAddition, 343)); + pointers.add(Pointer.fromFunction(simpleAddition, 344)); + pointers.add(Pointer.fromFunction(simpleAddition, 345)); + pointers.add(Pointer.fromFunction(simpleAddition, 346)); + pointers.add(Pointer.fromFunction(simpleAddition, 347)); + pointers.add(Pointer.fromFunction(simpleAddition, 348)); + pointers.add(Pointer.fromFunction(simpleAddition, 349)); + pointers.add(Pointer.fromFunction(simpleAddition, 350)); + pointers.add(Pointer.fromFunction(simpleAddition, 351)); + pointers.add(Pointer.fromFunction(simpleAddition, 352)); + pointers.add(Pointer.fromFunction(simpleAddition, 353)); + pointers.add(Pointer.fromFunction(simpleAddition, 354)); + pointers.add(Pointer.fromFunction(simpleAddition, 355)); + pointers.add(Pointer.fromFunction(simpleAddition, 356)); + pointers.add(Pointer.fromFunction(simpleAddition, 357)); + pointers.add(Pointer.fromFunction(simpleAddition, 358)); + pointers.add(Pointer.fromFunction(simpleAddition, 359)); + pointers.add(Pointer.fromFunction(simpleAddition, 360)); + pointers.add(Pointer.fromFunction(simpleAddition, 361)); + pointers.add(Pointer.fromFunction(simpleAddition, 362)); + pointers.add(Pointer.fromFunction(simpleAddition, 363)); + pointers.add(Pointer.fromFunction(simpleAddition, 364)); + pointers.add(Pointer.fromFunction(simpleAddition, 365)); + pointers.add(Pointer.fromFunction(simpleAddition, 366)); + pointers.add(Pointer.fromFunction(simpleAddition, 367)); + pointers.add(Pointer.fromFunction(simpleAddition, 368)); + pointers.add(Pointer.fromFunction(simpleAddition, 369)); + pointers.add(Pointer.fromFunction(simpleAddition, 370)); + pointers.add(Pointer.fromFunction(simpleAddition, 371)); + pointers.add(Pointer.fromFunction(simpleAddition, 372)); + pointers.add(Pointer.fromFunction(simpleAddition, 373)); + pointers.add(Pointer.fromFunction(simpleAddition, 374)); + pointers.add(Pointer.fromFunction(simpleAddition, 375)); + pointers.add(Pointer.fromFunction(simpleAddition, 376)); + pointers.add(Pointer.fromFunction(simpleAddition, 377)); + pointers.add(Pointer.fromFunction(simpleAddition, 378)); + pointers.add(Pointer.fromFunction(simpleAddition, 379)); + pointers.add(Pointer.fromFunction(simpleAddition, 380)); + pointers.add(Pointer.fromFunction(simpleAddition, 381)); + pointers.add(Pointer.fromFunction(simpleAddition, 382)); + pointers.add(Pointer.fromFunction(simpleAddition, 383)); + pointers.add(Pointer.fromFunction(simpleAddition, 384)); + pointers.add(Pointer.fromFunction(simpleAddition, 385)); + pointers.add(Pointer.fromFunction(simpleAddition, 386)); + pointers.add(Pointer.fromFunction(simpleAddition, 387)); + pointers.add(Pointer.fromFunction(simpleAddition, 388)); + pointers.add(Pointer.fromFunction(simpleAddition, 389)); + pointers.add(Pointer.fromFunction(simpleAddition, 390)); + pointers.add(Pointer.fromFunction(simpleAddition, 391)); + pointers.add(Pointer.fromFunction(simpleAddition, 392)); + pointers.add(Pointer.fromFunction(simpleAddition, 393)); + pointers.add(Pointer.fromFunction(simpleAddition, 394)); + pointers.add(Pointer.fromFunction(simpleAddition, 395)); + pointers.add(Pointer.fromFunction(simpleAddition, 396)); + pointers.add(Pointer.fromFunction(simpleAddition, 397)); + pointers.add(Pointer.fromFunction(simpleAddition, 398)); + pointers.add(Pointer.fromFunction(simpleAddition, 399)); + pointers.add(Pointer.fromFunction(simpleAddition, 400)); + pointers.add(Pointer.fromFunction(simpleAddition, 401)); + pointers.add(Pointer.fromFunction(simpleAddition, 402)); + pointers.add(Pointer.fromFunction(simpleAddition, 403)); + pointers.add(Pointer.fromFunction(simpleAddition, 404)); + pointers.add(Pointer.fromFunction(simpleAddition, 405)); + pointers.add(Pointer.fromFunction(simpleAddition, 406)); + pointers.add(Pointer.fromFunction(simpleAddition, 407)); + pointers.add(Pointer.fromFunction(simpleAddition, 408)); + pointers.add(Pointer.fromFunction(simpleAddition, 409)); + pointers.add(Pointer.fromFunction(simpleAddition, 410)); + pointers.add(Pointer.fromFunction(simpleAddition, 411)); + pointers.add(Pointer.fromFunction(simpleAddition, 412)); + pointers.add(Pointer.fromFunction(simpleAddition, 413)); + pointers.add(Pointer.fromFunction(simpleAddition, 414)); + pointers.add(Pointer.fromFunction(simpleAddition, 415)); + pointers.add(Pointer.fromFunction(simpleAddition, 416)); + pointers.add(Pointer.fromFunction(simpleAddition, 417)); + pointers.add(Pointer.fromFunction(simpleAddition, 418)); + pointers.add(Pointer.fromFunction(simpleAddition, 419)); + pointers.add(Pointer.fromFunction(simpleAddition, 420)); + pointers.add(Pointer.fromFunction(simpleAddition, 421)); + pointers.add(Pointer.fromFunction(simpleAddition, 422)); + pointers.add(Pointer.fromFunction(simpleAddition, 423)); + pointers.add(Pointer.fromFunction(simpleAddition, 424)); + pointers.add(Pointer.fromFunction(simpleAddition, 425)); + pointers.add(Pointer.fromFunction(simpleAddition, 426)); + pointers.add(Pointer.fromFunction(simpleAddition, 427)); + pointers.add(Pointer.fromFunction(simpleAddition, 428)); + pointers.add(Pointer.fromFunction(simpleAddition, 429)); + pointers.add(Pointer.fromFunction(simpleAddition, 430)); + pointers.add(Pointer.fromFunction(simpleAddition, 431)); + pointers.add(Pointer.fromFunction(simpleAddition, 432)); + pointers.add(Pointer.fromFunction(simpleAddition, 433)); + pointers.add(Pointer.fromFunction(simpleAddition, 434)); + pointers.add(Pointer.fromFunction(simpleAddition, 435)); + pointers.add(Pointer.fromFunction(simpleAddition, 436)); + pointers.add(Pointer.fromFunction(simpleAddition, 437)); + pointers.add(Pointer.fromFunction(simpleAddition, 438)); + pointers.add(Pointer.fromFunction(simpleAddition, 439)); + pointers.add(Pointer.fromFunction(simpleAddition, 440)); + pointers.add(Pointer.fromFunction(simpleAddition, 441)); + pointers.add(Pointer.fromFunction(simpleAddition, 442)); + pointers.add(Pointer.fromFunction(simpleAddition, 443)); + pointers.add(Pointer.fromFunction(simpleAddition, 444)); + pointers.add(Pointer.fromFunction(simpleAddition, 445)); + pointers.add(Pointer.fromFunction(simpleAddition, 446)); + pointers.add(Pointer.fromFunction(simpleAddition, 447)); + pointers.add(Pointer.fromFunction(simpleAddition, 448)); + pointers.add(Pointer.fromFunction(simpleAddition, 449)); + pointers.add(Pointer.fromFunction(simpleAddition, 450)); + pointers.add(Pointer.fromFunction(simpleAddition, 451)); + pointers.add(Pointer.fromFunction(simpleAddition, 452)); + pointers.add(Pointer.fromFunction(simpleAddition, 453)); + pointers.add(Pointer.fromFunction(simpleAddition, 454)); + pointers.add(Pointer.fromFunction(simpleAddition, 455)); + pointers.add(Pointer.fromFunction(simpleAddition, 456)); + pointers.add(Pointer.fromFunction(simpleAddition, 457)); + pointers.add(Pointer.fromFunction(simpleAddition, 458)); + pointers.add(Pointer.fromFunction(simpleAddition, 459)); + pointers.add(Pointer.fromFunction(simpleAddition, 460)); + pointers.add(Pointer.fromFunction(simpleAddition, 461)); + pointers.add(Pointer.fromFunction(simpleAddition, 462)); + pointers.add(Pointer.fromFunction(simpleAddition, 463)); + pointers.add(Pointer.fromFunction(simpleAddition, 464)); + pointers.add(Pointer.fromFunction(simpleAddition, 465)); + pointers.add(Pointer.fromFunction(simpleAddition, 466)); + pointers.add(Pointer.fromFunction(simpleAddition, 467)); + pointers.add(Pointer.fromFunction(simpleAddition, 468)); + pointers.add(Pointer.fromFunction(simpleAddition, 469)); + pointers.add(Pointer.fromFunction(simpleAddition, 470)); + pointers.add(Pointer.fromFunction(simpleAddition, 471)); + pointers.add(Pointer.fromFunction(simpleAddition, 472)); + pointers.add(Pointer.fromFunction(simpleAddition, 473)); + pointers.add(Pointer.fromFunction(simpleAddition, 474)); + pointers.add(Pointer.fromFunction(simpleAddition, 475)); + pointers.add(Pointer.fromFunction(simpleAddition, 476)); + pointers.add(Pointer.fromFunction(simpleAddition, 477)); + pointers.add(Pointer.fromFunction(simpleAddition, 478)); + pointers.add(Pointer.fromFunction(simpleAddition, 479)); + pointers.add(Pointer.fromFunction(simpleAddition, 480)); + pointers.add(Pointer.fromFunction(simpleAddition, 481)); + pointers.add(Pointer.fromFunction(simpleAddition, 482)); + pointers.add(Pointer.fromFunction(simpleAddition, 483)); + pointers.add(Pointer.fromFunction(simpleAddition, 484)); + pointers.add(Pointer.fromFunction(simpleAddition, 485)); + pointers.add(Pointer.fromFunction(simpleAddition, 486)); + pointers.add(Pointer.fromFunction(simpleAddition, 487)); + pointers.add(Pointer.fromFunction(simpleAddition, 488)); + pointers.add(Pointer.fromFunction(simpleAddition, 489)); + pointers.add(Pointer.fromFunction(simpleAddition, 490)); + pointers.add(Pointer.fromFunction(simpleAddition, 491)); + pointers.add(Pointer.fromFunction(simpleAddition, 492)); + pointers.add(Pointer.fromFunction(simpleAddition, 493)); + pointers.add(Pointer.fromFunction(simpleAddition, 494)); + pointers.add(Pointer.fromFunction(simpleAddition, 495)); + pointers.add(Pointer.fromFunction(simpleAddition, 496)); + pointers.add(Pointer.fromFunction(simpleAddition, 497)); + pointers.add(Pointer.fromFunction(simpleAddition, 498)); + pointers.add(Pointer.fromFunction(simpleAddition, 499)); + pointers.add(Pointer.fromFunction(simpleAddition, 500)); + pointers.add(Pointer.fromFunction(simpleAddition, 501)); + pointers.add(Pointer.fromFunction(simpleAddition, 502)); + pointers.add(Pointer.fromFunction(simpleAddition, 503)); + pointers.add(Pointer.fromFunction(simpleAddition, 504)); + pointers.add(Pointer.fromFunction(simpleAddition, 505)); + pointers.add(Pointer.fromFunction(simpleAddition, 506)); + pointers.add(Pointer.fromFunction(simpleAddition, 507)); + pointers.add(Pointer.fromFunction(simpleAddition, 508)); + pointers.add(Pointer.fromFunction(simpleAddition, 509)); + pointers.add(Pointer.fromFunction(simpleAddition, 510)); + pointers.add(Pointer.fromFunction(simpleAddition, 511)); + pointers.add(Pointer.fromFunction(simpleAddition, 512)); + pointers.add(Pointer.fromFunction(simpleAddition, 513)); + pointers.add(Pointer.fromFunction(simpleAddition, 514)); + pointers.add(Pointer.fromFunction(simpleAddition, 515)); + pointers.add(Pointer.fromFunction(simpleAddition, 516)); + pointers.add(Pointer.fromFunction(simpleAddition, 517)); + pointers.add(Pointer.fromFunction(simpleAddition, 518)); + pointers.add(Pointer.fromFunction(simpleAddition, 519)); + pointers.add(Pointer.fromFunction(simpleAddition, 520)); + pointers.add(Pointer.fromFunction(simpleAddition, 521)); + pointers.add(Pointer.fromFunction(simpleAddition, 522)); + pointers.add(Pointer.fromFunction(simpleAddition, 523)); + pointers.add(Pointer.fromFunction(simpleAddition, 524)); + pointers.add(Pointer.fromFunction(simpleAddition, 525)); + pointers.add(Pointer.fromFunction(simpleAddition, 526)); + pointers.add(Pointer.fromFunction(simpleAddition, 527)); + pointers.add(Pointer.fromFunction(simpleAddition, 528)); + pointers.add(Pointer.fromFunction(simpleAddition, 529)); + pointers.add(Pointer.fromFunction(simpleAddition, 530)); + pointers.add(Pointer.fromFunction(simpleAddition, 531)); + pointers.add(Pointer.fromFunction(simpleAddition, 532)); + pointers.add(Pointer.fromFunction(simpleAddition, 533)); + pointers.add(Pointer.fromFunction(simpleAddition, 534)); + pointers.add(Pointer.fromFunction(simpleAddition, 535)); + pointers.add(Pointer.fromFunction(simpleAddition, 536)); + pointers.add(Pointer.fromFunction(simpleAddition, 537)); + pointers.add(Pointer.fromFunction(simpleAddition, 538)); + pointers.add(Pointer.fromFunction(simpleAddition, 539)); + pointers.add(Pointer.fromFunction(simpleAddition, 540)); + pointers.add(Pointer.fromFunction(simpleAddition, 541)); + pointers.add(Pointer.fromFunction(simpleAddition, 542)); + pointers.add(Pointer.fromFunction(simpleAddition, 543)); + pointers.add(Pointer.fromFunction(simpleAddition, 544)); + pointers.add(Pointer.fromFunction(simpleAddition, 545)); + pointers.add(Pointer.fromFunction(simpleAddition, 546)); + pointers.add(Pointer.fromFunction(simpleAddition, 547)); + pointers.add(Pointer.fromFunction(simpleAddition, 548)); + pointers.add(Pointer.fromFunction(simpleAddition, 549)); + pointers.add(Pointer.fromFunction(simpleAddition, 550)); + pointers.add(Pointer.fromFunction(simpleAddition, 551)); + pointers.add(Pointer.fromFunction(simpleAddition, 552)); + pointers.add(Pointer.fromFunction(simpleAddition, 553)); + pointers.add(Pointer.fromFunction(simpleAddition, 554)); + pointers.add(Pointer.fromFunction(simpleAddition, 555)); + pointers.add(Pointer.fromFunction(simpleAddition, 556)); + pointers.add(Pointer.fromFunction(simpleAddition, 557)); + pointers.add(Pointer.fromFunction(simpleAddition, 558)); + pointers.add(Pointer.fromFunction(simpleAddition, 559)); + pointers.add(Pointer.fromFunction(simpleAddition, 560)); + pointers.add(Pointer.fromFunction(simpleAddition, 561)); + pointers.add(Pointer.fromFunction(simpleAddition, 562)); + pointers.add(Pointer.fromFunction(simpleAddition, 563)); + pointers.add(Pointer.fromFunction(simpleAddition, 564)); + pointers.add(Pointer.fromFunction(simpleAddition, 565)); + pointers.add(Pointer.fromFunction(simpleAddition, 566)); + pointers.add(Pointer.fromFunction(simpleAddition, 567)); + pointers.add(Pointer.fromFunction(simpleAddition, 568)); + pointers.add(Pointer.fromFunction(simpleAddition, 569)); + pointers.add(Pointer.fromFunction(simpleAddition, 570)); + pointers.add(Pointer.fromFunction(simpleAddition, 571)); + pointers.add(Pointer.fromFunction(simpleAddition, 572)); + pointers.add(Pointer.fromFunction(simpleAddition, 573)); + pointers.add(Pointer.fromFunction(simpleAddition, 574)); + pointers.add(Pointer.fromFunction(simpleAddition, 575)); + pointers.add(Pointer.fromFunction(simpleAddition, 576)); + pointers.add(Pointer.fromFunction(simpleAddition, 577)); + pointers.add(Pointer.fromFunction(simpleAddition, 578)); + pointers.add(Pointer.fromFunction(simpleAddition, 579)); + pointers.add(Pointer.fromFunction(simpleAddition, 580)); + pointers.add(Pointer.fromFunction(simpleAddition, 581)); + pointers.add(Pointer.fromFunction(simpleAddition, 582)); + pointers.add(Pointer.fromFunction(simpleAddition, 583)); + pointers.add(Pointer.fromFunction(simpleAddition, 584)); + pointers.add(Pointer.fromFunction(simpleAddition, 585)); + pointers.add(Pointer.fromFunction(simpleAddition, 586)); + pointers.add(Pointer.fromFunction(simpleAddition, 587)); + pointers.add(Pointer.fromFunction(simpleAddition, 588)); + pointers.add(Pointer.fromFunction(simpleAddition, 589)); + pointers.add(Pointer.fromFunction(simpleAddition, 590)); + pointers.add(Pointer.fromFunction(simpleAddition, 591)); + pointers.add(Pointer.fromFunction(simpleAddition, 592)); + pointers.add(Pointer.fromFunction(simpleAddition, 593)); + pointers.add(Pointer.fromFunction(simpleAddition, 594)); + pointers.add(Pointer.fromFunction(simpleAddition, 595)); + pointers.add(Pointer.fromFunction(simpleAddition, 596)); + pointers.add(Pointer.fromFunction(simpleAddition, 597)); + pointers.add(Pointer.fromFunction(simpleAddition, 598)); + pointers.add(Pointer.fromFunction(simpleAddition, 599)); + pointers.add(Pointer.fromFunction(simpleAddition, 600)); + pointers.add(Pointer.fromFunction(simpleAddition, 601)); + pointers.add(Pointer.fromFunction(simpleAddition, 602)); + pointers.add(Pointer.fromFunction(simpleAddition, 603)); + pointers.add(Pointer.fromFunction(simpleAddition, 604)); + pointers.add(Pointer.fromFunction(simpleAddition, 605)); + pointers.add(Pointer.fromFunction(simpleAddition, 606)); + pointers.add(Pointer.fromFunction(simpleAddition, 607)); + pointers.add(Pointer.fromFunction(simpleAddition, 608)); + pointers.add(Pointer.fromFunction(simpleAddition, 609)); + pointers.add(Pointer.fromFunction(simpleAddition, 610)); + pointers.add(Pointer.fromFunction(simpleAddition, 611)); + pointers.add(Pointer.fromFunction(simpleAddition, 612)); + pointers.add(Pointer.fromFunction(simpleAddition, 613)); + pointers.add(Pointer.fromFunction(simpleAddition, 614)); + pointers.add(Pointer.fromFunction(simpleAddition, 615)); + pointers.add(Pointer.fromFunction(simpleAddition, 616)); + pointers.add(Pointer.fromFunction(simpleAddition, 617)); + pointers.add(Pointer.fromFunction(simpleAddition, 618)); + pointers.add(Pointer.fromFunction(simpleAddition, 619)); + pointers.add(Pointer.fromFunction(simpleAddition, 620)); + pointers.add(Pointer.fromFunction(simpleAddition, 621)); + pointers.add(Pointer.fromFunction(simpleAddition, 622)); + pointers.add(Pointer.fromFunction(simpleAddition, 623)); + pointers.add(Pointer.fromFunction(simpleAddition, 624)); + pointers.add(Pointer.fromFunction(simpleAddition, 625)); + pointers.add(Pointer.fromFunction(simpleAddition, 626)); + pointers.add(Pointer.fromFunction(simpleAddition, 627)); + pointers.add(Pointer.fromFunction(simpleAddition, 628)); + pointers.add(Pointer.fromFunction(simpleAddition, 629)); + pointers.add(Pointer.fromFunction(simpleAddition, 630)); + pointers.add(Pointer.fromFunction(simpleAddition, 631)); + pointers.add(Pointer.fromFunction(simpleAddition, 632)); + pointers.add(Pointer.fromFunction(simpleAddition, 633)); + pointers.add(Pointer.fromFunction(simpleAddition, 634)); + pointers.add(Pointer.fromFunction(simpleAddition, 635)); + pointers.add(Pointer.fromFunction(simpleAddition, 636)); + pointers.add(Pointer.fromFunction(simpleAddition, 637)); + pointers.add(Pointer.fromFunction(simpleAddition, 638)); + pointers.add(Pointer.fromFunction(simpleAddition, 639)); + pointers.add(Pointer.fromFunction(simpleAddition, 640)); + pointers.add(Pointer.fromFunction(simpleAddition, 641)); + pointers.add(Pointer.fromFunction(simpleAddition, 642)); + pointers.add(Pointer.fromFunction(simpleAddition, 643)); + pointers.add(Pointer.fromFunction(simpleAddition, 644)); + pointers.add(Pointer.fromFunction(simpleAddition, 645)); + pointers.add(Pointer.fromFunction(simpleAddition, 646)); + pointers.add(Pointer.fromFunction(simpleAddition, 647)); + pointers.add(Pointer.fromFunction(simpleAddition, 648)); + pointers.add(Pointer.fromFunction(simpleAddition, 649)); + pointers.add(Pointer.fromFunction(simpleAddition, 650)); + pointers.add(Pointer.fromFunction(simpleAddition, 651)); + pointers.add(Pointer.fromFunction(simpleAddition, 652)); + pointers.add(Pointer.fromFunction(simpleAddition, 653)); + pointers.add(Pointer.fromFunction(simpleAddition, 654)); + pointers.add(Pointer.fromFunction(simpleAddition, 655)); + pointers.add(Pointer.fromFunction(simpleAddition, 656)); + pointers.add(Pointer.fromFunction(simpleAddition, 657)); + pointers.add(Pointer.fromFunction(simpleAddition, 658)); + pointers.add(Pointer.fromFunction(simpleAddition, 659)); + pointers.add(Pointer.fromFunction(simpleAddition, 660)); + pointers.add(Pointer.fromFunction(simpleAddition, 661)); + pointers.add(Pointer.fromFunction(simpleAddition, 662)); + pointers.add(Pointer.fromFunction(simpleAddition, 663)); + pointers.add(Pointer.fromFunction(simpleAddition, 664)); + pointers.add(Pointer.fromFunction(simpleAddition, 665)); + pointers.add(Pointer.fromFunction(simpleAddition, 666)); + pointers.add(Pointer.fromFunction(simpleAddition, 667)); + pointers.add(Pointer.fromFunction(simpleAddition, 668)); + pointers.add(Pointer.fromFunction(simpleAddition, 669)); + pointers.add(Pointer.fromFunction(simpleAddition, 670)); + pointers.add(Pointer.fromFunction(simpleAddition, 671)); + pointers.add(Pointer.fromFunction(simpleAddition, 672)); + pointers.add(Pointer.fromFunction(simpleAddition, 673)); + pointers.add(Pointer.fromFunction(simpleAddition, 674)); + pointers.add(Pointer.fromFunction(simpleAddition, 675)); + pointers.add(Pointer.fromFunction(simpleAddition, 676)); + pointers.add(Pointer.fromFunction(simpleAddition, 677)); + pointers.add(Pointer.fromFunction(simpleAddition, 678)); + pointers.add(Pointer.fromFunction(simpleAddition, 679)); + pointers.add(Pointer.fromFunction(simpleAddition, 680)); + pointers.add(Pointer.fromFunction(simpleAddition, 681)); + pointers.add(Pointer.fromFunction(simpleAddition, 682)); + pointers.add(Pointer.fromFunction(simpleAddition, 683)); + pointers.add(Pointer.fromFunction(simpleAddition, 684)); + pointers.add(Pointer.fromFunction(simpleAddition, 685)); + pointers.add(Pointer.fromFunction(simpleAddition, 686)); + pointers.add(Pointer.fromFunction(simpleAddition, 687)); + pointers.add(Pointer.fromFunction(simpleAddition, 688)); + pointers.add(Pointer.fromFunction(simpleAddition, 689)); + pointers.add(Pointer.fromFunction(simpleAddition, 690)); + pointers.add(Pointer.fromFunction(simpleAddition, 691)); + pointers.add(Pointer.fromFunction(simpleAddition, 692)); + pointers.add(Pointer.fromFunction(simpleAddition, 693)); + pointers.add(Pointer.fromFunction(simpleAddition, 694)); + pointers.add(Pointer.fromFunction(simpleAddition, 695)); + pointers.add(Pointer.fromFunction(simpleAddition, 696)); + pointers.add(Pointer.fromFunction(simpleAddition, 697)); + pointers.add(Pointer.fromFunction(simpleAddition, 698)); + pointers.add(Pointer.fromFunction(simpleAddition, 699)); + pointers.add(Pointer.fromFunction(simpleAddition, 700)); + pointers.add(Pointer.fromFunction(simpleAddition, 701)); + pointers.add(Pointer.fromFunction(simpleAddition, 702)); + pointers.add(Pointer.fromFunction(simpleAddition, 703)); + pointers.add(Pointer.fromFunction(simpleAddition, 704)); + pointers.add(Pointer.fromFunction(simpleAddition, 705)); + pointers.add(Pointer.fromFunction(simpleAddition, 706)); + pointers.add(Pointer.fromFunction(simpleAddition, 707)); + pointers.add(Pointer.fromFunction(simpleAddition, 708)); + pointers.add(Pointer.fromFunction(simpleAddition, 709)); + pointers.add(Pointer.fromFunction(simpleAddition, 710)); + pointers.add(Pointer.fromFunction(simpleAddition, 711)); + pointers.add(Pointer.fromFunction(simpleAddition, 712)); + pointers.add(Pointer.fromFunction(simpleAddition, 713)); + pointers.add(Pointer.fromFunction(simpleAddition, 714)); + pointers.add(Pointer.fromFunction(simpleAddition, 715)); + pointers.add(Pointer.fromFunction(simpleAddition, 716)); + pointers.add(Pointer.fromFunction(simpleAddition, 717)); + pointers.add(Pointer.fromFunction(simpleAddition, 718)); + pointers.add(Pointer.fromFunction(simpleAddition, 719)); + pointers.add(Pointer.fromFunction(simpleAddition, 720)); + pointers.add(Pointer.fromFunction(simpleAddition, 721)); + pointers.add(Pointer.fromFunction(simpleAddition, 722)); + pointers.add(Pointer.fromFunction(simpleAddition, 723)); + pointers.add(Pointer.fromFunction(simpleAddition, 724)); + pointers.add(Pointer.fromFunction(simpleAddition, 725)); + pointers.add(Pointer.fromFunction(simpleAddition, 726)); + pointers.add(Pointer.fromFunction(simpleAddition, 727)); + pointers.add(Pointer.fromFunction(simpleAddition, 728)); + pointers.add(Pointer.fromFunction(simpleAddition, 729)); + pointers.add(Pointer.fromFunction(simpleAddition, 730)); + pointers.add(Pointer.fromFunction(simpleAddition, 731)); + pointers.add(Pointer.fromFunction(simpleAddition, 732)); + pointers.add(Pointer.fromFunction(simpleAddition, 733)); + pointers.add(Pointer.fromFunction(simpleAddition, 734)); + pointers.add(Pointer.fromFunction(simpleAddition, 735)); + pointers.add(Pointer.fromFunction(simpleAddition, 736)); + pointers.add(Pointer.fromFunction(simpleAddition, 737)); + pointers.add(Pointer.fromFunction(simpleAddition, 738)); + pointers.add(Pointer.fromFunction(simpleAddition, 739)); + pointers.add(Pointer.fromFunction(simpleAddition, 740)); + pointers.add(Pointer.fromFunction(simpleAddition, 741)); + pointers.add(Pointer.fromFunction(simpleAddition, 742)); + pointers.add(Pointer.fromFunction(simpleAddition, 743)); + pointers.add(Pointer.fromFunction(simpleAddition, 744)); + pointers.add(Pointer.fromFunction(simpleAddition, 745)); + pointers.add(Pointer.fromFunction(simpleAddition, 746)); + pointers.add(Pointer.fromFunction(simpleAddition, 747)); + pointers.add(Pointer.fromFunction(simpleAddition, 748)); + pointers.add(Pointer.fromFunction(simpleAddition, 749)); + pointers.add(Pointer.fromFunction(simpleAddition, 750)); + pointers.add(Pointer.fromFunction(simpleAddition, 751)); + pointers.add(Pointer.fromFunction(simpleAddition, 752)); + pointers.add(Pointer.fromFunction(simpleAddition, 753)); + pointers.add(Pointer.fromFunction(simpleAddition, 754)); + pointers.add(Pointer.fromFunction(simpleAddition, 755)); + pointers.add(Pointer.fromFunction(simpleAddition, 756)); + pointers.add(Pointer.fromFunction(simpleAddition, 757)); + pointers.add(Pointer.fromFunction(simpleAddition, 758)); + pointers.add(Pointer.fromFunction(simpleAddition, 759)); + pointers.add(Pointer.fromFunction(simpleAddition, 760)); + pointers.add(Pointer.fromFunction(simpleAddition, 761)); + pointers.add(Pointer.fromFunction(simpleAddition, 762)); + pointers.add(Pointer.fromFunction(simpleAddition, 763)); + pointers.add(Pointer.fromFunction(simpleAddition, 764)); + pointers.add(Pointer.fromFunction(simpleAddition, 765)); + pointers.add(Pointer.fromFunction(simpleAddition, 766)); + pointers.add(Pointer.fromFunction(simpleAddition, 767)); + pointers.add(Pointer.fromFunction(simpleAddition, 768)); + pointers.add(Pointer.fromFunction(simpleAddition, 769)); + pointers.add(Pointer.fromFunction(simpleAddition, 770)); + pointers.add(Pointer.fromFunction(simpleAddition, 771)); + pointers.add(Pointer.fromFunction(simpleAddition, 772)); + pointers.add(Pointer.fromFunction(simpleAddition, 773)); + pointers.add(Pointer.fromFunction(simpleAddition, 774)); + pointers.add(Pointer.fromFunction(simpleAddition, 775)); + pointers.add(Pointer.fromFunction(simpleAddition, 776)); + pointers.add(Pointer.fromFunction(simpleAddition, 777)); + pointers.add(Pointer.fromFunction(simpleAddition, 778)); + pointers.add(Pointer.fromFunction(simpleAddition, 779)); + pointers.add(Pointer.fromFunction(simpleAddition, 780)); + pointers.add(Pointer.fromFunction(simpleAddition, 781)); + pointers.add(Pointer.fromFunction(simpleAddition, 782)); + pointers.add(Pointer.fromFunction(simpleAddition, 783)); + pointers.add(Pointer.fromFunction(simpleAddition, 784)); + pointers.add(Pointer.fromFunction(simpleAddition, 785)); + pointers.add(Pointer.fromFunction(simpleAddition, 786)); + pointers.add(Pointer.fromFunction(simpleAddition, 787)); + pointers.add(Pointer.fromFunction(simpleAddition, 788)); + pointers.add(Pointer.fromFunction(simpleAddition, 789)); + pointers.add(Pointer.fromFunction(simpleAddition, 790)); + pointers.add(Pointer.fromFunction(simpleAddition, 791)); + pointers.add(Pointer.fromFunction(simpleAddition, 792)); + pointers.add(Pointer.fromFunction(simpleAddition, 793)); + pointers.add(Pointer.fromFunction(simpleAddition, 794)); + pointers.add(Pointer.fromFunction(simpleAddition, 795)); + pointers.add(Pointer.fromFunction(simpleAddition, 796)); + pointers.add(Pointer.fromFunction(simpleAddition, 797)); + pointers.add(Pointer.fromFunction(simpleAddition, 798)); + pointers.add(Pointer.fromFunction(simpleAddition, 799)); + pointers.add(Pointer.fromFunction(simpleAddition, 800)); + pointers.add(Pointer.fromFunction(simpleAddition, 801)); + pointers.add(Pointer.fromFunction(simpleAddition, 802)); + pointers.add(Pointer.fromFunction(simpleAddition, 803)); + pointers.add(Pointer.fromFunction(simpleAddition, 804)); + pointers.add(Pointer.fromFunction(simpleAddition, 805)); + pointers.add(Pointer.fromFunction(simpleAddition, 806)); + pointers.add(Pointer.fromFunction(simpleAddition, 807)); + pointers.add(Pointer.fromFunction(simpleAddition, 808)); + pointers.add(Pointer.fromFunction(simpleAddition, 809)); + pointers.add(Pointer.fromFunction(simpleAddition, 810)); + pointers.add(Pointer.fromFunction(simpleAddition, 811)); + pointers.add(Pointer.fromFunction(simpleAddition, 812)); + pointers.add(Pointer.fromFunction(simpleAddition, 813)); + pointers.add(Pointer.fromFunction(simpleAddition, 814)); + pointers.add(Pointer.fromFunction(simpleAddition, 815)); + pointers.add(Pointer.fromFunction(simpleAddition, 816)); + pointers.add(Pointer.fromFunction(simpleAddition, 817)); + pointers.add(Pointer.fromFunction(simpleAddition, 818)); + pointers.add(Pointer.fromFunction(simpleAddition, 819)); + pointers.add(Pointer.fromFunction(simpleAddition, 820)); + pointers.add(Pointer.fromFunction(simpleAddition, 821)); + pointers.add(Pointer.fromFunction(simpleAddition, 822)); + pointers.add(Pointer.fromFunction(simpleAddition, 823)); + pointers.add(Pointer.fromFunction(simpleAddition, 824)); + pointers.add(Pointer.fromFunction(simpleAddition, 825)); + pointers.add(Pointer.fromFunction(simpleAddition, 826)); + pointers.add(Pointer.fromFunction(simpleAddition, 827)); + pointers.add(Pointer.fromFunction(simpleAddition, 828)); + pointers.add(Pointer.fromFunction(simpleAddition, 829)); + pointers.add(Pointer.fromFunction(simpleAddition, 830)); + pointers.add(Pointer.fromFunction(simpleAddition, 831)); + pointers.add(Pointer.fromFunction(simpleAddition, 832)); + pointers.add(Pointer.fromFunction(simpleAddition, 833)); + pointers.add(Pointer.fromFunction(simpleAddition, 834)); + pointers.add(Pointer.fromFunction(simpleAddition, 835)); + pointers.add(Pointer.fromFunction(simpleAddition, 836)); + pointers.add(Pointer.fromFunction(simpleAddition, 837)); + pointers.add(Pointer.fromFunction(simpleAddition, 838)); + pointers.add(Pointer.fromFunction(simpleAddition, 839)); + pointers.add(Pointer.fromFunction(simpleAddition, 840)); + pointers.add(Pointer.fromFunction(simpleAddition, 841)); + pointers.add(Pointer.fromFunction(simpleAddition, 842)); + pointers.add(Pointer.fromFunction(simpleAddition, 843)); + pointers.add(Pointer.fromFunction(simpleAddition, 844)); + pointers.add(Pointer.fromFunction(simpleAddition, 845)); + pointers.add(Pointer.fromFunction(simpleAddition, 846)); + pointers.add(Pointer.fromFunction(simpleAddition, 847)); + pointers.add(Pointer.fromFunction(simpleAddition, 848)); + pointers.add(Pointer.fromFunction(simpleAddition, 849)); + pointers.add(Pointer.fromFunction(simpleAddition, 850)); + pointers.add(Pointer.fromFunction(simpleAddition, 851)); + pointers.add(Pointer.fromFunction(simpleAddition, 852)); + pointers.add(Pointer.fromFunction(simpleAddition, 853)); + pointers.add(Pointer.fromFunction(simpleAddition, 854)); + pointers.add(Pointer.fromFunction(simpleAddition, 855)); + pointers.add(Pointer.fromFunction(simpleAddition, 856)); + pointers.add(Pointer.fromFunction(simpleAddition, 857)); + pointers.add(Pointer.fromFunction(simpleAddition, 858)); + pointers.add(Pointer.fromFunction(simpleAddition, 859)); + pointers.add(Pointer.fromFunction(simpleAddition, 860)); + pointers.add(Pointer.fromFunction(simpleAddition, 861)); + pointers.add(Pointer.fromFunction(simpleAddition, 862)); + pointers.add(Pointer.fromFunction(simpleAddition, 863)); + pointers.add(Pointer.fromFunction(simpleAddition, 864)); + pointers.add(Pointer.fromFunction(simpleAddition, 865)); + pointers.add(Pointer.fromFunction(simpleAddition, 866)); + pointers.add(Pointer.fromFunction(simpleAddition, 867)); + pointers.add(Pointer.fromFunction(simpleAddition, 868)); + pointers.add(Pointer.fromFunction(simpleAddition, 869)); + pointers.add(Pointer.fromFunction(simpleAddition, 870)); + pointers.add(Pointer.fromFunction(simpleAddition, 871)); + pointers.add(Pointer.fromFunction(simpleAddition, 872)); + pointers.add(Pointer.fromFunction(simpleAddition, 873)); + pointers.add(Pointer.fromFunction(simpleAddition, 874)); + pointers.add(Pointer.fromFunction(simpleAddition, 875)); + pointers.add(Pointer.fromFunction(simpleAddition, 876)); + pointers.add(Pointer.fromFunction(simpleAddition, 877)); + pointers.add(Pointer.fromFunction(simpleAddition, 878)); + pointers.add(Pointer.fromFunction(simpleAddition, 879)); + pointers.add(Pointer.fromFunction(simpleAddition, 880)); + pointers.add(Pointer.fromFunction(simpleAddition, 881)); + pointers.add(Pointer.fromFunction(simpleAddition, 882)); + pointers.add(Pointer.fromFunction(simpleAddition, 883)); + pointers.add(Pointer.fromFunction(simpleAddition, 884)); + pointers.add(Pointer.fromFunction(simpleAddition, 885)); + pointers.add(Pointer.fromFunction(simpleAddition, 886)); + pointers.add(Pointer.fromFunction(simpleAddition, 887)); + pointers.add(Pointer.fromFunction(simpleAddition, 888)); + pointers.add(Pointer.fromFunction(simpleAddition, 889)); + pointers.add(Pointer.fromFunction(simpleAddition, 890)); + pointers.add(Pointer.fromFunction(simpleAddition, 891)); + pointers.add(Pointer.fromFunction(simpleAddition, 892)); + pointers.add(Pointer.fromFunction(simpleAddition, 893)); + pointers.add(Pointer.fromFunction(simpleAddition, 894)); + pointers.add(Pointer.fromFunction(simpleAddition, 895)); + pointers.add(Pointer.fromFunction(simpleAddition, 896)); + pointers.add(Pointer.fromFunction(simpleAddition, 897)); + pointers.add(Pointer.fromFunction(simpleAddition, 898)); + pointers.add(Pointer.fromFunction(simpleAddition, 899)); + pointers.add(Pointer.fromFunction(simpleAddition, 900)); + pointers.add(Pointer.fromFunction(simpleAddition, 901)); + pointers.add(Pointer.fromFunction(simpleAddition, 902)); + pointers.add(Pointer.fromFunction(simpleAddition, 903)); + pointers.add(Pointer.fromFunction(simpleAddition, 904)); + pointers.add(Pointer.fromFunction(simpleAddition, 905)); + pointers.add(Pointer.fromFunction(simpleAddition, 906)); + pointers.add(Pointer.fromFunction(simpleAddition, 907)); + pointers.add(Pointer.fromFunction(simpleAddition, 908)); + pointers.add(Pointer.fromFunction(simpleAddition, 909)); + pointers.add(Pointer.fromFunction(simpleAddition, 910)); + pointers.add(Pointer.fromFunction(simpleAddition, 911)); + pointers.add(Pointer.fromFunction(simpleAddition, 912)); + pointers.add(Pointer.fromFunction(simpleAddition, 913)); + pointers.add(Pointer.fromFunction(simpleAddition, 914)); + pointers.add(Pointer.fromFunction(simpleAddition, 915)); + pointers.add(Pointer.fromFunction(simpleAddition, 916)); + pointers.add(Pointer.fromFunction(simpleAddition, 917)); + pointers.add(Pointer.fromFunction(simpleAddition, 918)); + pointers.add(Pointer.fromFunction(simpleAddition, 919)); + pointers.add(Pointer.fromFunction(simpleAddition, 920)); + pointers.add(Pointer.fromFunction(simpleAddition, 921)); + pointers.add(Pointer.fromFunction(simpleAddition, 922)); + pointers.add(Pointer.fromFunction(simpleAddition, 923)); + pointers.add(Pointer.fromFunction(simpleAddition, 924)); + pointers.add(Pointer.fromFunction(simpleAddition, 925)); + pointers.add(Pointer.fromFunction(simpleAddition, 926)); + pointers.add(Pointer.fromFunction(simpleAddition, 927)); + pointers.add(Pointer.fromFunction(simpleAddition, 928)); + pointers.add(Pointer.fromFunction(simpleAddition, 929)); + pointers.add(Pointer.fromFunction(simpleAddition, 930)); + pointers.add(Pointer.fromFunction(simpleAddition, 931)); + pointers.add(Pointer.fromFunction(simpleAddition, 932)); + pointers.add(Pointer.fromFunction(simpleAddition, 933)); + pointers.add(Pointer.fromFunction(simpleAddition, 934)); + pointers.add(Pointer.fromFunction(simpleAddition, 935)); + pointers.add(Pointer.fromFunction(simpleAddition, 936)); + pointers.add(Pointer.fromFunction(simpleAddition, 937)); + pointers.add(Pointer.fromFunction(simpleAddition, 938)); + pointers.add(Pointer.fromFunction(simpleAddition, 939)); + pointers.add(Pointer.fromFunction(simpleAddition, 940)); + pointers.add(Pointer.fromFunction(simpleAddition, 941)); + pointers.add(Pointer.fromFunction(simpleAddition, 942)); + pointers.add(Pointer.fromFunction(simpleAddition, 943)); + pointers.add(Pointer.fromFunction(simpleAddition, 944)); + pointers.add(Pointer.fromFunction(simpleAddition, 945)); + pointers.add(Pointer.fromFunction(simpleAddition, 946)); + pointers.add(Pointer.fromFunction(simpleAddition, 947)); + pointers.add(Pointer.fromFunction(simpleAddition, 948)); + pointers.add(Pointer.fromFunction(simpleAddition, 949)); + pointers.add(Pointer.fromFunction(simpleAddition, 950)); + pointers.add(Pointer.fromFunction(simpleAddition, 951)); + pointers.add(Pointer.fromFunction(simpleAddition, 952)); + pointers.add(Pointer.fromFunction(simpleAddition, 953)); + pointers.add(Pointer.fromFunction(simpleAddition, 954)); + pointers.add(Pointer.fromFunction(simpleAddition, 955)); + pointers.add(Pointer.fromFunction(simpleAddition, 956)); + pointers.add(Pointer.fromFunction(simpleAddition, 957)); + pointers.add(Pointer.fromFunction(simpleAddition, 958)); + pointers.add(Pointer.fromFunction(simpleAddition, 959)); + pointers.add(Pointer.fromFunction(simpleAddition, 960)); + pointers.add(Pointer.fromFunction(simpleAddition, 961)); + pointers.add(Pointer.fromFunction(simpleAddition, 962)); + pointers.add(Pointer.fromFunction(simpleAddition, 963)); + pointers.add(Pointer.fromFunction(simpleAddition, 964)); + pointers.add(Pointer.fromFunction(simpleAddition, 965)); + pointers.add(Pointer.fromFunction(simpleAddition, 966)); + pointers.add(Pointer.fromFunction(simpleAddition, 967)); + pointers.add(Pointer.fromFunction(simpleAddition, 968)); + pointers.add(Pointer.fromFunction(simpleAddition, 969)); + pointers.add(Pointer.fromFunction(simpleAddition, 970)); + pointers.add(Pointer.fromFunction(simpleAddition, 971)); + pointers.add(Pointer.fromFunction(simpleAddition, 972)); + pointers.add(Pointer.fromFunction(simpleAddition, 973)); + pointers.add(Pointer.fromFunction(simpleAddition, 974)); + pointers.add(Pointer.fromFunction(simpleAddition, 975)); + pointers.add(Pointer.fromFunction(simpleAddition, 976)); + pointers.add(Pointer.fromFunction(simpleAddition, 977)); + pointers.add(Pointer.fromFunction(simpleAddition, 978)); + pointers.add(Pointer.fromFunction(simpleAddition, 979)); + pointers.add(Pointer.fromFunction(simpleAddition, 980)); + pointers.add(Pointer.fromFunction(simpleAddition, 981)); + pointers.add(Pointer.fromFunction(simpleAddition, 982)); + pointers.add(Pointer.fromFunction(simpleAddition, 983)); + pointers.add(Pointer.fromFunction(simpleAddition, 984)); + pointers.add(Pointer.fromFunction(simpleAddition, 985)); + pointers.add(Pointer.fromFunction(simpleAddition, 986)); + pointers.add(Pointer.fromFunction(simpleAddition, 987)); + pointers.add(Pointer.fromFunction(simpleAddition, 988)); + pointers.add(Pointer.fromFunction(simpleAddition, 989)); + pointers.add(Pointer.fromFunction(simpleAddition, 990)); + pointers.add(Pointer.fromFunction(simpleAddition, 991)); + pointers.add(Pointer.fromFunction(simpleAddition, 992)); + pointers.add(Pointer.fromFunction(simpleAddition, 993)); + pointers.add(Pointer.fromFunction(simpleAddition, 994)); + pointers.add(Pointer.fromFunction(simpleAddition, 995)); + pointers.add(Pointer.fromFunction(simpleAddition, 996)); + pointers.add(Pointer.fromFunction(simpleAddition, 997)); + pointers.add(Pointer.fromFunction(simpleAddition, 998)); + pointers.add(Pointer.fromFunction(simpleAddition, 999)); + + for (final pointer in pointers) { + Test("SimpleAddition", pointer).run(); + } +} diff --git a/tests/ffi/function_callbacks_test.dart b/tests/ffi/function_callbacks_test.dart index 35a63bdc7b4..33241f2f366 100644 --- a/tests/ffi/function_callbacks_test.dart +++ b/tests/ffi/function_callbacks_test.dart @@ -14,13 +14,11 @@ // VMOptions=--use-slow-path --enable-testing-pragmas --write-protect-code --no-dual-map-code --stacktrace-every=100 // SharedObjects=ffi_test_functions -import 'dart:io'; import 'dart:ffi'; -import 'dylib_utils.dart'; import "package:expect/expect.dart"; -import 'ffi_test_helpers.dart'; +import 'dylib_utils.dart'; typedef NativeCallbackTest = Int32 Function(Pointer); typedef NativeCallbackTestFn = int Function(Pointer); @@ -198,1024 +196,6 @@ final List testcases = [ Pointer.fromFunction(throwExceptionInt, 42)), ]; -void main() async { - testcases.forEach((t) => t.run()); //# 00: ok - testManyCallbacks(); //# 04: ok -} - -void testManyCallbacks() { - // Create enough callbacks (1000) to overflow one page of the JIT callback - // trampolines. The use of distinct exceptional return values forces separate - // trampolines. - final List pointers = []; - - // All the parameters of 'fromFunction' are forced to be constant so that we - // only need to generate one trampoline per 'fromFunction' call-site. - // - // As a consequence, to force the creation of 1000 trampolines (and prevent - // any possible caching), we need literally 1000 call-sites. - pointers.add(Pointer.fromFunction(simpleAddition, 0)); - pointers.add(Pointer.fromFunction(simpleAddition, 1)); - pointers.add(Pointer.fromFunction(simpleAddition, 2)); - pointers.add(Pointer.fromFunction(simpleAddition, 3)); - pointers.add(Pointer.fromFunction(simpleAddition, 4)); - pointers.add(Pointer.fromFunction(simpleAddition, 5)); - pointers.add(Pointer.fromFunction(simpleAddition, 6)); - pointers.add(Pointer.fromFunction(simpleAddition, 7)); - pointers.add(Pointer.fromFunction(simpleAddition, 8)); - pointers.add(Pointer.fromFunction(simpleAddition, 9)); - pointers.add(Pointer.fromFunction(simpleAddition, 10)); - pointers.add(Pointer.fromFunction(simpleAddition, 11)); - pointers.add(Pointer.fromFunction(simpleAddition, 12)); - pointers.add(Pointer.fromFunction(simpleAddition, 13)); - pointers.add(Pointer.fromFunction(simpleAddition, 14)); - pointers.add(Pointer.fromFunction(simpleAddition, 15)); - pointers.add(Pointer.fromFunction(simpleAddition, 16)); - pointers.add(Pointer.fromFunction(simpleAddition, 17)); - pointers.add(Pointer.fromFunction(simpleAddition, 18)); - pointers.add(Pointer.fromFunction(simpleAddition, 19)); - pointers.add(Pointer.fromFunction(simpleAddition, 20)); - pointers.add(Pointer.fromFunction(simpleAddition, 21)); - pointers.add(Pointer.fromFunction(simpleAddition, 22)); - pointers.add(Pointer.fromFunction(simpleAddition, 23)); - pointers.add(Pointer.fromFunction(simpleAddition, 24)); - pointers.add(Pointer.fromFunction(simpleAddition, 25)); - pointers.add(Pointer.fromFunction(simpleAddition, 26)); - pointers.add(Pointer.fromFunction(simpleAddition, 27)); - pointers.add(Pointer.fromFunction(simpleAddition, 28)); - pointers.add(Pointer.fromFunction(simpleAddition, 29)); - pointers.add(Pointer.fromFunction(simpleAddition, 30)); - pointers.add(Pointer.fromFunction(simpleAddition, 31)); - pointers.add(Pointer.fromFunction(simpleAddition, 32)); - pointers.add(Pointer.fromFunction(simpleAddition, 33)); - pointers.add(Pointer.fromFunction(simpleAddition, 34)); - pointers.add(Pointer.fromFunction(simpleAddition, 35)); - pointers.add(Pointer.fromFunction(simpleAddition, 36)); - pointers.add(Pointer.fromFunction(simpleAddition, 37)); - pointers.add(Pointer.fromFunction(simpleAddition, 38)); - pointers.add(Pointer.fromFunction(simpleAddition, 39)); - pointers.add(Pointer.fromFunction(simpleAddition, 40)); - pointers.add(Pointer.fromFunction(simpleAddition, 41)); - pointers.add(Pointer.fromFunction(simpleAddition, 42)); - pointers.add(Pointer.fromFunction(simpleAddition, 43)); - pointers.add(Pointer.fromFunction(simpleAddition, 44)); - pointers.add(Pointer.fromFunction(simpleAddition, 45)); - pointers.add(Pointer.fromFunction(simpleAddition, 46)); - pointers.add(Pointer.fromFunction(simpleAddition, 47)); - pointers.add(Pointer.fromFunction(simpleAddition, 48)); - pointers.add(Pointer.fromFunction(simpleAddition, 49)); - pointers.add(Pointer.fromFunction(simpleAddition, 50)); - pointers.add(Pointer.fromFunction(simpleAddition, 51)); - pointers.add(Pointer.fromFunction(simpleAddition, 52)); - pointers.add(Pointer.fromFunction(simpleAddition, 53)); - pointers.add(Pointer.fromFunction(simpleAddition, 54)); - pointers.add(Pointer.fromFunction(simpleAddition, 55)); - pointers.add(Pointer.fromFunction(simpleAddition, 56)); - pointers.add(Pointer.fromFunction(simpleAddition, 57)); - pointers.add(Pointer.fromFunction(simpleAddition, 58)); - pointers.add(Pointer.fromFunction(simpleAddition, 59)); - pointers.add(Pointer.fromFunction(simpleAddition, 60)); - pointers.add(Pointer.fromFunction(simpleAddition, 61)); - pointers.add(Pointer.fromFunction(simpleAddition, 62)); - pointers.add(Pointer.fromFunction(simpleAddition, 63)); - pointers.add(Pointer.fromFunction(simpleAddition, 64)); - pointers.add(Pointer.fromFunction(simpleAddition, 65)); - pointers.add(Pointer.fromFunction(simpleAddition, 66)); - pointers.add(Pointer.fromFunction(simpleAddition, 67)); - pointers.add(Pointer.fromFunction(simpleAddition, 68)); - pointers.add(Pointer.fromFunction(simpleAddition, 69)); - pointers.add(Pointer.fromFunction(simpleAddition, 70)); - pointers.add(Pointer.fromFunction(simpleAddition, 71)); - pointers.add(Pointer.fromFunction(simpleAddition, 72)); - pointers.add(Pointer.fromFunction(simpleAddition, 73)); - pointers.add(Pointer.fromFunction(simpleAddition, 74)); - pointers.add(Pointer.fromFunction(simpleAddition, 75)); - pointers.add(Pointer.fromFunction(simpleAddition, 76)); - pointers.add(Pointer.fromFunction(simpleAddition, 77)); - pointers.add(Pointer.fromFunction(simpleAddition, 78)); - pointers.add(Pointer.fromFunction(simpleAddition, 79)); - pointers.add(Pointer.fromFunction(simpleAddition, 80)); - pointers.add(Pointer.fromFunction(simpleAddition, 81)); - pointers.add(Pointer.fromFunction(simpleAddition, 82)); - pointers.add(Pointer.fromFunction(simpleAddition, 83)); - pointers.add(Pointer.fromFunction(simpleAddition, 84)); - pointers.add(Pointer.fromFunction(simpleAddition, 85)); - pointers.add(Pointer.fromFunction(simpleAddition, 86)); - pointers.add(Pointer.fromFunction(simpleAddition, 87)); - pointers.add(Pointer.fromFunction(simpleAddition, 88)); - pointers.add(Pointer.fromFunction(simpleAddition, 89)); - pointers.add(Pointer.fromFunction(simpleAddition, 90)); - pointers.add(Pointer.fromFunction(simpleAddition, 91)); - pointers.add(Pointer.fromFunction(simpleAddition, 92)); - pointers.add(Pointer.fromFunction(simpleAddition, 93)); - pointers.add(Pointer.fromFunction(simpleAddition, 94)); - pointers.add(Pointer.fromFunction(simpleAddition, 95)); - pointers.add(Pointer.fromFunction(simpleAddition, 96)); - pointers.add(Pointer.fromFunction(simpleAddition, 97)); - pointers.add(Pointer.fromFunction(simpleAddition, 98)); - pointers.add(Pointer.fromFunction(simpleAddition, 99)); - pointers.add(Pointer.fromFunction(simpleAddition, 100)); - pointers.add(Pointer.fromFunction(simpleAddition, 101)); - pointers.add(Pointer.fromFunction(simpleAddition, 102)); - pointers.add(Pointer.fromFunction(simpleAddition, 103)); - pointers.add(Pointer.fromFunction(simpleAddition, 104)); - pointers.add(Pointer.fromFunction(simpleAddition, 105)); - pointers.add(Pointer.fromFunction(simpleAddition, 106)); - pointers.add(Pointer.fromFunction(simpleAddition, 107)); - pointers.add(Pointer.fromFunction(simpleAddition, 108)); - pointers.add(Pointer.fromFunction(simpleAddition, 109)); - pointers.add(Pointer.fromFunction(simpleAddition, 110)); - pointers.add(Pointer.fromFunction(simpleAddition, 111)); - pointers.add(Pointer.fromFunction(simpleAddition, 112)); - pointers.add(Pointer.fromFunction(simpleAddition, 113)); - pointers.add(Pointer.fromFunction(simpleAddition, 114)); - pointers.add(Pointer.fromFunction(simpleAddition, 115)); - pointers.add(Pointer.fromFunction(simpleAddition, 116)); - pointers.add(Pointer.fromFunction(simpleAddition, 117)); - pointers.add(Pointer.fromFunction(simpleAddition, 118)); - pointers.add(Pointer.fromFunction(simpleAddition, 119)); - pointers.add(Pointer.fromFunction(simpleAddition, 120)); - pointers.add(Pointer.fromFunction(simpleAddition, 121)); - pointers.add(Pointer.fromFunction(simpleAddition, 122)); - pointers.add(Pointer.fromFunction(simpleAddition, 123)); - pointers.add(Pointer.fromFunction(simpleAddition, 124)); - pointers.add(Pointer.fromFunction(simpleAddition, 125)); - pointers.add(Pointer.fromFunction(simpleAddition, 126)); - pointers.add(Pointer.fromFunction(simpleAddition, 127)); - pointers.add(Pointer.fromFunction(simpleAddition, 128)); - pointers.add(Pointer.fromFunction(simpleAddition, 129)); - pointers.add(Pointer.fromFunction(simpleAddition, 130)); - pointers.add(Pointer.fromFunction(simpleAddition, 131)); - pointers.add(Pointer.fromFunction(simpleAddition, 132)); - pointers.add(Pointer.fromFunction(simpleAddition, 133)); - pointers.add(Pointer.fromFunction(simpleAddition, 134)); - pointers.add(Pointer.fromFunction(simpleAddition, 135)); - pointers.add(Pointer.fromFunction(simpleAddition, 136)); - pointers.add(Pointer.fromFunction(simpleAddition, 137)); - pointers.add(Pointer.fromFunction(simpleAddition, 138)); - pointers.add(Pointer.fromFunction(simpleAddition, 139)); - pointers.add(Pointer.fromFunction(simpleAddition, 140)); - pointers.add(Pointer.fromFunction(simpleAddition, 141)); - pointers.add(Pointer.fromFunction(simpleAddition, 142)); - pointers.add(Pointer.fromFunction(simpleAddition, 143)); - pointers.add(Pointer.fromFunction(simpleAddition, 144)); - pointers.add(Pointer.fromFunction(simpleAddition, 145)); - pointers.add(Pointer.fromFunction(simpleAddition, 146)); - pointers.add(Pointer.fromFunction(simpleAddition, 147)); - pointers.add(Pointer.fromFunction(simpleAddition, 148)); - pointers.add(Pointer.fromFunction(simpleAddition, 149)); - pointers.add(Pointer.fromFunction(simpleAddition, 150)); - pointers.add(Pointer.fromFunction(simpleAddition, 151)); - pointers.add(Pointer.fromFunction(simpleAddition, 152)); - pointers.add(Pointer.fromFunction(simpleAddition, 153)); - pointers.add(Pointer.fromFunction(simpleAddition, 154)); - pointers.add(Pointer.fromFunction(simpleAddition, 155)); - pointers.add(Pointer.fromFunction(simpleAddition, 156)); - pointers.add(Pointer.fromFunction(simpleAddition, 157)); - pointers.add(Pointer.fromFunction(simpleAddition, 158)); - pointers.add(Pointer.fromFunction(simpleAddition, 159)); - pointers.add(Pointer.fromFunction(simpleAddition, 160)); - pointers.add(Pointer.fromFunction(simpleAddition, 161)); - pointers.add(Pointer.fromFunction(simpleAddition, 162)); - pointers.add(Pointer.fromFunction(simpleAddition, 163)); - pointers.add(Pointer.fromFunction(simpleAddition, 164)); - pointers.add(Pointer.fromFunction(simpleAddition, 165)); - pointers.add(Pointer.fromFunction(simpleAddition, 166)); - pointers.add(Pointer.fromFunction(simpleAddition, 167)); - pointers.add(Pointer.fromFunction(simpleAddition, 168)); - pointers.add(Pointer.fromFunction(simpleAddition, 169)); - pointers.add(Pointer.fromFunction(simpleAddition, 170)); - pointers.add(Pointer.fromFunction(simpleAddition, 171)); - pointers.add(Pointer.fromFunction(simpleAddition, 172)); - pointers.add(Pointer.fromFunction(simpleAddition, 173)); - pointers.add(Pointer.fromFunction(simpleAddition, 174)); - pointers.add(Pointer.fromFunction(simpleAddition, 175)); - pointers.add(Pointer.fromFunction(simpleAddition, 176)); - pointers.add(Pointer.fromFunction(simpleAddition, 177)); - pointers.add(Pointer.fromFunction(simpleAddition, 178)); - pointers.add(Pointer.fromFunction(simpleAddition, 179)); - pointers.add(Pointer.fromFunction(simpleAddition, 180)); - pointers.add(Pointer.fromFunction(simpleAddition, 181)); - pointers.add(Pointer.fromFunction(simpleAddition, 182)); - pointers.add(Pointer.fromFunction(simpleAddition, 183)); - pointers.add(Pointer.fromFunction(simpleAddition, 184)); - pointers.add(Pointer.fromFunction(simpleAddition, 185)); - pointers.add(Pointer.fromFunction(simpleAddition, 186)); - pointers.add(Pointer.fromFunction(simpleAddition, 187)); - pointers.add(Pointer.fromFunction(simpleAddition, 188)); - pointers.add(Pointer.fromFunction(simpleAddition, 189)); - pointers.add(Pointer.fromFunction(simpleAddition, 190)); - pointers.add(Pointer.fromFunction(simpleAddition, 191)); - pointers.add(Pointer.fromFunction(simpleAddition, 192)); - pointers.add(Pointer.fromFunction(simpleAddition, 193)); - pointers.add(Pointer.fromFunction(simpleAddition, 194)); - pointers.add(Pointer.fromFunction(simpleAddition, 195)); - pointers.add(Pointer.fromFunction(simpleAddition, 196)); - pointers.add(Pointer.fromFunction(simpleAddition, 197)); - pointers.add(Pointer.fromFunction(simpleAddition, 198)); - pointers.add(Pointer.fromFunction(simpleAddition, 199)); - pointers.add(Pointer.fromFunction(simpleAddition, 200)); - pointers.add(Pointer.fromFunction(simpleAddition, 201)); - pointers.add(Pointer.fromFunction(simpleAddition, 202)); - pointers.add(Pointer.fromFunction(simpleAddition, 203)); - pointers.add(Pointer.fromFunction(simpleAddition, 204)); - pointers.add(Pointer.fromFunction(simpleAddition, 205)); - pointers.add(Pointer.fromFunction(simpleAddition, 206)); - pointers.add(Pointer.fromFunction(simpleAddition, 207)); - pointers.add(Pointer.fromFunction(simpleAddition, 208)); - pointers.add(Pointer.fromFunction(simpleAddition, 209)); - pointers.add(Pointer.fromFunction(simpleAddition, 210)); - pointers.add(Pointer.fromFunction(simpleAddition, 211)); - pointers.add(Pointer.fromFunction(simpleAddition, 212)); - pointers.add(Pointer.fromFunction(simpleAddition, 213)); - pointers.add(Pointer.fromFunction(simpleAddition, 214)); - pointers.add(Pointer.fromFunction(simpleAddition, 215)); - pointers.add(Pointer.fromFunction(simpleAddition, 216)); - pointers.add(Pointer.fromFunction(simpleAddition, 217)); - pointers.add(Pointer.fromFunction(simpleAddition, 218)); - pointers.add(Pointer.fromFunction(simpleAddition, 219)); - pointers.add(Pointer.fromFunction(simpleAddition, 220)); - pointers.add(Pointer.fromFunction(simpleAddition, 221)); - pointers.add(Pointer.fromFunction(simpleAddition, 222)); - pointers.add(Pointer.fromFunction(simpleAddition, 223)); - pointers.add(Pointer.fromFunction(simpleAddition, 224)); - pointers.add(Pointer.fromFunction(simpleAddition, 225)); - pointers.add(Pointer.fromFunction(simpleAddition, 226)); - pointers.add(Pointer.fromFunction(simpleAddition, 227)); - pointers.add(Pointer.fromFunction(simpleAddition, 228)); - pointers.add(Pointer.fromFunction(simpleAddition, 229)); - pointers.add(Pointer.fromFunction(simpleAddition, 230)); - pointers.add(Pointer.fromFunction(simpleAddition, 231)); - pointers.add(Pointer.fromFunction(simpleAddition, 232)); - pointers.add(Pointer.fromFunction(simpleAddition, 233)); - pointers.add(Pointer.fromFunction(simpleAddition, 234)); - pointers.add(Pointer.fromFunction(simpleAddition, 235)); - pointers.add(Pointer.fromFunction(simpleAddition, 236)); - pointers.add(Pointer.fromFunction(simpleAddition, 237)); - pointers.add(Pointer.fromFunction(simpleAddition, 238)); - pointers.add(Pointer.fromFunction(simpleAddition, 239)); - pointers.add(Pointer.fromFunction(simpleAddition, 240)); - pointers.add(Pointer.fromFunction(simpleAddition, 241)); - pointers.add(Pointer.fromFunction(simpleAddition, 242)); - pointers.add(Pointer.fromFunction(simpleAddition, 243)); - pointers.add(Pointer.fromFunction(simpleAddition, 244)); - pointers.add(Pointer.fromFunction(simpleAddition, 245)); - pointers.add(Pointer.fromFunction(simpleAddition, 246)); - pointers.add(Pointer.fromFunction(simpleAddition, 247)); - pointers.add(Pointer.fromFunction(simpleAddition, 248)); - pointers.add(Pointer.fromFunction(simpleAddition, 249)); - pointers.add(Pointer.fromFunction(simpleAddition, 250)); - pointers.add(Pointer.fromFunction(simpleAddition, 251)); - pointers.add(Pointer.fromFunction(simpleAddition, 252)); - pointers.add(Pointer.fromFunction(simpleAddition, 253)); - pointers.add(Pointer.fromFunction(simpleAddition, 254)); - pointers.add(Pointer.fromFunction(simpleAddition, 255)); - pointers.add(Pointer.fromFunction(simpleAddition, 256)); - pointers.add(Pointer.fromFunction(simpleAddition, 257)); - pointers.add(Pointer.fromFunction(simpleAddition, 258)); - pointers.add(Pointer.fromFunction(simpleAddition, 259)); - pointers.add(Pointer.fromFunction(simpleAddition, 260)); - pointers.add(Pointer.fromFunction(simpleAddition, 261)); - pointers.add(Pointer.fromFunction(simpleAddition, 262)); - pointers.add(Pointer.fromFunction(simpleAddition, 263)); - pointers.add(Pointer.fromFunction(simpleAddition, 264)); - pointers.add(Pointer.fromFunction(simpleAddition, 265)); - pointers.add(Pointer.fromFunction(simpleAddition, 266)); - pointers.add(Pointer.fromFunction(simpleAddition, 267)); - pointers.add(Pointer.fromFunction(simpleAddition, 268)); - pointers.add(Pointer.fromFunction(simpleAddition, 269)); - pointers.add(Pointer.fromFunction(simpleAddition, 270)); - pointers.add(Pointer.fromFunction(simpleAddition, 271)); - pointers.add(Pointer.fromFunction(simpleAddition, 272)); - pointers.add(Pointer.fromFunction(simpleAddition, 273)); - pointers.add(Pointer.fromFunction(simpleAddition, 274)); - pointers.add(Pointer.fromFunction(simpleAddition, 275)); - pointers.add(Pointer.fromFunction(simpleAddition, 276)); - pointers.add(Pointer.fromFunction(simpleAddition, 277)); - pointers.add(Pointer.fromFunction(simpleAddition, 278)); - pointers.add(Pointer.fromFunction(simpleAddition, 279)); - pointers.add(Pointer.fromFunction(simpleAddition, 280)); - pointers.add(Pointer.fromFunction(simpleAddition, 281)); - pointers.add(Pointer.fromFunction(simpleAddition, 282)); - pointers.add(Pointer.fromFunction(simpleAddition, 283)); - pointers.add(Pointer.fromFunction(simpleAddition, 284)); - pointers.add(Pointer.fromFunction(simpleAddition, 285)); - pointers.add(Pointer.fromFunction(simpleAddition, 286)); - pointers.add(Pointer.fromFunction(simpleAddition, 287)); - pointers.add(Pointer.fromFunction(simpleAddition, 288)); - pointers.add(Pointer.fromFunction(simpleAddition, 289)); - pointers.add(Pointer.fromFunction(simpleAddition, 290)); - pointers.add(Pointer.fromFunction(simpleAddition, 291)); - pointers.add(Pointer.fromFunction(simpleAddition, 292)); - pointers.add(Pointer.fromFunction(simpleAddition, 293)); - pointers.add(Pointer.fromFunction(simpleAddition, 294)); - pointers.add(Pointer.fromFunction(simpleAddition, 295)); - pointers.add(Pointer.fromFunction(simpleAddition, 296)); - pointers.add(Pointer.fromFunction(simpleAddition, 297)); - pointers.add(Pointer.fromFunction(simpleAddition, 298)); - pointers.add(Pointer.fromFunction(simpleAddition, 299)); - pointers.add(Pointer.fromFunction(simpleAddition, 300)); - pointers.add(Pointer.fromFunction(simpleAddition, 301)); - pointers.add(Pointer.fromFunction(simpleAddition, 302)); - pointers.add(Pointer.fromFunction(simpleAddition, 303)); - pointers.add(Pointer.fromFunction(simpleAddition, 304)); - pointers.add(Pointer.fromFunction(simpleAddition, 305)); - pointers.add(Pointer.fromFunction(simpleAddition, 306)); - pointers.add(Pointer.fromFunction(simpleAddition, 307)); - pointers.add(Pointer.fromFunction(simpleAddition, 308)); - pointers.add(Pointer.fromFunction(simpleAddition, 309)); - pointers.add(Pointer.fromFunction(simpleAddition, 310)); - pointers.add(Pointer.fromFunction(simpleAddition, 311)); - pointers.add(Pointer.fromFunction(simpleAddition, 312)); - pointers.add(Pointer.fromFunction(simpleAddition, 313)); - pointers.add(Pointer.fromFunction(simpleAddition, 314)); - pointers.add(Pointer.fromFunction(simpleAddition, 315)); - pointers.add(Pointer.fromFunction(simpleAddition, 316)); - pointers.add(Pointer.fromFunction(simpleAddition, 317)); - pointers.add(Pointer.fromFunction(simpleAddition, 318)); - pointers.add(Pointer.fromFunction(simpleAddition, 319)); - pointers.add(Pointer.fromFunction(simpleAddition, 320)); - pointers.add(Pointer.fromFunction(simpleAddition, 321)); - pointers.add(Pointer.fromFunction(simpleAddition, 322)); - pointers.add(Pointer.fromFunction(simpleAddition, 323)); - pointers.add(Pointer.fromFunction(simpleAddition, 324)); - pointers.add(Pointer.fromFunction(simpleAddition, 325)); - pointers.add(Pointer.fromFunction(simpleAddition, 326)); - pointers.add(Pointer.fromFunction(simpleAddition, 327)); - pointers.add(Pointer.fromFunction(simpleAddition, 328)); - pointers.add(Pointer.fromFunction(simpleAddition, 329)); - pointers.add(Pointer.fromFunction(simpleAddition, 330)); - pointers.add(Pointer.fromFunction(simpleAddition, 331)); - pointers.add(Pointer.fromFunction(simpleAddition, 332)); - pointers.add(Pointer.fromFunction(simpleAddition, 333)); - pointers.add(Pointer.fromFunction(simpleAddition, 334)); - pointers.add(Pointer.fromFunction(simpleAddition, 335)); - pointers.add(Pointer.fromFunction(simpleAddition, 336)); - pointers.add(Pointer.fromFunction(simpleAddition, 337)); - pointers.add(Pointer.fromFunction(simpleAddition, 338)); - pointers.add(Pointer.fromFunction(simpleAddition, 339)); - pointers.add(Pointer.fromFunction(simpleAddition, 340)); - pointers.add(Pointer.fromFunction(simpleAddition, 341)); - pointers.add(Pointer.fromFunction(simpleAddition, 342)); - pointers.add(Pointer.fromFunction(simpleAddition, 343)); - pointers.add(Pointer.fromFunction(simpleAddition, 344)); - pointers.add(Pointer.fromFunction(simpleAddition, 345)); - pointers.add(Pointer.fromFunction(simpleAddition, 346)); - pointers.add(Pointer.fromFunction(simpleAddition, 347)); - pointers.add(Pointer.fromFunction(simpleAddition, 348)); - pointers.add(Pointer.fromFunction(simpleAddition, 349)); - pointers.add(Pointer.fromFunction(simpleAddition, 350)); - pointers.add(Pointer.fromFunction(simpleAddition, 351)); - pointers.add(Pointer.fromFunction(simpleAddition, 352)); - pointers.add(Pointer.fromFunction(simpleAddition, 353)); - pointers.add(Pointer.fromFunction(simpleAddition, 354)); - pointers.add(Pointer.fromFunction(simpleAddition, 355)); - pointers.add(Pointer.fromFunction(simpleAddition, 356)); - pointers.add(Pointer.fromFunction(simpleAddition, 357)); - pointers.add(Pointer.fromFunction(simpleAddition, 358)); - pointers.add(Pointer.fromFunction(simpleAddition, 359)); - pointers.add(Pointer.fromFunction(simpleAddition, 360)); - pointers.add(Pointer.fromFunction(simpleAddition, 361)); - pointers.add(Pointer.fromFunction(simpleAddition, 362)); - pointers.add(Pointer.fromFunction(simpleAddition, 363)); - pointers.add(Pointer.fromFunction(simpleAddition, 364)); - pointers.add(Pointer.fromFunction(simpleAddition, 365)); - pointers.add(Pointer.fromFunction(simpleAddition, 366)); - pointers.add(Pointer.fromFunction(simpleAddition, 367)); - pointers.add(Pointer.fromFunction(simpleAddition, 368)); - pointers.add(Pointer.fromFunction(simpleAddition, 369)); - pointers.add(Pointer.fromFunction(simpleAddition, 370)); - pointers.add(Pointer.fromFunction(simpleAddition, 371)); - pointers.add(Pointer.fromFunction(simpleAddition, 372)); - pointers.add(Pointer.fromFunction(simpleAddition, 373)); - pointers.add(Pointer.fromFunction(simpleAddition, 374)); - pointers.add(Pointer.fromFunction(simpleAddition, 375)); - pointers.add(Pointer.fromFunction(simpleAddition, 376)); - pointers.add(Pointer.fromFunction(simpleAddition, 377)); - pointers.add(Pointer.fromFunction(simpleAddition, 378)); - pointers.add(Pointer.fromFunction(simpleAddition, 379)); - pointers.add(Pointer.fromFunction(simpleAddition, 380)); - pointers.add(Pointer.fromFunction(simpleAddition, 381)); - pointers.add(Pointer.fromFunction(simpleAddition, 382)); - pointers.add(Pointer.fromFunction(simpleAddition, 383)); - pointers.add(Pointer.fromFunction(simpleAddition, 384)); - pointers.add(Pointer.fromFunction(simpleAddition, 385)); - pointers.add(Pointer.fromFunction(simpleAddition, 386)); - pointers.add(Pointer.fromFunction(simpleAddition, 387)); - pointers.add(Pointer.fromFunction(simpleAddition, 388)); - pointers.add(Pointer.fromFunction(simpleAddition, 389)); - pointers.add(Pointer.fromFunction(simpleAddition, 390)); - pointers.add(Pointer.fromFunction(simpleAddition, 391)); - pointers.add(Pointer.fromFunction(simpleAddition, 392)); - pointers.add(Pointer.fromFunction(simpleAddition, 393)); - pointers.add(Pointer.fromFunction(simpleAddition, 394)); - pointers.add(Pointer.fromFunction(simpleAddition, 395)); - pointers.add(Pointer.fromFunction(simpleAddition, 396)); - pointers.add(Pointer.fromFunction(simpleAddition, 397)); - pointers.add(Pointer.fromFunction(simpleAddition, 398)); - pointers.add(Pointer.fromFunction(simpleAddition, 399)); - pointers.add(Pointer.fromFunction(simpleAddition, 400)); - pointers.add(Pointer.fromFunction(simpleAddition, 401)); - pointers.add(Pointer.fromFunction(simpleAddition, 402)); - pointers.add(Pointer.fromFunction(simpleAddition, 403)); - pointers.add(Pointer.fromFunction(simpleAddition, 404)); - pointers.add(Pointer.fromFunction(simpleAddition, 405)); - pointers.add(Pointer.fromFunction(simpleAddition, 406)); - pointers.add(Pointer.fromFunction(simpleAddition, 407)); - pointers.add(Pointer.fromFunction(simpleAddition, 408)); - pointers.add(Pointer.fromFunction(simpleAddition, 409)); - pointers.add(Pointer.fromFunction(simpleAddition, 410)); - pointers.add(Pointer.fromFunction(simpleAddition, 411)); - pointers.add(Pointer.fromFunction(simpleAddition, 412)); - pointers.add(Pointer.fromFunction(simpleAddition, 413)); - pointers.add(Pointer.fromFunction(simpleAddition, 414)); - pointers.add(Pointer.fromFunction(simpleAddition, 415)); - pointers.add(Pointer.fromFunction(simpleAddition, 416)); - pointers.add(Pointer.fromFunction(simpleAddition, 417)); - pointers.add(Pointer.fromFunction(simpleAddition, 418)); - pointers.add(Pointer.fromFunction(simpleAddition, 419)); - pointers.add(Pointer.fromFunction(simpleAddition, 420)); - pointers.add(Pointer.fromFunction(simpleAddition, 421)); - pointers.add(Pointer.fromFunction(simpleAddition, 422)); - pointers.add(Pointer.fromFunction(simpleAddition, 423)); - pointers.add(Pointer.fromFunction(simpleAddition, 424)); - pointers.add(Pointer.fromFunction(simpleAddition, 425)); - pointers.add(Pointer.fromFunction(simpleAddition, 426)); - pointers.add(Pointer.fromFunction(simpleAddition, 427)); - pointers.add(Pointer.fromFunction(simpleAddition, 428)); - pointers.add(Pointer.fromFunction(simpleAddition, 429)); - pointers.add(Pointer.fromFunction(simpleAddition, 430)); - pointers.add(Pointer.fromFunction(simpleAddition, 431)); - pointers.add(Pointer.fromFunction(simpleAddition, 432)); - pointers.add(Pointer.fromFunction(simpleAddition, 433)); - pointers.add(Pointer.fromFunction(simpleAddition, 434)); - pointers.add(Pointer.fromFunction(simpleAddition, 435)); - pointers.add(Pointer.fromFunction(simpleAddition, 436)); - pointers.add(Pointer.fromFunction(simpleAddition, 437)); - pointers.add(Pointer.fromFunction(simpleAddition, 438)); - pointers.add(Pointer.fromFunction(simpleAddition, 439)); - pointers.add(Pointer.fromFunction(simpleAddition, 440)); - pointers.add(Pointer.fromFunction(simpleAddition, 441)); - pointers.add(Pointer.fromFunction(simpleAddition, 442)); - pointers.add(Pointer.fromFunction(simpleAddition, 443)); - pointers.add(Pointer.fromFunction(simpleAddition, 444)); - pointers.add(Pointer.fromFunction(simpleAddition, 445)); - pointers.add(Pointer.fromFunction(simpleAddition, 446)); - pointers.add(Pointer.fromFunction(simpleAddition, 447)); - pointers.add(Pointer.fromFunction(simpleAddition, 448)); - pointers.add(Pointer.fromFunction(simpleAddition, 449)); - pointers.add(Pointer.fromFunction(simpleAddition, 450)); - pointers.add(Pointer.fromFunction(simpleAddition, 451)); - pointers.add(Pointer.fromFunction(simpleAddition, 452)); - pointers.add(Pointer.fromFunction(simpleAddition, 453)); - pointers.add(Pointer.fromFunction(simpleAddition, 454)); - pointers.add(Pointer.fromFunction(simpleAddition, 455)); - pointers.add(Pointer.fromFunction(simpleAddition, 456)); - pointers.add(Pointer.fromFunction(simpleAddition, 457)); - pointers.add(Pointer.fromFunction(simpleAddition, 458)); - pointers.add(Pointer.fromFunction(simpleAddition, 459)); - pointers.add(Pointer.fromFunction(simpleAddition, 460)); - pointers.add(Pointer.fromFunction(simpleAddition, 461)); - pointers.add(Pointer.fromFunction(simpleAddition, 462)); - pointers.add(Pointer.fromFunction(simpleAddition, 463)); - pointers.add(Pointer.fromFunction(simpleAddition, 464)); - pointers.add(Pointer.fromFunction(simpleAddition, 465)); - pointers.add(Pointer.fromFunction(simpleAddition, 466)); - pointers.add(Pointer.fromFunction(simpleAddition, 467)); - pointers.add(Pointer.fromFunction(simpleAddition, 468)); - pointers.add(Pointer.fromFunction(simpleAddition, 469)); - pointers.add(Pointer.fromFunction(simpleAddition, 470)); - pointers.add(Pointer.fromFunction(simpleAddition, 471)); - pointers.add(Pointer.fromFunction(simpleAddition, 472)); - pointers.add(Pointer.fromFunction(simpleAddition, 473)); - pointers.add(Pointer.fromFunction(simpleAddition, 474)); - pointers.add(Pointer.fromFunction(simpleAddition, 475)); - pointers.add(Pointer.fromFunction(simpleAddition, 476)); - pointers.add(Pointer.fromFunction(simpleAddition, 477)); - pointers.add(Pointer.fromFunction(simpleAddition, 478)); - pointers.add(Pointer.fromFunction(simpleAddition, 479)); - pointers.add(Pointer.fromFunction(simpleAddition, 480)); - pointers.add(Pointer.fromFunction(simpleAddition, 481)); - pointers.add(Pointer.fromFunction(simpleAddition, 482)); - pointers.add(Pointer.fromFunction(simpleAddition, 483)); - pointers.add(Pointer.fromFunction(simpleAddition, 484)); - pointers.add(Pointer.fromFunction(simpleAddition, 485)); - pointers.add(Pointer.fromFunction(simpleAddition, 486)); - pointers.add(Pointer.fromFunction(simpleAddition, 487)); - pointers.add(Pointer.fromFunction(simpleAddition, 488)); - pointers.add(Pointer.fromFunction(simpleAddition, 489)); - pointers.add(Pointer.fromFunction(simpleAddition, 490)); - pointers.add(Pointer.fromFunction(simpleAddition, 491)); - pointers.add(Pointer.fromFunction(simpleAddition, 492)); - pointers.add(Pointer.fromFunction(simpleAddition, 493)); - pointers.add(Pointer.fromFunction(simpleAddition, 494)); - pointers.add(Pointer.fromFunction(simpleAddition, 495)); - pointers.add(Pointer.fromFunction(simpleAddition, 496)); - pointers.add(Pointer.fromFunction(simpleAddition, 497)); - pointers.add(Pointer.fromFunction(simpleAddition, 498)); - pointers.add(Pointer.fromFunction(simpleAddition, 499)); - pointers.add(Pointer.fromFunction(simpleAddition, 500)); - pointers.add(Pointer.fromFunction(simpleAddition, 501)); - pointers.add(Pointer.fromFunction(simpleAddition, 502)); - pointers.add(Pointer.fromFunction(simpleAddition, 503)); - pointers.add(Pointer.fromFunction(simpleAddition, 504)); - pointers.add(Pointer.fromFunction(simpleAddition, 505)); - pointers.add(Pointer.fromFunction(simpleAddition, 506)); - pointers.add(Pointer.fromFunction(simpleAddition, 507)); - pointers.add(Pointer.fromFunction(simpleAddition, 508)); - pointers.add(Pointer.fromFunction(simpleAddition, 509)); - pointers.add(Pointer.fromFunction(simpleAddition, 510)); - pointers.add(Pointer.fromFunction(simpleAddition, 511)); - pointers.add(Pointer.fromFunction(simpleAddition, 512)); - pointers.add(Pointer.fromFunction(simpleAddition, 513)); - pointers.add(Pointer.fromFunction(simpleAddition, 514)); - pointers.add(Pointer.fromFunction(simpleAddition, 515)); - pointers.add(Pointer.fromFunction(simpleAddition, 516)); - pointers.add(Pointer.fromFunction(simpleAddition, 517)); - pointers.add(Pointer.fromFunction(simpleAddition, 518)); - pointers.add(Pointer.fromFunction(simpleAddition, 519)); - pointers.add(Pointer.fromFunction(simpleAddition, 520)); - pointers.add(Pointer.fromFunction(simpleAddition, 521)); - pointers.add(Pointer.fromFunction(simpleAddition, 522)); - pointers.add(Pointer.fromFunction(simpleAddition, 523)); - pointers.add(Pointer.fromFunction(simpleAddition, 524)); - pointers.add(Pointer.fromFunction(simpleAddition, 525)); - pointers.add(Pointer.fromFunction(simpleAddition, 526)); - pointers.add(Pointer.fromFunction(simpleAddition, 527)); - pointers.add(Pointer.fromFunction(simpleAddition, 528)); - pointers.add(Pointer.fromFunction(simpleAddition, 529)); - pointers.add(Pointer.fromFunction(simpleAddition, 530)); - pointers.add(Pointer.fromFunction(simpleAddition, 531)); - pointers.add(Pointer.fromFunction(simpleAddition, 532)); - pointers.add(Pointer.fromFunction(simpleAddition, 533)); - pointers.add(Pointer.fromFunction(simpleAddition, 534)); - pointers.add(Pointer.fromFunction(simpleAddition, 535)); - pointers.add(Pointer.fromFunction(simpleAddition, 536)); - pointers.add(Pointer.fromFunction(simpleAddition, 537)); - pointers.add(Pointer.fromFunction(simpleAddition, 538)); - pointers.add(Pointer.fromFunction(simpleAddition, 539)); - pointers.add(Pointer.fromFunction(simpleAddition, 540)); - pointers.add(Pointer.fromFunction(simpleAddition, 541)); - pointers.add(Pointer.fromFunction(simpleAddition, 542)); - pointers.add(Pointer.fromFunction(simpleAddition, 543)); - pointers.add(Pointer.fromFunction(simpleAddition, 544)); - pointers.add(Pointer.fromFunction(simpleAddition, 545)); - pointers.add(Pointer.fromFunction(simpleAddition, 546)); - pointers.add(Pointer.fromFunction(simpleAddition, 547)); - pointers.add(Pointer.fromFunction(simpleAddition, 548)); - pointers.add(Pointer.fromFunction(simpleAddition, 549)); - pointers.add(Pointer.fromFunction(simpleAddition, 550)); - pointers.add(Pointer.fromFunction(simpleAddition, 551)); - pointers.add(Pointer.fromFunction(simpleAddition, 552)); - pointers.add(Pointer.fromFunction(simpleAddition, 553)); - pointers.add(Pointer.fromFunction(simpleAddition, 554)); - pointers.add(Pointer.fromFunction(simpleAddition, 555)); - pointers.add(Pointer.fromFunction(simpleAddition, 556)); - pointers.add(Pointer.fromFunction(simpleAddition, 557)); - pointers.add(Pointer.fromFunction(simpleAddition, 558)); - pointers.add(Pointer.fromFunction(simpleAddition, 559)); - pointers.add(Pointer.fromFunction(simpleAddition, 560)); - pointers.add(Pointer.fromFunction(simpleAddition, 561)); - pointers.add(Pointer.fromFunction(simpleAddition, 562)); - pointers.add(Pointer.fromFunction(simpleAddition, 563)); - pointers.add(Pointer.fromFunction(simpleAddition, 564)); - pointers.add(Pointer.fromFunction(simpleAddition, 565)); - pointers.add(Pointer.fromFunction(simpleAddition, 566)); - pointers.add(Pointer.fromFunction(simpleAddition, 567)); - pointers.add(Pointer.fromFunction(simpleAddition, 568)); - pointers.add(Pointer.fromFunction(simpleAddition, 569)); - pointers.add(Pointer.fromFunction(simpleAddition, 570)); - pointers.add(Pointer.fromFunction(simpleAddition, 571)); - pointers.add(Pointer.fromFunction(simpleAddition, 572)); - pointers.add(Pointer.fromFunction(simpleAddition, 573)); - pointers.add(Pointer.fromFunction(simpleAddition, 574)); - pointers.add(Pointer.fromFunction(simpleAddition, 575)); - pointers.add(Pointer.fromFunction(simpleAddition, 576)); - pointers.add(Pointer.fromFunction(simpleAddition, 577)); - pointers.add(Pointer.fromFunction(simpleAddition, 578)); - pointers.add(Pointer.fromFunction(simpleAddition, 579)); - pointers.add(Pointer.fromFunction(simpleAddition, 580)); - pointers.add(Pointer.fromFunction(simpleAddition, 581)); - pointers.add(Pointer.fromFunction(simpleAddition, 582)); - pointers.add(Pointer.fromFunction(simpleAddition, 583)); - pointers.add(Pointer.fromFunction(simpleAddition, 584)); - pointers.add(Pointer.fromFunction(simpleAddition, 585)); - pointers.add(Pointer.fromFunction(simpleAddition, 586)); - pointers.add(Pointer.fromFunction(simpleAddition, 587)); - pointers.add(Pointer.fromFunction(simpleAddition, 588)); - pointers.add(Pointer.fromFunction(simpleAddition, 589)); - pointers.add(Pointer.fromFunction(simpleAddition, 590)); - pointers.add(Pointer.fromFunction(simpleAddition, 591)); - pointers.add(Pointer.fromFunction(simpleAddition, 592)); - pointers.add(Pointer.fromFunction(simpleAddition, 593)); - pointers.add(Pointer.fromFunction(simpleAddition, 594)); - pointers.add(Pointer.fromFunction(simpleAddition, 595)); - pointers.add(Pointer.fromFunction(simpleAddition, 596)); - pointers.add(Pointer.fromFunction(simpleAddition, 597)); - pointers.add(Pointer.fromFunction(simpleAddition, 598)); - pointers.add(Pointer.fromFunction(simpleAddition, 599)); - pointers.add(Pointer.fromFunction(simpleAddition, 600)); - pointers.add(Pointer.fromFunction(simpleAddition, 601)); - pointers.add(Pointer.fromFunction(simpleAddition, 602)); - pointers.add(Pointer.fromFunction(simpleAddition, 603)); - pointers.add(Pointer.fromFunction(simpleAddition, 604)); - pointers.add(Pointer.fromFunction(simpleAddition, 605)); - pointers.add(Pointer.fromFunction(simpleAddition, 606)); - pointers.add(Pointer.fromFunction(simpleAddition, 607)); - pointers.add(Pointer.fromFunction(simpleAddition, 608)); - pointers.add(Pointer.fromFunction(simpleAddition, 609)); - pointers.add(Pointer.fromFunction(simpleAddition, 610)); - pointers.add(Pointer.fromFunction(simpleAddition, 611)); - pointers.add(Pointer.fromFunction(simpleAddition, 612)); - pointers.add(Pointer.fromFunction(simpleAddition, 613)); - pointers.add(Pointer.fromFunction(simpleAddition, 614)); - pointers.add(Pointer.fromFunction(simpleAddition, 615)); - pointers.add(Pointer.fromFunction(simpleAddition, 616)); - pointers.add(Pointer.fromFunction(simpleAddition, 617)); - pointers.add(Pointer.fromFunction(simpleAddition, 618)); - pointers.add(Pointer.fromFunction(simpleAddition, 619)); - pointers.add(Pointer.fromFunction(simpleAddition, 620)); - pointers.add(Pointer.fromFunction(simpleAddition, 621)); - pointers.add(Pointer.fromFunction(simpleAddition, 622)); - pointers.add(Pointer.fromFunction(simpleAddition, 623)); - pointers.add(Pointer.fromFunction(simpleAddition, 624)); - pointers.add(Pointer.fromFunction(simpleAddition, 625)); - pointers.add(Pointer.fromFunction(simpleAddition, 626)); - pointers.add(Pointer.fromFunction(simpleAddition, 627)); - pointers.add(Pointer.fromFunction(simpleAddition, 628)); - pointers.add(Pointer.fromFunction(simpleAddition, 629)); - pointers.add(Pointer.fromFunction(simpleAddition, 630)); - pointers.add(Pointer.fromFunction(simpleAddition, 631)); - pointers.add(Pointer.fromFunction(simpleAddition, 632)); - pointers.add(Pointer.fromFunction(simpleAddition, 633)); - pointers.add(Pointer.fromFunction(simpleAddition, 634)); - pointers.add(Pointer.fromFunction(simpleAddition, 635)); - pointers.add(Pointer.fromFunction(simpleAddition, 636)); - pointers.add(Pointer.fromFunction(simpleAddition, 637)); - pointers.add(Pointer.fromFunction(simpleAddition, 638)); - pointers.add(Pointer.fromFunction(simpleAddition, 639)); - pointers.add(Pointer.fromFunction(simpleAddition, 640)); - pointers.add(Pointer.fromFunction(simpleAddition, 641)); - pointers.add(Pointer.fromFunction(simpleAddition, 642)); - pointers.add(Pointer.fromFunction(simpleAddition, 643)); - pointers.add(Pointer.fromFunction(simpleAddition, 644)); - pointers.add(Pointer.fromFunction(simpleAddition, 645)); - pointers.add(Pointer.fromFunction(simpleAddition, 646)); - pointers.add(Pointer.fromFunction(simpleAddition, 647)); - pointers.add(Pointer.fromFunction(simpleAddition, 648)); - pointers.add(Pointer.fromFunction(simpleAddition, 649)); - pointers.add(Pointer.fromFunction(simpleAddition, 650)); - pointers.add(Pointer.fromFunction(simpleAddition, 651)); - pointers.add(Pointer.fromFunction(simpleAddition, 652)); - pointers.add(Pointer.fromFunction(simpleAddition, 653)); - pointers.add(Pointer.fromFunction(simpleAddition, 654)); - pointers.add(Pointer.fromFunction(simpleAddition, 655)); - pointers.add(Pointer.fromFunction(simpleAddition, 656)); - pointers.add(Pointer.fromFunction(simpleAddition, 657)); - pointers.add(Pointer.fromFunction(simpleAddition, 658)); - pointers.add(Pointer.fromFunction(simpleAddition, 659)); - pointers.add(Pointer.fromFunction(simpleAddition, 660)); - pointers.add(Pointer.fromFunction(simpleAddition, 661)); - pointers.add(Pointer.fromFunction(simpleAddition, 662)); - pointers.add(Pointer.fromFunction(simpleAddition, 663)); - pointers.add(Pointer.fromFunction(simpleAddition, 664)); - pointers.add(Pointer.fromFunction(simpleAddition, 665)); - pointers.add(Pointer.fromFunction(simpleAddition, 666)); - pointers.add(Pointer.fromFunction(simpleAddition, 667)); - pointers.add(Pointer.fromFunction(simpleAddition, 668)); - pointers.add(Pointer.fromFunction(simpleAddition, 669)); - pointers.add(Pointer.fromFunction(simpleAddition, 670)); - pointers.add(Pointer.fromFunction(simpleAddition, 671)); - pointers.add(Pointer.fromFunction(simpleAddition, 672)); - pointers.add(Pointer.fromFunction(simpleAddition, 673)); - pointers.add(Pointer.fromFunction(simpleAddition, 674)); - pointers.add(Pointer.fromFunction(simpleAddition, 675)); - pointers.add(Pointer.fromFunction(simpleAddition, 676)); - pointers.add(Pointer.fromFunction(simpleAddition, 677)); - pointers.add(Pointer.fromFunction(simpleAddition, 678)); - pointers.add(Pointer.fromFunction(simpleAddition, 679)); - pointers.add(Pointer.fromFunction(simpleAddition, 680)); - pointers.add(Pointer.fromFunction(simpleAddition, 681)); - pointers.add(Pointer.fromFunction(simpleAddition, 682)); - pointers.add(Pointer.fromFunction(simpleAddition, 683)); - pointers.add(Pointer.fromFunction(simpleAddition, 684)); - pointers.add(Pointer.fromFunction(simpleAddition, 685)); - pointers.add(Pointer.fromFunction(simpleAddition, 686)); - pointers.add(Pointer.fromFunction(simpleAddition, 687)); - pointers.add(Pointer.fromFunction(simpleAddition, 688)); - pointers.add(Pointer.fromFunction(simpleAddition, 689)); - pointers.add(Pointer.fromFunction(simpleAddition, 690)); - pointers.add(Pointer.fromFunction(simpleAddition, 691)); - pointers.add(Pointer.fromFunction(simpleAddition, 692)); - pointers.add(Pointer.fromFunction(simpleAddition, 693)); - pointers.add(Pointer.fromFunction(simpleAddition, 694)); - pointers.add(Pointer.fromFunction(simpleAddition, 695)); - pointers.add(Pointer.fromFunction(simpleAddition, 696)); - pointers.add(Pointer.fromFunction(simpleAddition, 697)); - pointers.add(Pointer.fromFunction(simpleAddition, 698)); - pointers.add(Pointer.fromFunction(simpleAddition, 699)); - pointers.add(Pointer.fromFunction(simpleAddition, 700)); - pointers.add(Pointer.fromFunction(simpleAddition, 701)); - pointers.add(Pointer.fromFunction(simpleAddition, 702)); - pointers.add(Pointer.fromFunction(simpleAddition, 703)); - pointers.add(Pointer.fromFunction(simpleAddition, 704)); - pointers.add(Pointer.fromFunction(simpleAddition, 705)); - pointers.add(Pointer.fromFunction(simpleAddition, 706)); - pointers.add(Pointer.fromFunction(simpleAddition, 707)); - pointers.add(Pointer.fromFunction(simpleAddition, 708)); - pointers.add(Pointer.fromFunction(simpleAddition, 709)); - pointers.add(Pointer.fromFunction(simpleAddition, 710)); - pointers.add(Pointer.fromFunction(simpleAddition, 711)); - pointers.add(Pointer.fromFunction(simpleAddition, 712)); - pointers.add(Pointer.fromFunction(simpleAddition, 713)); - pointers.add(Pointer.fromFunction(simpleAddition, 714)); - pointers.add(Pointer.fromFunction(simpleAddition, 715)); - pointers.add(Pointer.fromFunction(simpleAddition, 716)); - pointers.add(Pointer.fromFunction(simpleAddition, 717)); - pointers.add(Pointer.fromFunction(simpleAddition, 718)); - pointers.add(Pointer.fromFunction(simpleAddition, 719)); - pointers.add(Pointer.fromFunction(simpleAddition, 720)); - pointers.add(Pointer.fromFunction(simpleAddition, 721)); - pointers.add(Pointer.fromFunction(simpleAddition, 722)); - pointers.add(Pointer.fromFunction(simpleAddition, 723)); - pointers.add(Pointer.fromFunction(simpleAddition, 724)); - pointers.add(Pointer.fromFunction(simpleAddition, 725)); - pointers.add(Pointer.fromFunction(simpleAddition, 726)); - pointers.add(Pointer.fromFunction(simpleAddition, 727)); - pointers.add(Pointer.fromFunction(simpleAddition, 728)); - pointers.add(Pointer.fromFunction(simpleAddition, 729)); - pointers.add(Pointer.fromFunction(simpleAddition, 730)); - pointers.add(Pointer.fromFunction(simpleAddition, 731)); - pointers.add(Pointer.fromFunction(simpleAddition, 732)); - pointers.add(Pointer.fromFunction(simpleAddition, 733)); - pointers.add(Pointer.fromFunction(simpleAddition, 734)); - pointers.add(Pointer.fromFunction(simpleAddition, 735)); - pointers.add(Pointer.fromFunction(simpleAddition, 736)); - pointers.add(Pointer.fromFunction(simpleAddition, 737)); - pointers.add(Pointer.fromFunction(simpleAddition, 738)); - pointers.add(Pointer.fromFunction(simpleAddition, 739)); - pointers.add(Pointer.fromFunction(simpleAddition, 740)); - pointers.add(Pointer.fromFunction(simpleAddition, 741)); - pointers.add(Pointer.fromFunction(simpleAddition, 742)); - pointers.add(Pointer.fromFunction(simpleAddition, 743)); - pointers.add(Pointer.fromFunction(simpleAddition, 744)); - pointers.add(Pointer.fromFunction(simpleAddition, 745)); - pointers.add(Pointer.fromFunction(simpleAddition, 746)); - pointers.add(Pointer.fromFunction(simpleAddition, 747)); - pointers.add(Pointer.fromFunction(simpleAddition, 748)); - pointers.add(Pointer.fromFunction(simpleAddition, 749)); - pointers.add(Pointer.fromFunction(simpleAddition, 750)); - pointers.add(Pointer.fromFunction(simpleAddition, 751)); - pointers.add(Pointer.fromFunction(simpleAddition, 752)); - pointers.add(Pointer.fromFunction(simpleAddition, 753)); - pointers.add(Pointer.fromFunction(simpleAddition, 754)); - pointers.add(Pointer.fromFunction(simpleAddition, 755)); - pointers.add(Pointer.fromFunction(simpleAddition, 756)); - pointers.add(Pointer.fromFunction(simpleAddition, 757)); - pointers.add(Pointer.fromFunction(simpleAddition, 758)); - pointers.add(Pointer.fromFunction(simpleAddition, 759)); - pointers.add(Pointer.fromFunction(simpleAddition, 760)); - pointers.add(Pointer.fromFunction(simpleAddition, 761)); - pointers.add(Pointer.fromFunction(simpleAddition, 762)); - pointers.add(Pointer.fromFunction(simpleAddition, 763)); - pointers.add(Pointer.fromFunction(simpleAddition, 764)); - pointers.add(Pointer.fromFunction(simpleAddition, 765)); - pointers.add(Pointer.fromFunction(simpleAddition, 766)); - pointers.add(Pointer.fromFunction(simpleAddition, 767)); - pointers.add(Pointer.fromFunction(simpleAddition, 768)); - pointers.add(Pointer.fromFunction(simpleAddition, 769)); - pointers.add(Pointer.fromFunction(simpleAddition, 770)); - pointers.add(Pointer.fromFunction(simpleAddition, 771)); - pointers.add(Pointer.fromFunction(simpleAddition, 772)); - pointers.add(Pointer.fromFunction(simpleAddition, 773)); - pointers.add(Pointer.fromFunction(simpleAddition, 774)); - pointers.add(Pointer.fromFunction(simpleAddition, 775)); - pointers.add(Pointer.fromFunction(simpleAddition, 776)); - pointers.add(Pointer.fromFunction(simpleAddition, 777)); - pointers.add(Pointer.fromFunction(simpleAddition, 778)); - pointers.add(Pointer.fromFunction(simpleAddition, 779)); - pointers.add(Pointer.fromFunction(simpleAddition, 780)); - pointers.add(Pointer.fromFunction(simpleAddition, 781)); - pointers.add(Pointer.fromFunction(simpleAddition, 782)); - pointers.add(Pointer.fromFunction(simpleAddition, 783)); - pointers.add(Pointer.fromFunction(simpleAddition, 784)); - pointers.add(Pointer.fromFunction(simpleAddition, 785)); - pointers.add(Pointer.fromFunction(simpleAddition, 786)); - pointers.add(Pointer.fromFunction(simpleAddition, 787)); - pointers.add(Pointer.fromFunction(simpleAddition, 788)); - pointers.add(Pointer.fromFunction(simpleAddition, 789)); - pointers.add(Pointer.fromFunction(simpleAddition, 790)); - pointers.add(Pointer.fromFunction(simpleAddition, 791)); - pointers.add(Pointer.fromFunction(simpleAddition, 792)); - pointers.add(Pointer.fromFunction(simpleAddition, 793)); - pointers.add(Pointer.fromFunction(simpleAddition, 794)); - pointers.add(Pointer.fromFunction(simpleAddition, 795)); - pointers.add(Pointer.fromFunction(simpleAddition, 796)); - pointers.add(Pointer.fromFunction(simpleAddition, 797)); - pointers.add(Pointer.fromFunction(simpleAddition, 798)); - pointers.add(Pointer.fromFunction(simpleAddition, 799)); - pointers.add(Pointer.fromFunction(simpleAddition, 800)); - pointers.add(Pointer.fromFunction(simpleAddition, 801)); - pointers.add(Pointer.fromFunction(simpleAddition, 802)); - pointers.add(Pointer.fromFunction(simpleAddition, 803)); - pointers.add(Pointer.fromFunction(simpleAddition, 804)); - pointers.add(Pointer.fromFunction(simpleAddition, 805)); - pointers.add(Pointer.fromFunction(simpleAddition, 806)); - pointers.add(Pointer.fromFunction(simpleAddition, 807)); - pointers.add(Pointer.fromFunction(simpleAddition, 808)); - pointers.add(Pointer.fromFunction(simpleAddition, 809)); - pointers.add(Pointer.fromFunction(simpleAddition, 810)); - pointers.add(Pointer.fromFunction(simpleAddition, 811)); - pointers.add(Pointer.fromFunction(simpleAddition, 812)); - pointers.add(Pointer.fromFunction(simpleAddition, 813)); - pointers.add(Pointer.fromFunction(simpleAddition, 814)); - pointers.add(Pointer.fromFunction(simpleAddition, 815)); - pointers.add(Pointer.fromFunction(simpleAddition, 816)); - pointers.add(Pointer.fromFunction(simpleAddition, 817)); - pointers.add(Pointer.fromFunction(simpleAddition, 818)); - pointers.add(Pointer.fromFunction(simpleAddition, 819)); - pointers.add(Pointer.fromFunction(simpleAddition, 820)); - pointers.add(Pointer.fromFunction(simpleAddition, 821)); - pointers.add(Pointer.fromFunction(simpleAddition, 822)); - pointers.add(Pointer.fromFunction(simpleAddition, 823)); - pointers.add(Pointer.fromFunction(simpleAddition, 824)); - pointers.add(Pointer.fromFunction(simpleAddition, 825)); - pointers.add(Pointer.fromFunction(simpleAddition, 826)); - pointers.add(Pointer.fromFunction(simpleAddition, 827)); - pointers.add(Pointer.fromFunction(simpleAddition, 828)); - pointers.add(Pointer.fromFunction(simpleAddition, 829)); - pointers.add(Pointer.fromFunction(simpleAddition, 830)); - pointers.add(Pointer.fromFunction(simpleAddition, 831)); - pointers.add(Pointer.fromFunction(simpleAddition, 832)); - pointers.add(Pointer.fromFunction(simpleAddition, 833)); - pointers.add(Pointer.fromFunction(simpleAddition, 834)); - pointers.add(Pointer.fromFunction(simpleAddition, 835)); - pointers.add(Pointer.fromFunction(simpleAddition, 836)); - pointers.add(Pointer.fromFunction(simpleAddition, 837)); - pointers.add(Pointer.fromFunction(simpleAddition, 838)); - pointers.add(Pointer.fromFunction(simpleAddition, 839)); - pointers.add(Pointer.fromFunction(simpleAddition, 840)); - pointers.add(Pointer.fromFunction(simpleAddition, 841)); - pointers.add(Pointer.fromFunction(simpleAddition, 842)); - pointers.add(Pointer.fromFunction(simpleAddition, 843)); - pointers.add(Pointer.fromFunction(simpleAddition, 844)); - pointers.add(Pointer.fromFunction(simpleAddition, 845)); - pointers.add(Pointer.fromFunction(simpleAddition, 846)); - pointers.add(Pointer.fromFunction(simpleAddition, 847)); - pointers.add(Pointer.fromFunction(simpleAddition, 848)); - pointers.add(Pointer.fromFunction(simpleAddition, 849)); - pointers.add(Pointer.fromFunction(simpleAddition, 850)); - pointers.add(Pointer.fromFunction(simpleAddition, 851)); - pointers.add(Pointer.fromFunction(simpleAddition, 852)); - pointers.add(Pointer.fromFunction(simpleAddition, 853)); - pointers.add(Pointer.fromFunction(simpleAddition, 854)); - pointers.add(Pointer.fromFunction(simpleAddition, 855)); - pointers.add(Pointer.fromFunction(simpleAddition, 856)); - pointers.add(Pointer.fromFunction(simpleAddition, 857)); - pointers.add(Pointer.fromFunction(simpleAddition, 858)); - pointers.add(Pointer.fromFunction(simpleAddition, 859)); - pointers.add(Pointer.fromFunction(simpleAddition, 860)); - pointers.add(Pointer.fromFunction(simpleAddition, 861)); - pointers.add(Pointer.fromFunction(simpleAddition, 862)); - pointers.add(Pointer.fromFunction(simpleAddition, 863)); - pointers.add(Pointer.fromFunction(simpleAddition, 864)); - pointers.add(Pointer.fromFunction(simpleAddition, 865)); - pointers.add(Pointer.fromFunction(simpleAddition, 866)); - pointers.add(Pointer.fromFunction(simpleAddition, 867)); - pointers.add(Pointer.fromFunction(simpleAddition, 868)); - pointers.add(Pointer.fromFunction(simpleAddition, 869)); - pointers.add(Pointer.fromFunction(simpleAddition, 870)); - pointers.add(Pointer.fromFunction(simpleAddition, 871)); - pointers.add(Pointer.fromFunction(simpleAddition, 872)); - pointers.add(Pointer.fromFunction(simpleAddition, 873)); - pointers.add(Pointer.fromFunction(simpleAddition, 874)); - pointers.add(Pointer.fromFunction(simpleAddition, 875)); - pointers.add(Pointer.fromFunction(simpleAddition, 876)); - pointers.add(Pointer.fromFunction(simpleAddition, 877)); - pointers.add(Pointer.fromFunction(simpleAddition, 878)); - pointers.add(Pointer.fromFunction(simpleAddition, 879)); - pointers.add(Pointer.fromFunction(simpleAddition, 880)); - pointers.add(Pointer.fromFunction(simpleAddition, 881)); - pointers.add(Pointer.fromFunction(simpleAddition, 882)); - pointers.add(Pointer.fromFunction(simpleAddition, 883)); - pointers.add(Pointer.fromFunction(simpleAddition, 884)); - pointers.add(Pointer.fromFunction(simpleAddition, 885)); - pointers.add(Pointer.fromFunction(simpleAddition, 886)); - pointers.add(Pointer.fromFunction(simpleAddition, 887)); - pointers.add(Pointer.fromFunction(simpleAddition, 888)); - pointers.add(Pointer.fromFunction(simpleAddition, 889)); - pointers.add(Pointer.fromFunction(simpleAddition, 890)); - pointers.add(Pointer.fromFunction(simpleAddition, 891)); - pointers.add(Pointer.fromFunction(simpleAddition, 892)); - pointers.add(Pointer.fromFunction(simpleAddition, 893)); - pointers.add(Pointer.fromFunction(simpleAddition, 894)); - pointers.add(Pointer.fromFunction(simpleAddition, 895)); - pointers.add(Pointer.fromFunction(simpleAddition, 896)); - pointers.add(Pointer.fromFunction(simpleAddition, 897)); - pointers.add(Pointer.fromFunction(simpleAddition, 898)); - pointers.add(Pointer.fromFunction(simpleAddition, 899)); - pointers.add(Pointer.fromFunction(simpleAddition, 900)); - pointers.add(Pointer.fromFunction(simpleAddition, 901)); - pointers.add(Pointer.fromFunction(simpleAddition, 902)); - pointers.add(Pointer.fromFunction(simpleAddition, 903)); - pointers.add(Pointer.fromFunction(simpleAddition, 904)); - pointers.add(Pointer.fromFunction(simpleAddition, 905)); - pointers.add(Pointer.fromFunction(simpleAddition, 906)); - pointers.add(Pointer.fromFunction(simpleAddition, 907)); - pointers.add(Pointer.fromFunction(simpleAddition, 908)); - pointers.add(Pointer.fromFunction(simpleAddition, 909)); - pointers.add(Pointer.fromFunction(simpleAddition, 910)); - pointers.add(Pointer.fromFunction(simpleAddition, 911)); - pointers.add(Pointer.fromFunction(simpleAddition, 912)); - pointers.add(Pointer.fromFunction(simpleAddition, 913)); - pointers.add(Pointer.fromFunction(simpleAddition, 914)); - pointers.add(Pointer.fromFunction(simpleAddition, 915)); - pointers.add(Pointer.fromFunction(simpleAddition, 916)); - pointers.add(Pointer.fromFunction(simpleAddition, 917)); - pointers.add(Pointer.fromFunction(simpleAddition, 918)); - pointers.add(Pointer.fromFunction(simpleAddition, 919)); - pointers.add(Pointer.fromFunction(simpleAddition, 920)); - pointers.add(Pointer.fromFunction(simpleAddition, 921)); - pointers.add(Pointer.fromFunction(simpleAddition, 922)); - pointers.add(Pointer.fromFunction(simpleAddition, 923)); - pointers.add(Pointer.fromFunction(simpleAddition, 924)); - pointers.add(Pointer.fromFunction(simpleAddition, 925)); - pointers.add(Pointer.fromFunction(simpleAddition, 926)); - pointers.add(Pointer.fromFunction(simpleAddition, 927)); - pointers.add(Pointer.fromFunction(simpleAddition, 928)); - pointers.add(Pointer.fromFunction(simpleAddition, 929)); - pointers.add(Pointer.fromFunction(simpleAddition, 930)); - pointers.add(Pointer.fromFunction(simpleAddition, 931)); - pointers.add(Pointer.fromFunction(simpleAddition, 932)); - pointers.add(Pointer.fromFunction(simpleAddition, 933)); - pointers.add(Pointer.fromFunction(simpleAddition, 934)); - pointers.add(Pointer.fromFunction(simpleAddition, 935)); - pointers.add(Pointer.fromFunction(simpleAddition, 936)); - pointers.add(Pointer.fromFunction(simpleAddition, 937)); - pointers.add(Pointer.fromFunction(simpleAddition, 938)); - pointers.add(Pointer.fromFunction(simpleAddition, 939)); - pointers.add(Pointer.fromFunction(simpleAddition, 940)); - pointers.add(Pointer.fromFunction(simpleAddition, 941)); - pointers.add(Pointer.fromFunction(simpleAddition, 942)); - pointers.add(Pointer.fromFunction(simpleAddition, 943)); - pointers.add(Pointer.fromFunction(simpleAddition, 944)); - pointers.add(Pointer.fromFunction(simpleAddition, 945)); - pointers.add(Pointer.fromFunction(simpleAddition, 946)); - pointers.add(Pointer.fromFunction(simpleAddition, 947)); - pointers.add(Pointer.fromFunction(simpleAddition, 948)); - pointers.add(Pointer.fromFunction(simpleAddition, 949)); - pointers.add(Pointer.fromFunction(simpleAddition, 950)); - pointers.add(Pointer.fromFunction(simpleAddition, 951)); - pointers.add(Pointer.fromFunction(simpleAddition, 952)); - pointers.add(Pointer.fromFunction(simpleAddition, 953)); - pointers.add(Pointer.fromFunction(simpleAddition, 954)); - pointers.add(Pointer.fromFunction(simpleAddition, 955)); - pointers.add(Pointer.fromFunction(simpleAddition, 956)); - pointers.add(Pointer.fromFunction(simpleAddition, 957)); - pointers.add(Pointer.fromFunction(simpleAddition, 958)); - pointers.add(Pointer.fromFunction(simpleAddition, 959)); - pointers.add(Pointer.fromFunction(simpleAddition, 960)); - pointers.add(Pointer.fromFunction(simpleAddition, 961)); - pointers.add(Pointer.fromFunction(simpleAddition, 962)); - pointers.add(Pointer.fromFunction(simpleAddition, 963)); - pointers.add(Pointer.fromFunction(simpleAddition, 964)); - pointers.add(Pointer.fromFunction(simpleAddition, 965)); - pointers.add(Pointer.fromFunction(simpleAddition, 966)); - pointers.add(Pointer.fromFunction(simpleAddition, 967)); - pointers.add(Pointer.fromFunction(simpleAddition, 968)); - pointers.add(Pointer.fromFunction(simpleAddition, 969)); - pointers.add(Pointer.fromFunction(simpleAddition, 970)); - pointers.add(Pointer.fromFunction(simpleAddition, 971)); - pointers.add(Pointer.fromFunction(simpleAddition, 972)); - pointers.add(Pointer.fromFunction(simpleAddition, 973)); - pointers.add(Pointer.fromFunction(simpleAddition, 974)); - pointers.add(Pointer.fromFunction(simpleAddition, 975)); - pointers.add(Pointer.fromFunction(simpleAddition, 976)); - pointers.add(Pointer.fromFunction(simpleAddition, 977)); - pointers.add(Pointer.fromFunction(simpleAddition, 978)); - pointers.add(Pointer.fromFunction(simpleAddition, 979)); - pointers.add(Pointer.fromFunction(simpleAddition, 980)); - pointers.add(Pointer.fromFunction(simpleAddition, 981)); - pointers.add(Pointer.fromFunction(simpleAddition, 982)); - pointers.add(Pointer.fromFunction(simpleAddition, 983)); - pointers.add(Pointer.fromFunction(simpleAddition, 984)); - pointers.add(Pointer.fromFunction(simpleAddition, 985)); - pointers.add(Pointer.fromFunction(simpleAddition, 986)); - pointers.add(Pointer.fromFunction(simpleAddition, 987)); - pointers.add(Pointer.fromFunction(simpleAddition, 988)); - pointers.add(Pointer.fromFunction(simpleAddition, 989)); - pointers.add(Pointer.fromFunction(simpleAddition, 990)); - pointers.add(Pointer.fromFunction(simpleAddition, 991)); - pointers.add(Pointer.fromFunction(simpleAddition, 992)); - pointers.add(Pointer.fromFunction(simpleAddition, 993)); - pointers.add(Pointer.fromFunction(simpleAddition, 994)); - pointers.add(Pointer.fromFunction(simpleAddition, 995)); - pointers.add(Pointer.fromFunction(simpleAddition, 996)); - pointers.add(Pointer.fromFunction(simpleAddition, 997)); - pointers.add(Pointer.fromFunction(simpleAddition, 998)); - pointers.add(Pointer.fromFunction(simpleAddition, 999)); - - for (final pointer in pointers) { - Test("SimpleAddition", pointer).run(); - } +void main() { + testcases.forEach((t) => t.run()); } diff --git a/tests/ffi/vmspecific_function_callbacks_exit_test.dart b/tests/ffi/vmspecific_function_callbacks_exit_test.dart new file mode 100644 index 00000000000..b28dea9d5fd --- /dev/null +++ b/tests/ffi/vmspecific_function_callbacks_exit_test.dart @@ -0,0 +1,78 @@ +// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. +// +// Dart test program for testing dart:ffi function pointers with callbacks. +// +// VMOptions= +// VMOptions=--use-slow-path +// SharedObjects=ffi_test_functions +import 'dart:io'; +import 'dart:ffi'; +import 'dart:isolate'; +import "package:expect/expect.dart"; +import 'dylib_utils.dart'; + +typedef NativeCallbackTest = Int32 Function(Pointer); +typedef NativeCallbackTestFn = int Function(Pointer); +final DynamicLibrary testLibrary = dlopenPlatformSpecific("ffi_test_functions"); + +class Test { + final String name; + final Pointer callback; + final bool skip; + Test(this.name, this.callback, {bool skipIf: false}) : skip = skipIf {} + void run() { + if (skip) return; + print("Test $name."); + final NativeCallbackTestFn tester = testLibrary + .lookupFunction("Test$name"); + final int testCode = tester(callback); + if (testCode != 0) { + Expect.fail("Test $name failed."); + } + } +} + +typedef ReturnVoid = Void Function(); +void returnVoid() {} +testCallbackWrongThread() { + print("Test CallbackWrongThread."); + Test("CallbackWrongThread", Pointer.fromFunction(returnVoid)) + .run(); +} + +testCallbackOutsideIsolate() { + print("Test CallbackOutsideIsolate."); + Test("CallbackOutsideIsolate", Pointer.fromFunction(returnVoid)) + .run(); +} + +isolateHelper(int callbackPointer) { + final Pointer ptr = Pointer.fromAddress(callbackPointer); + final NativeCallbackTestFn tester = + testLibrary.lookupFunction( + "TestCallbackWrongIsolate"); + Expect.equals(0, tester(ptr)); +} + +testCallbackWrongIsolate() async { + final int callbackPointer = + Pointer.fromFunction(returnVoid).address; + final ReceivePort exitPort = ReceivePort(); + await Isolate.spawn(isolateHelper, callbackPointer, + errorsAreFatal: true, onExit: exitPort.sendPort); + await exitPort.first; +} + +void main() async { + // These tests terminate the process after successful completion, so we have + // to run them separately. + // + // Since they use signal handlers they only run on Linux. + if (Platform.isLinux && !const bool.fromEnvironment("dart.vm.product")) { + testCallbackWrongThread(); //# 01: ok + testCallbackOutsideIsolate(); //# 02: ok + await testCallbackWrongIsolate(); //# 03: ok + } +} diff --git a/tests/ffi/vmspecific_function_callbacks_negative_test.dart b/tests/ffi/vmspecific_function_callbacks_negative_test.dart new file mode 100644 index 00000000000..067cec47dcd --- /dev/null +++ b/tests/ffi/vmspecific_function_callbacks_negative_test.dart @@ -0,0 +1,26 @@ +// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. +// +// Dart test program for testing dart:ffi function pointers with callbacks. + +import 'dart:ffi'; + +import 'dylib_utils.dart'; + +final DynamicLibrary testLibrary = dlopenPlatformSpecific("ffi_test_functions"); + +// Correct type of exceptionalReturn argument to Pointer.fromFunction. +double testExceptionalReturn() { + Pointer.fromFunction(returnVoid, null); //# 59: compile-time error + Pointer.fromFunction(returnVoid, 0); //# 60: compile-time error + Pointer.fromFunction(testExceptionalReturn, "abc"); //# 61: compile-time error + Pointer.fromFunction(testExceptionalReturn, 0); //# 62: compile-time error + Pointer.fromFunction(testExceptionalReturn); //# 63: compile-time error + + return 0.0; // not used +} + +void main() { + testExceptionalReturn(); +} diff --git a/tests/ffi/vmspecific_function_callbacks_test.dart b/tests/ffi/vmspecific_function_callbacks_test.dart index 6d4ab93969f..53c0119c002 100644 --- a/tests/ffi/vmspecific_function_callbacks_test.dart +++ b/tests/ffi/vmspecific_function_callbacks_test.dart @@ -17,16 +17,10 @@ // VMOptions=--use-slow-path --enable-testing-pragmas --write-protect-code --no-dual-map-code --stacktrace-every=100 // SharedObjects=ffi_test_functions -import 'dart:io'; import 'dart:ffi'; -import 'dart:isolate'; -import 'dylib_utils.dart'; - -import "package:expect/expect.dart"; import 'ffi_test_helpers.dart'; -import 'function_callbacks_test.dart' show Test, testLibrary, - NativeCallbackTest, NativeCallbackTestFn, ReturnVoid, returnVoid; +import 'function_callbacks_test.dart' show Test, testLibrary, ReturnVoid; void testGC() { triggerGc(); @@ -37,40 +31,16 @@ typedef WaitForHelper = void Function(Pointer); void waitForHelper(Pointer helper) { print("helper: $helper"); - testLibrary - .lookupFunction("WaitForHelper")(helper); + testLibrary.lookupFunction( + "WaitForHelper")(helper); } final List testcases = [ Test("GC", Pointer.fromFunction(testGC)), - Test("UnprotectCode", Pointer.fromFunction(waitForHelper)), + Test("UnprotectCode", + Pointer.fromFunction(waitForHelper)), ]; -testCallbackWrongThread() => - Test("CallbackWrongThread", Pointer.fromFunction(returnVoid)) - .run(); - -testCallbackOutsideIsolate() => - Test("CallbackOutsideIsolate", Pointer.fromFunction(returnVoid)) - .run(); - -isolateHelper(int callbackPointer) { - final Pointer ptr = Pointer.fromAddress(callbackPointer); - final NativeCallbackTestFn tester = - testLibrary.lookupFunction( - "TestCallbackWrongIsolate"); - Expect.equals(0, tester(ptr)); -} - -testCallbackWrongIsolate() async { - final int callbackPointer = - Pointer.fromFunction(returnVoid).address; - final ReceivePort exitPort = ReceivePort(); - await Isolate.spawn(isolateHelper, callbackPointer, - errorsAreFatal: true, onExit: exitPort.sendPort); - await exitPort.first; -} - const double zeroPointZero = 0.0; // Correct type of exceptionalReturn argument to Pointer.fromFunction. @@ -78,26 +48,11 @@ double testExceptionalReturn() { Pointer.fromFunction(testExceptionalReturn, 0.0); Pointer.fromFunction(testExceptionalReturn, zeroPointZero); - Pointer.fromFunction(returnVoid, null); //# 59: compile-time error - Pointer.fromFunction(returnVoid, 0); //# 60: compile-time error - Pointer.fromFunction(testExceptionalReturn, "abc"); //# 61: compile-time error - Pointer.fromFunction(testExceptionalReturn, 0); //# 62: compile-time error - Pointer.fromFunction(testExceptionalReturn); //# 63: compile-time error - - return 0.0; // not used + return 0.0; } -void main() async { - testcases.forEach((t) => t.run()); //# 00: ok - testExceptionalReturn(); //# 00: ok +void main() { + testExceptionalReturn(); - // These tests terminate the process after successful completion, so we have - // to run them separately. - // - // Since they use signal handlers they only run on Linux. - if (Platform.isLinux && !const bool.fromEnvironment("dart.vm.product")) { - testCallbackWrongThread(); //# 01: ok - testCallbackOutsideIsolate(); //# 02: ok - await testCallbackWrongIsolate(); //# 03: ok - } + testcases.forEach((t) => t.run()); }