diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 4054fac080808..8300cc034b0c9 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -1,8 +1,7 @@ # -*- mode: cmake -*- ################################################################################ # WARNING: This file is automatically generated from templates and should not -# be directly modified. Instead, make changes to -# scripts/generate_harness/CMakeLists.txt_template and run +# be directly modified. Instead, make changes to CMakeLists.text.gyb and run # scripts/generate_harness/generate_harness.py to regenerate this file. ################################################################################ diff --git a/benchmark/scripts/generate_harness/CMakeLists.txt_template b/benchmark/CMakeLists.txt.gyb similarity index 58% rename from benchmark/scripts/generate_harness/CMakeLists.txt_template rename to benchmark/CMakeLists.txt.gyb index d4f0abb42abaa..0e55a53f0c9e1 100644 --- a/benchmark/scripts/generate_harness/CMakeLists.txt_template +++ b/benchmark/CMakeLists.txt.gyb @@ -1,39 +1,45 @@ # -*- mode: cmake -*- +% # Ignore the following warning. This _is_ the correct file to edit. ################################################################################ # WARNING: This file is automatically generated from templates and should not -# be directly modified. Instead, make changes to -# scripts/generate_harness/CMakeLists.txt_template and run +# be directly modified. Instead, make changes to CMakeLists.text.gyb and run # scripts/generate_harness/generate_harness.py to regenerate this file. ################################################################################ +%{ +from gyb_benchmark_support import ( + tests, + multisource_benches +) +}% cmake_minimum_required(VERSION 2.8.12) # Add path for custom CMake modules. list(APPEND CMAKE_MODULE_PATH - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") + "$${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") include(AddSwiftBenchmarkSuite) set(SWIFT_BENCH_MODULES -{% for test in tests %} - single-source/{{ test }} -{% endfor %} +% for test in tests: + single-source/${test} +% end ) set(SWIFT_MULTISOURCE_BENCHES -{% for multisource_bench in multisource_benches %} - multi-source/{{ multisource_bench.name }} -{% endfor %} +% for multisource_bench in multisource_benches: + multi-source/${multisource_bench.name} +% end ) -{% for multisource_bench in multisource_benches %} -set({{ multisource_bench.name }}_sources - {% for file in multisource_bench.files %} - multi-source/{{ multisource_bench.name }}/{{ file }} - {% endfor %} +% for multisource_bench in multisource_benches: +set(${multisource_bench.name}_sources +% for file in multisource_bench.files: + multi-source/${multisource_bench.name}/${file} +% end ) -{% endfor %} +% end set(BENCH_DRIVER_LIBRARY_MODULES utils/DriverUtils @@ -62,19 +68,19 @@ if(NOT SWIFT_EXEC) endif() if(NOT SWIFT_LIBRARY_PATH) - get_filename_component(tmp_dir "${SWIFT_EXEC}" DIRECTORY) - get_filename_component(tmp_dir "${tmp_dir}" DIRECTORY) - set(SWIFT_LIBRARY_PATH "${tmp_dir}/lib/swift") + get_filename_component(tmp_dir "$${SWIFT_EXEC}" DIRECTORY) + get_filename_component(tmp_dir "$${tmp_dir}" DIRECTORY) + set(SWIFT_LIBRARY_PATH "$${tmp_dir}/lib/swift") endif() # If the CMAKE_C_COMPILER is already clang, don't find it again, # thus allowing the --host-cc build-script argument to work here. -get_filename_component(c_compiler ${CMAKE_C_COMPILER} NAME) +get_filename_component(c_compiler $${CMAKE_C_COMPILER} NAME) -if(${c_compiler} STREQUAL "clang") - set(CLANG_EXEC ${CMAKE_C_COMPILER}) +if($${c_compiler} STREQUAL "clang") + set(CLANG_EXEC $${CMAKE_C_COMPILER}) else() - runcmd(COMMAND "xcrun" "-toolchain" "${SWIFT_DARWIN_XCRUN_TOOLCHAIN}" "-f" "clang" + runcmd(COMMAND "xcrun" "-toolchain" "$${SWIFT_DARWIN_XCRUN_TOOLCHAIN}" "-f" "clang" VARIABLE CLANG_EXEC ERROR "Unable to find Clang driver") endif() @@ -90,7 +96,7 @@ Available configurations: _SINGLEFILE, _MULTITHREADED") # where "_" is optional. if(NOT SWIFT_OPTIMIZATION_LEVELS) set(SWIFT_OPTIMIZATION_LEVELS "Onone" "O" "Ounchecked" - ${SWIFT_EXTRA_BENCH_CONFIGS}) + $${SWIFT_EXTRA_BENCH_CONFIGS}) endif() set(SWIFT_BENCHMARK_NUM_O_ITERATIONS "" CACHE STRING @@ -123,30 +129,30 @@ set(watchos_triple_platform "watchos") set(sdks) set(platforms) -foreach(platform ${ONLY_PLATFORMS}) +foreach(platform $${ONLY_PLATFORMS}) execute_process( - COMMAND "xcrun" "--sdk" "${platform}" "--show-sdk-path" - OUTPUT_VARIABLE ${platform}_sdk + COMMAND "xcrun" "--sdk" "$${platform}" "--show-sdk-path" + OUTPUT_VARIABLE $${platform}_sdk RESULT_VARIABLE result ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) - if("${result}" MATCHES "0") - list(APPEND sdks "${${platform}_sdk}") - list(APPEND platforms ${platform}) + if("$${result}" MATCHES "0") + list(APPEND sdks "$${$${platform}_sdk}") + list(APPEND platforms $${platform}) endif() endforeach() message("--") message("-- Swift Benchmark Suite:") -message("-- SWIFT_EXEC = ${SWIFT_EXEC}") -message("-- SWIFT_LIBRARY_PATH = ${SWIFT_LIBRARY_PATH}") -message("-- CLANG_EXEC = ${CLANG_EXEC}") -message("-- SWIFT_OPTIMIZATION_LEVELS = ${SWIFT_OPTIMIZATION_LEVELS}") -message("-- ONLY_PLATFORMS = ${ONLY_PLATFORMS}") +message("-- SWIFT_EXEC = $${SWIFT_EXEC}") +message("-- SWIFT_LIBRARY_PATH = $${SWIFT_LIBRARY_PATH}") +message("-- CLANG_EXEC = $${CLANG_EXEC}") +message("-- SWIFT_OPTIMIZATION_LEVELS = $${SWIFT_OPTIMIZATION_LEVELS}") +message("-- ONLY_PLATFORMS = $${ONLY_PLATFORMS}") -message("-- found platforms: ${platforms}") +message("-- found platforms: $${platforms}") message("-- found sdks:") -foreach(sdk ${sdks}) - message("-- ${sdk}") +foreach(sdk $${sdks}) + message("-- $${sdk}") endforeach() set(executable_targets) @@ -155,27 +161,26 @@ if(SWIFT_SDKS) set(IS_SWIFT_BUILD true) endif() -set(srcdir "${CMAKE_CURRENT_SOURCE_DIR}") +set(srcdir "$${CMAKE_CURRENT_SOURCE_DIR}") if(IS_SWIFT_BUILD) - get_filename_component(swift-bin-dir "${SWIFT_EXEC}" DIRECTORY) + get_filename_component(swift-bin-dir "$${SWIFT_EXEC}" DIRECTORY) else() - set(swift-bin-dir "${CMAKE_BINARY_DIR}/bin") + set(swift-bin-dir "$${CMAKE_BINARY_DIR}/bin") endif() -set(benchmark-bin-dir "${CMAKE_CURRENT_BINARY_DIR}/bin") -set(benchmark-lib-dir "${CMAKE_CURRENT_BINARY_DIR}/lib") -set(benchmark-lib-swift-dir "${CMAKE_CURRENT_BINARY_DIR}/lib/swift") +set(benchmark-bin-dir "$${CMAKE_CURRENT_BINARY_DIR}/bin") +set(benchmark-lib-dir "$${CMAKE_CURRENT_BINARY_DIR}/lib") +set(benchmark-lib-swift-dir "$${CMAKE_CURRENT_BINARY_DIR}/lib/swift") -file(MAKE_DIRECTORY "${swift-bin-dir}") -file(MAKE_DIRECTORY "${benchmark-bin-dir}") -file(MAKE_DIRECTORY "${benchmark-lib-dir}") -file(MAKE_DIRECTORY "${benchmark-lib-swift-dir}") +file(MAKE_DIRECTORY "$${swift-bin-dir}") +file(MAKE_DIRECTORY "$${benchmark-bin-dir}") +file(MAKE_DIRECTORY "$${benchmark-lib-dir}") +file(MAKE_DIRECTORY "$${benchmark-lib-swift-dir}") # Compile the perf test suite for each platform -foreach(platform ${platforms}) - swift_benchmark_compile(PLATFORM ${platform}) +foreach(platform $${platforms}) + swift_benchmark_compile(PLATFORM $${platform}) endforeach() add_subdirectory(scripts) - diff --git a/benchmark/scripts/generate_harness/generate_harness.py b/benchmark/scripts/generate_harness/generate_harness.py index 3809325f1fcc5..6e4bc0f815c5e 100755 --- a/benchmark/scripts/generate_harness/generate_harness.py +++ b/benchmark/scripts/generate_harness/generate_harness.py @@ -18,16 +18,11 @@ import argparse import os -import re import subprocess -import jinja2 - script_dir = os.path.dirname(os.path.realpath(__file__)) perf_dir = os.path.realpath(os.path.join(script_dir, '../..')) gyb = os.path.realpath(os.path.join(perf_dir, '../utils/gyb')) -single_source_dir = os.path.join(perf_dir, 'single-source') -multi_source_dir = os.path.join(perf_dir, 'multi-source') parser = argparse.ArgumentParser() parser.add_argument("--output-dir", help="Output directory (for validation test)", @@ -35,137 +30,6 @@ args = parser.parse_args() output_dir = args.output_dir -template_map = { - 'CMakeLists.txt_template': os.path.join(output_dir, 'CMakeLists.txt'), - 'main.swift_template': os.path.join(output_dir, 'utils/main.swift') -} - -# The test suites. Currently, "other" and "string" -other_tests = [ - "Ackermann", - "Fibonacci", - "ExistentialTestArrayConditionalShift_ClassValueBuffer1", - "ExistentialTestArrayConditionalShift_ClassValueBuffer2", - "ExistentialTestArrayConditionalShift_ClassValueBuffer3", - "ExistentialTestArrayConditionalShift_ClassValueBuffer4", - "ExistentialTestArrayConditionalShift_IntValueBuffer0", - "ExistentialTestArrayConditionalShift_IntValueBuffer1", - "ExistentialTestArrayConditionalShift_IntValueBuffer2", - "ExistentialTestArrayConditionalShift_IntValueBuffer3", - "ExistentialTestArrayConditionalShift_IntValueBuffer4", - "ExistentialTestArrayMutating_ClassValueBuffer1", - "ExistentialTestArrayMutating_ClassValueBuffer2", - "ExistentialTestArrayMutating_ClassValueBuffer3", - "ExistentialTestArrayMutating_ClassValueBuffer4", - "ExistentialTestArrayMutating_IntValueBuffer0", - "ExistentialTestArrayMutating_IntValueBuffer1", - "ExistentialTestArrayMutating_IntValueBuffer2", - "ExistentialTestArrayMutating_IntValueBuffer3", - "ExistentialTestArrayMutating_IntValueBuffer4", - "ExistentialTestArrayOneMethodCall_ClassValueBuffer1", - "ExistentialTestArrayOneMethodCall_ClassValueBuffer2", - "ExistentialTestArrayOneMethodCall_ClassValueBuffer3", - "ExistentialTestArrayOneMethodCall_ClassValueBuffer4", - "ExistentialTestArrayOneMethodCall_IntValueBuffer0", - "ExistentialTestArrayOneMethodCall_IntValueBuffer1", - "ExistentialTestArrayOneMethodCall_IntValueBuffer2", - "ExistentialTestArrayOneMethodCall_IntValueBuffer3", - "ExistentialTestArrayOneMethodCall_IntValueBuffer4", - "ExistentialTestArrayShift_ClassValueBuffer1", - "ExistentialTestArrayShift_ClassValueBuffer2", - "ExistentialTestArrayShift_ClassValueBuffer3", - "ExistentialTestArrayShift_ClassValueBuffer4", - "ExistentialTestArrayShift_IntValueBuffer0", - "ExistentialTestArrayShift_IntValueBuffer1", - "ExistentialTestArrayShift_IntValueBuffer2", - "ExistentialTestArrayShift_IntValueBuffer3", - "ExistentialTestArrayShift_IntValueBuffer4", - "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer1", - "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer2", - "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer3", - "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer4", - "ExistentialTestArrayTwoMethodCalls_IntValueBuffer0", - "ExistentialTestArrayTwoMethodCalls_IntValueBuffer1", - "ExistentialTestArrayTwoMethodCalls_IntValueBuffer2", - "ExistentialTestArrayTwoMethodCalls_IntValueBuffer3", - "ExistentialTestArrayTwoMethodCalls_IntValueBuffer4", - "ExistentialTestMutatingAndNonMutating_ClassValueBuffer1", - "ExistentialTestMutatingAndNonMutating_ClassValueBuffer2", - "ExistentialTestMutatingAndNonMutating_ClassValueBuffer3", - "ExistentialTestMutatingAndNonMutating_ClassValueBuffer4", - "ExistentialTestMutatingAndNonMutating_IntValueBuffer0", - "ExistentialTestMutatingAndNonMutating_IntValueBuffer1", - "ExistentialTestMutatingAndNonMutating_IntValueBuffer2", - "ExistentialTestMutatingAndNonMutating_IntValueBuffer3", - "ExistentialTestMutatingAndNonMutating_IntValueBuffer4", - "ExistentialTestMutating_ClassValueBuffer1", - "ExistentialTestMutating_ClassValueBuffer2", - "ExistentialTestMutating_ClassValueBuffer3", - "ExistentialTestMutating_ClassValueBuffer4", - "ExistentialTestMutating_IntValueBuffer0", - "ExistentialTestMutating_IntValueBuffer1", - "ExistentialTestMutating_IntValueBuffer2", - "ExistentialTestMutating_IntValueBuffer3", - "ExistentialTestMutating_IntValueBuffer4", - "ExistentialTestOneMethodCall_ClassValueBuffer1", - "ExistentialTestOneMethodCall_ClassValueBuffer2", - "ExistentialTestOneMethodCall_ClassValueBuffer3", - "ExistentialTestOneMethodCall_ClassValueBuffer4", - "ExistentialTestOneMethodCall_IntValueBuffer0", - "ExistentialTestOneMethodCall_IntValueBuffer1", - "ExistentialTestOneMethodCall_IntValueBuffer2", - "ExistentialTestOneMethodCall_IntValueBuffer3", - "ExistentialTestOneMethodCall_IntValueBuffer4", - "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer1", - "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer2", - "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer3", - "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer4", - "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer0", - "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer1", - "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer2", - "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer3", - "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer4", - "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer1", - "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer2", - "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer3", - "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer4", - "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer0", - "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer1", - "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer2", - "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer3", - "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer4", - "ExistentialTestTwoMethodCalls_ClassValueBuffer1", - "ExistentialTestTwoMethodCalls_ClassValueBuffer2", - "ExistentialTestTwoMethodCalls_ClassValueBuffer3", - "ExistentialTestTwoMethodCalls_ClassValueBuffer4", - "ExistentialTestTwoMethodCalls_IntValueBuffer0", - "ExistentialTestTwoMethodCalls_IntValueBuffer1", - "ExistentialTestTwoMethodCalls_IntValueBuffer2", - "ExistentialTestTwoMethodCalls_IntValueBuffer3", - "ExistentialTestTwoMethodCalls_IntValueBuffer4", -] - -string_tests = [ - "StringWalkASCIIScalars", - "StringWalkASCIICharacters", - "StringWalkUnicodeScalars", - "StringWalkUnicodeCharacters", - "StringWalkMixedScalars", - "StringWalkMixedCharacters", - "StringWalkASCIIScalarsBackwards", - "StringWalkASCIICharactersBackwards", - "StringWalkUnicodeScalarsBackwards", - "StringWalkUnicodeCharactersBackwards", - "StringWalkMixedScalarsBackwards", - "StringWalkMixedCharactersBackwards", -] - -ignored_run_funcs = other_tests + string_tests - -template_loader = jinja2.FileSystemLoader(searchpath="/") -template_env = jinja2.Environment(loader=template_loader, trim_blocks=True, - lstrip_blocks=True) - def all_files(directory, extension): # matching: [directory]/**/*[extension] return [ @@ -184,59 +48,11 @@ def will_write(filename): # ensure path to file exists before writing if __name__ == '__main__': # Generate Your Boilerplate - gyb_files = all_files(perf_dir, '.gyb') + # Make sure longer paths are done first as CMakeLists.txt and main.swift + # depend on the other gybs being generated first. + gyb_files = sorted(all_files(perf_dir, '.gyb'), key=len, reverse=True) for f in gyb_files: relative_path = os.path.relpath(f[:-4], perf_dir) out_file = os.path.join(output_dir, relative_path) will_write(out_file) subprocess.call([gyb, '--line-directive', '', '-o', out_file, f]) - - # CMakeList single-source - test_files = all_files(single_source_dir, '.swift') - tests = sorted(os.path.basename(x).split('.')[0] for x in test_files) - - # CMakeList multi-source - class MultiSourceBench(object): - def __init__(self, path): - self.name = os.path.basename(path) - self.files = [x for x in os.listdir(path) - if x.endswith('.swift')] - - if os.path.isdir(multi_source_dir): - multisource_benches = [ - MultiSourceBench(os.path.join(multi_source_dir, x)) - for x in os.listdir(multi_source_dir) - if os.path.isdir(os.path.join(multi_source_dir, x)) - ] - else: - multisource_benches = [] - - # main.swift imports - imports = sorted(tests + [msb.name for msb in multisource_benches]) - - # main.swift run functions - def get_run_funcs(filepath): - content = open(filepath).read() - matches = re.findall(r'func run_(.*?)\(', content) - return filter(lambda x: x not in ignored_run_funcs, matches) - - def find_run_funcs(): - swift_files = all_files(perf_dir, '.swift') - return [func for f in swift_files for func in get_run_funcs(f)] - - run_funcs = [(f, f) for f in sorted(find_run_funcs())] - - # Replace originals with files generated from templates - for template_file in template_map: - template_path = os.path.join(script_dir, template_file) - template = template_env.get_template(template_path) - out_file = template_map[template_file] - will_write(out_file) - open(out_file, 'w').write( - template.render(tests=tests, - multisource_benches=multisource_benches, - imports=imports, - run_funcs=run_funcs, - string_tests=string_tests, - other_tests=other_tests) - ) diff --git a/benchmark/scripts/generate_harness/main.swift_template b/benchmark/scripts/generate_harness/main.swift_template deleted file mode 100644 index 889e6306dc80b..0000000000000 --- a/benchmark/scripts/generate_harness/main.swift_template +++ /dev/null @@ -1,63 +0,0 @@ -//===--- main.swift -------------------------------------------------------===// -// -// This source file is part of the Swift.org open source project -// -// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors -// Licensed under Apache License v2.0 with Runtime Library Exception -// -// See https://swift.org/LICENSE.txt for license information -// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors -// -//===----------------------------------------------------------------------===// - -//////////////////////////////////////////////////////////////////////////////// -// WARNING: This file is automatically generated from templates and should not -// be directly modified. Instead, make changes to -// scripts/generate_harness/main.swift_template and run -// scripts/generate_harness/generate_harness.py to regenerate this file. -//////////////////////////////////////////////////////////////////////////////// - -// This is just a driver for performance overview tests. -import TestsUtils -import DriverUtils -{% for import in imports %} -import {{ import }} -{% endfor %} - -@inline(__always) -private func addPrecommitTest( - _ name: String, _ function: @escaping (Int) -> () -) { - precommitTests[name] = function -} -@inline(__always) -private func addStringTest( - _ name: String, _ function: @escaping (Int) -> () -) { - stringTests[name] = function -} -@inline(__always) -private func addOtherTest( - _ name: String, _ function: @escaping (Int) -> () -) { - otherTests[name] = function -} - -// The main test suite: precommit tests -{% for run_func in run_funcs %} -addPrecommitTest("{{ run_func[0] }}", run_{{ run_func[1] }}) -{% endfor %} - -// Other tests -{% for test_name in other_tests %} -addOtherTest("{{ test_name }}", run_{{ test_name }}) -{% endfor %} - -// String tests, an extended benchmark suite exercising finer-granularity -// behavior of our Strings. -{% for test_name in string_tests %} -addStringTest("{{ test_name }}", run_{{ test_name }}) -{% endfor %} - -main() - diff --git a/benchmark/utils/main.swift b/benchmark/utils/main.swift index 9859c8f7ef7e8..b85d2a305f71e 100644 --- a/benchmark/utils/main.swift +++ b/benchmark/utils/main.swift @@ -1,4 +1,4 @@ -//===--- main.swift -------------------------------------------------------===// +//===--- main.swift -------------------------------------------*- swift -*-===// // // This source file is part of the Swift.org open source project // @@ -11,9 +11,8 @@ //===----------------------------------------------------------------------===// //////////////////////////////////////////////////////////////////////////////// -// WARNING: This file is automatically generated from templates and should not -// be directly modified. Instead, make changes to -// scripts/generate_harness/main.swift_template and run +// WARNING: This file is manually generated from .gyb template and should not +// be directly modified. Instead, make changes to main.swift.gyb and run // scripts/generate_harness/generate_harness.py to regenerate this file. //////////////////////////////////////////////////////////////////////////////// @@ -121,411 +120,401 @@ import Walsh import XorLoop @inline(__always) -private func addPrecommitTest( - _ name: String, _ function: @escaping (Int) -> () +private func addTo( + _ testSuite: inout [String : (Int) -> ()], + _ name: String, + _ function: @escaping (Int) -> () ) { - precommitTests[name] = function -} -@inline(__always) -private func addStringTest( - _ name: String, _ function: @escaping (Int) -> () -) { - stringTests[name] = function -} -@inline(__always) -private func addOtherTest( - _ name: String, _ function: @escaping (Int) -> () -) { - otherTests[name] = function + testSuite[name] = function } // The main test suite: precommit tests -addPrecommitTest("AngryPhonebook", run_AngryPhonebook) -addPrecommitTest("AnyHashableWithAClass", run_AnyHashableWithAClass) -addPrecommitTest("Array2D", run_Array2D) -addPrecommitTest("ArrayAppend", run_ArrayAppend) -addPrecommitTest("ArrayAppendArrayOfInt", run_ArrayAppendArrayOfInt) -addPrecommitTest("ArrayAppendAscii", run_ArrayAppendAscii) -addPrecommitTest("ArrayAppendFromGeneric", run_ArrayAppendFromGeneric) -addPrecommitTest("ArrayAppendGenericStructs", run_ArrayAppendGenericStructs) -addPrecommitTest("ArrayAppendLatin1", run_ArrayAppendLatin1) -addPrecommitTest("ArrayAppendLazyMap", run_ArrayAppendLazyMap) -addPrecommitTest("ArrayAppendOptionals", run_ArrayAppendOptionals) -addPrecommitTest("ArrayAppendRepeatCol", run_ArrayAppendRepeatCol) -addPrecommitTest("ArrayAppendReserved", run_ArrayAppendReserved) -addPrecommitTest("ArrayAppendSequence", run_ArrayAppendSequence) -addPrecommitTest("ArrayAppendStrings", run_ArrayAppendStrings) -addPrecommitTest("ArrayAppendToFromGeneric", run_ArrayAppendToFromGeneric) -addPrecommitTest("ArrayAppendToGeneric", run_ArrayAppendToGeneric) -addPrecommitTest("ArrayAppendUTF16", run_ArrayAppendUTF16) -addPrecommitTest("ArrayInClass", run_ArrayInClass) -addPrecommitTest("ArrayLiteral", run_ArrayLiteral) -addPrecommitTest("ArrayOfGenericPOD", run_ArrayOfGenericPOD) -addPrecommitTest("ArrayOfGenericRef", run_ArrayOfGenericRef) -addPrecommitTest("ArrayOfPOD", run_ArrayOfPOD) -addPrecommitTest("ArrayOfRef", run_ArrayOfRef) -addPrecommitTest("ArrayPlusEqualArrayOfInt", run_ArrayPlusEqualArrayOfInt) -addPrecommitTest("ArrayPlusEqualFiveElementCollection", run_ArrayPlusEqualFiveElementCollection) -addPrecommitTest("ArrayPlusEqualSingleElementCollection", run_ArrayPlusEqualSingleElementCollection) -addPrecommitTest("ArrayPlusEqualThreeElements", run_ArrayPlusEqualThreeElements) -addPrecommitTest("ArraySubscript", run_ArraySubscript) -addPrecommitTest("ArrayValueProp", run_ArrayValueProp) -addPrecommitTest("ArrayValueProp2", run_ArrayValueProp2) -addPrecommitTest("ArrayValueProp3", run_ArrayValueProp3) -addPrecommitTest("ArrayValueProp4", run_ArrayValueProp4) -addPrecommitTest("BitCount", run_BitCount) -addPrecommitTest("ByteSwap", run_ByteSwap) -addPrecommitTest("CStringLongAscii", run_CStringLongAscii) -addPrecommitTest("CStringLongNonAscii", run_CStringLongNonAscii) -addPrecommitTest("CStringShortAscii", run_CStringShortAscii) -addPrecommitTest("Calculator", run_Calculator) -addPrecommitTest("CaptureProp", run_CaptureProp) -addPrecommitTest("CharacterLiteralsLarge", run_CharacterLiteralsLarge) -addPrecommitTest("CharacterLiteralsSmall", run_CharacterLiteralsSmall) -addPrecommitTest("Chars", run_Chars) -addPrecommitTest("ClassArrayGetter", run_ClassArrayGetter) -addPrecommitTest("DeadArray", run_DeadArray) -addPrecommitTest("Dictionary", run_Dictionary) -addPrecommitTest("Dictionary2", run_Dictionary2) -addPrecommitTest("Dictionary2OfObjects", run_Dictionary2OfObjects) -addPrecommitTest("Dictionary3", run_Dictionary3) -addPrecommitTest("Dictionary3OfObjects", run_Dictionary3OfObjects) -addPrecommitTest("DictionaryBridge", run_DictionaryBridge) -addPrecommitTest("DictionaryLiteral", run_DictionaryLiteral) -addPrecommitTest("DictionaryOfObjects", run_DictionaryOfObjects) -addPrecommitTest("DictionaryRemove", run_DictionaryRemove) -addPrecommitTest("DictionaryRemoveOfObjects", run_DictionaryRemoveOfObjects) -addPrecommitTest("DictionarySwap", run_DictionarySwap) -addPrecommitTest("DictionarySwapOfObjects", run_DictionarySwapOfObjects) -addPrecommitTest("DropFirstAnyCollection", run_DropFirstAnyCollection) -addPrecommitTest("DropFirstAnyCollectionLazy", run_DropFirstAnyCollectionLazy) -addPrecommitTest("DropFirstAnySeqCRangeIter", run_DropFirstAnySeqCRangeIter) -addPrecommitTest("DropFirstAnySeqCRangeIterLazy", run_DropFirstAnySeqCRangeIterLazy) -addPrecommitTest("DropFirstAnySeqCntRange", run_DropFirstAnySeqCntRange) -addPrecommitTest("DropFirstAnySeqCntRangeLazy", run_DropFirstAnySeqCntRangeLazy) -addPrecommitTest("DropFirstAnySequence", run_DropFirstAnySequence) -addPrecommitTest("DropFirstAnySequenceLazy", run_DropFirstAnySequenceLazy) -addPrecommitTest("DropFirstArray", run_DropFirstArray) -addPrecommitTest("DropFirstArrayLazy", run_DropFirstArrayLazy) -addPrecommitTest("DropFirstCountableRange", run_DropFirstCountableRange) -addPrecommitTest("DropFirstCountableRangeLazy", run_DropFirstCountableRangeLazy) -addPrecommitTest("DropFirstSequence", run_DropFirstSequence) -addPrecommitTest("DropFirstSequenceLazy", run_DropFirstSequenceLazy) -addPrecommitTest("DropLastAnyCollection", run_DropLastAnyCollection) -addPrecommitTest("DropLastAnyCollectionLazy", run_DropLastAnyCollectionLazy) -addPrecommitTest("DropLastAnySeqCRangeIter", run_DropLastAnySeqCRangeIter) -addPrecommitTest("DropLastAnySeqCRangeIterLazy", run_DropLastAnySeqCRangeIterLazy) -addPrecommitTest("DropLastAnySeqCntRange", run_DropLastAnySeqCntRange) -addPrecommitTest("DropLastAnySeqCntRangeLazy", run_DropLastAnySeqCntRangeLazy) -addPrecommitTest("DropLastAnySequence", run_DropLastAnySequence) -addPrecommitTest("DropLastAnySequenceLazy", run_DropLastAnySequenceLazy) -addPrecommitTest("DropLastArray", run_DropLastArray) -addPrecommitTest("DropLastArrayLazy", run_DropLastArrayLazy) -addPrecommitTest("DropLastCountableRange", run_DropLastCountableRange) -addPrecommitTest("DropLastCountableRangeLazy", run_DropLastCountableRangeLazy) -addPrecommitTest("DropLastSequence", run_DropLastSequence) -addPrecommitTest("DropLastSequenceLazy", run_DropLastSequenceLazy) -addPrecommitTest("DropWhileAnyCollection", run_DropWhileAnyCollection) -addPrecommitTest("DropWhileAnyCollectionLazy", run_DropWhileAnyCollectionLazy) -addPrecommitTest("DropWhileAnySeqCRangeIter", run_DropWhileAnySeqCRangeIter) -addPrecommitTest("DropWhileAnySeqCRangeIterLazy", run_DropWhileAnySeqCRangeIterLazy) -addPrecommitTest("DropWhileAnySeqCntRange", run_DropWhileAnySeqCntRange) -addPrecommitTest("DropWhileAnySeqCntRangeLazy", run_DropWhileAnySeqCntRangeLazy) -addPrecommitTest("DropWhileAnySequence", run_DropWhileAnySequence) -addPrecommitTest("DropWhileAnySequenceLazy", run_DropWhileAnySequenceLazy) -addPrecommitTest("DropWhileArray", run_DropWhileArray) -addPrecommitTest("DropWhileArrayLazy", run_DropWhileArrayLazy) -addPrecommitTest("DropWhileCountableRange", run_DropWhileCountableRange) -addPrecommitTest("DropWhileCountableRangeLazy", run_DropWhileCountableRangeLazy) -addPrecommitTest("DropWhileSequence", run_DropWhileSequence) -addPrecommitTest("DropWhileSequenceLazy", run_DropWhileSequenceLazy) -addPrecommitTest("ErrorHandling", run_ErrorHandling) -addPrecommitTest("GlobalClass", run_GlobalClass) -addPrecommitTest("Hanoi", run_Hanoi) -addPrecommitTest("HashQuadratic", run_HashQuadratic) -addPrecommitTest("HashTest", run_HashTest) -addPrecommitTest("Histogram", run_Histogram) -addPrecommitTest("Integrate", run_Integrate) -addPrecommitTest("IterateData", run_IterateData) -addPrecommitTest("Join", run_Join) -addPrecommitTest("LazilyFilteredArrays", run_LazilyFilteredArrays) -addPrecommitTest("LazilyFilteredRange", run_LazilyFilteredRange) -addPrecommitTest("LinkedList", run_LinkedList) -addPrecommitTest("MapReduce", run_MapReduce) -addPrecommitTest("MapReduceAnyCollection", run_MapReduceAnyCollection) -addPrecommitTest("MapReduceAnyCollectionShort", run_MapReduceAnyCollectionShort) -addPrecommitTest("MapReduceClass", run_MapReduceClass) -addPrecommitTest("MapReduceClassShort", run_MapReduceClassShort) -addPrecommitTest("MapReduceLazyCollection", run_MapReduceLazyCollection) -addPrecommitTest("MapReduceLazyCollectionShort", run_MapReduceLazyCollectionShort) -addPrecommitTest("MapReduceLazySequence", run_MapReduceLazySequence) -addPrecommitTest("MapReduceSequence", run_MapReduceSequence) -addPrecommitTest("MapReduceShort", run_MapReduceShort) -addPrecommitTest("MapReduceShortString", run_MapReduceShortString) -addPrecommitTest("MapReduceString", run_MapReduceString) -addPrecommitTest("Memset", run_Memset) -addPrecommitTest("MonteCarloE", run_MonteCarloE) -addPrecommitTest("MonteCarloPi", run_MonteCarloPi) -addPrecommitTest("NSDictionaryCastToSwift", run_NSDictionaryCastToSwift) -addPrecommitTest("NSError", run_NSError) -addPrecommitTest("NSStringConversion", run_NSStringConversion) -addPrecommitTest("NopDeinit", run_NopDeinit) -addPrecommitTest("ObjectAllocation", run_ObjectAllocation) -addPrecommitTest("ObjectiveCBridgeFromNSArrayAnyObject", run_ObjectiveCBridgeFromNSArrayAnyObject) -addPrecommitTest("ObjectiveCBridgeFromNSArrayAnyObjectForced", run_ObjectiveCBridgeFromNSArrayAnyObjectForced) -addPrecommitTest("ObjectiveCBridgeFromNSArrayAnyObjectToString", run_ObjectiveCBridgeFromNSArrayAnyObjectToString) -addPrecommitTest("ObjectiveCBridgeFromNSArrayAnyObjectToStringForced", run_ObjectiveCBridgeFromNSArrayAnyObjectToStringForced) -addPrecommitTest("ObjectiveCBridgeFromNSDictionaryAnyObject", run_ObjectiveCBridgeFromNSDictionaryAnyObject) -addPrecommitTest("ObjectiveCBridgeFromNSDictionaryAnyObjectForced", run_ObjectiveCBridgeFromNSDictionaryAnyObjectForced) -addPrecommitTest("ObjectiveCBridgeFromNSDictionaryAnyObjectToString", run_ObjectiveCBridgeFromNSDictionaryAnyObjectToString) -addPrecommitTest("ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced", run_ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced) -addPrecommitTest("ObjectiveCBridgeFromNSSetAnyObject", run_ObjectiveCBridgeFromNSSetAnyObject) -addPrecommitTest("ObjectiveCBridgeFromNSSetAnyObjectForced", run_ObjectiveCBridgeFromNSSetAnyObjectForced) -addPrecommitTest("ObjectiveCBridgeFromNSSetAnyObjectToString", run_ObjectiveCBridgeFromNSSetAnyObjectToString) -addPrecommitTest("ObjectiveCBridgeFromNSSetAnyObjectToStringForced", run_ObjectiveCBridgeFromNSSetAnyObjectToStringForced) -addPrecommitTest("ObjectiveCBridgeFromNSString", run_ObjectiveCBridgeFromNSString) -addPrecommitTest("ObjectiveCBridgeFromNSStringForced", run_ObjectiveCBridgeFromNSStringForced) -addPrecommitTest("ObjectiveCBridgeStubDataAppend", run_ObjectiveCBridgeStubDataAppend) -addPrecommitTest("ObjectiveCBridgeStubDateAccess", run_ObjectiveCBridgeStubDateAccess) -addPrecommitTest("ObjectiveCBridgeStubDateMutation", run_ObjectiveCBridgeStubDateMutation) -addPrecommitTest("ObjectiveCBridgeStubFromArrayOfNSString", run_ObjectiveCBridgeStubFromArrayOfNSString) -addPrecommitTest("ObjectiveCBridgeStubFromNSDate", run_ObjectiveCBridgeStubFromNSDate) -addPrecommitTest("ObjectiveCBridgeStubFromNSDateRef", run_ObjectiveCBridgeStubFromNSDateRef) -addPrecommitTest("ObjectiveCBridgeStubFromNSString", run_ObjectiveCBridgeStubFromNSString) -addPrecommitTest("ObjectiveCBridgeStubFromNSStringRef", run_ObjectiveCBridgeStubFromNSStringRef) -addPrecommitTest("ObjectiveCBridgeStubNSDataAppend", run_ObjectiveCBridgeStubNSDataAppend) -addPrecommitTest("ObjectiveCBridgeStubNSDateMutationRef", run_ObjectiveCBridgeStubNSDateMutationRef) -addPrecommitTest("ObjectiveCBridgeStubNSDateRefAccess", run_ObjectiveCBridgeStubNSDateRefAccess) -addPrecommitTest("ObjectiveCBridgeStubToArrayOfNSString", run_ObjectiveCBridgeStubToArrayOfNSString) -addPrecommitTest("ObjectiveCBridgeStubToNSDate", run_ObjectiveCBridgeStubToNSDate) -addPrecommitTest("ObjectiveCBridgeStubToNSDateRef", run_ObjectiveCBridgeStubToNSDateRef) -addPrecommitTest("ObjectiveCBridgeStubToNSString", run_ObjectiveCBridgeStubToNSString) -addPrecommitTest("ObjectiveCBridgeStubToNSStringRef", run_ObjectiveCBridgeStubToNSStringRef) -addPrecommitTest("ObjectiveCBridgeStubURLAppendPath", run_ObjectiveCBridgeStubURLAppendPath) -addPrecommitTest("ObjectiveCBridgeStubURLAppendPathRef", run_ObjectiveCBridgeStubURLAppendPathRef) -addPrecommitTest("ObjectiveCBridgeToNSArray", run_ObjectiveCBridgeToNSArray) -addPrecommitTest("ObjectiveCBridgeToNSDictionary", run_ObjectiveCBridgeToNSDictionary) -addPrecommitTest("ObjectiveCBridgeToNSSet", run_ObjectiveCBridgeToNSSet) -addPrecommitTest("ObjectiveCBridgeToNSString", run_ObjectiveCBridgeToNSString) -addPrecommitTest("ObserverClosure", run_ObserverClosure) -addPrecommitTest("ObserverForwarderStruct", run_ObserverForwarderStruct) -addPrecommitTest("ObserverPartiallyAppliedMethod", run_ObserverPartiallyAppliedMethod) -addPrecommitTest("ObserverUnappliedMethod", run_ObserverUnappliedMethod) -addPrecommitTest("OpenClose", run_OpenClose) -addPrecommitTest("Phonebook", run_Phonebook) -addPrecommitTest("PolymorphicCalls", run_PolymorphicCalls) -addPrecommitTest("PopFrontArray", run_PopFrontArray) -addPrecommitTest("PopFrontArrayGeneric", run_PopFrontArrayGeneric) -addPrecommitTest("PopFrontUnsafePointer", run_PopFrontUnsafePointer) -addPrecommitTest("PrefixAnyCollection", run_PrefixAnyCollection) -addPrecommitTest("PrefixAnyCollectionLazy", run_PrefixAnyCollectionLazy) -addPrecommitTest("PrefixAnySeqCRangeIter", run_PrefixAnySeqCRangeIter) -addPrecommitTest("PrefixAnySeqCRangeIterLazy", run_PrefixAnySeqCRangeIterLazy) -addPrecommitTest("PrefixAnySeqCntRange", run_PrefixAnySeqCntRange) -addPrecommitTest("PrefixAnySeqCntRangeLazy", run_PrefixAnySeqCntRangeLazy) -addPrecommitTest("PrefixAnySequence", run_PrefixAnySequence) -addPrecommitTest("PrefixAnySequenceLazy", run_PrefixAnySequenceLazy) -addPrecommitTest("PrefixArray", run_PrefixArray) -addPrecommitTest("PrefixArrayLazy", run_PrefixArrayLazy) -addPrecommitTest("PrefixCountableRange", run_PrefixCountableRange) -addPrecommitTest("PrefixCountableRangeLazy", run_PrefixCountableRangeLazy) -addPrecommitTest("PrefixSequence", run_PrefixSequence) -addPrecommitTest("PrefixSequenceLazy", run_PrefixSequenceLazy) -addPrecommitTest("PrefixWhileAnyCollection", run_PrefixWhileAnyCollection) -addPrecommitTest("PrefixWhileAnyCollectionLazy", run_PrefixWhileAnyCollectionLazy) -addPrecommitTest("PrefixWhileAnySeqCRangeIter", run_PrefixWhileAnySeqCRangeIter) -addPrecommitTest("PrefixWhileAnySeqCRangeIterLazy", run_PrefixWhileAnySeqCRangeIterLazy) -addPrecommitTest("PrefixWhileAnySeqCntRange", run_PrefixWhileAnySeqCntRange) -addPrecommitTest("PrefixWhileAnySeqCntRangeLazy", run_PrefixWhileAnySeqCntRangeLazy) -addPrecommitTest("PrefixWhileAnySequence", run_PrefixWhileAnySequence) -addPrecommitTest("PrefixWhileAnySequenceLazy", run_PrefixWhileAnySequenceLazy) -addPrecommitTest("PrefixWhileArray", run_PrefixWhileArray) -addPrecommitTest("PrefixWhileArrayLazy", run_PrefixWhileArrayLazy) -addPrecommitTest("PrefixWhileCountableRange", run_PrefixWhileCountableRange) -addPrecommitTest("PrefixWhileCountableRangeLazy", run_PrefixWhileCountableRangeLazy) -addPrecommitTest("PrefixWhileSequence", run_PrefixWhileSequence) -addPrecommitTest("PrefixWhileSequenceLazy", run_PrefixWhileSequenceLazy) -addPrecommitTest("Prims", run_Prims) -addPrecommitTest("ProtocolDispatch", run_ProtocolDispatch) -addPrecommitTest("ProtocolDispatch2", run_ProtocolDispatch2) -addPrecommitTest("RC4", run_RC4) -addPrecommitTest("RGBHistogram", run_RGBHistogram) -addPrecommitTest("RGBHistogramOfObjects", run_RGBHistogramOfObjects) -addPrecommitTest("RangeAssignment", run_RangeAssignment) -addPrecommitTest("RecursiveOwnedParameter", run_RecursiveOwnedParameter) -addPrecommitTest("ReversedArray", run_ReversedArray) -addPrecommitTest("ReversedBidirectional", run_ReversedBidirectional) -addPrecommitTest("ReversedDictionary", run_ReversedDictionary) -addPrecommitTest("SetExclusiveOr", run_SetExclusiveOr) -addPrecommitTest("SetExclusiveOr_OfObjects", run_SetExclusiveOr_OfObjects) -addPrecommitTest("SetIntersect", run_SetIntersect) -addPrecommitTest("SetIntersect_OfObjects", run_SetIntersect_OfObjects) -addPrecommitTest("SetIsSubsetOf", run_SetIsSubsetOf) -addPrecommitTest("SetIsSubsetOf_OfObjects", run_SetIsSubsetOf_OfObjects) -addPrecommitTest("SetUnion", run_SetUnion) -addPrecommitTest("SetUnion_OfObjects", run_SetUnion_OfObjects) -addPrecommitTest("SevenBoom", run_SevenBoom) -addPrecommitTest("Sim2DArray", run_Sim2DArray) -addPrecommitTest("SortLargeExistentials", run_SortLargeExistentials) -addPrecommitTest("SortLettersInPlace", run_SortLettersInPlace) -addPrecommitTest("SortSortedStrings", run_SortSortedStrings) -addPrecommitTest("SortStrings", run_SortStrings) -addPrecommitTest("SortStringsUnicode", run_SortStringsUnicode) -addPrecommitTest("StackPromo", run_StackPromo) -addPrecommitTest("StaticArray", run_StaticArray) -addPrecommitTest("StrComplexWalk", run_StrComplexWalk) -addPrecommitTest("StrToInt", run_StrToInt) -addPrecommitTest("StringAdder", run_StringAdder) -addPrecommitTest("StringBuilder", run_StringBuilder) -addPrecommitTest("StringBuilderLong", run_StringBuilderLong) -addPrecommitTest("StringEdits", run_StringEdits) -addPrecommitTest("StringEqualPointerComparison", run_StringEqualPointerComparison) -addPrecommitTest("StringHasPrefix", run_StringHasPrefix) -addPrecommitTest("StringHasPrefixUnicode", run_StringHasPrefixUnicode) -addPrecommitTest("StringHasSuffix", run_StringHasSuffix) -addPrecommitTest("StringHasSuffixUnicode", run_StringHasSuffixUnicode) -addPrecommitTest("StringInterpolation", run_StringInterpolation) -addPrecommitTest("StringMatch", run_StringMatch) -addPrecommitTest("StringUTF16Builder", run_StringUTF16Builder) -addPrecommitTest("StringWalk", run_StringWalk) -addPrecommitTest("StringWithCString", run_StringWithCString) -addPrecommitTest("SuffixAnyCollection", run_SuffixAnyCollection) -addPrecommitTest("SuffixAnyCollectionLazy", run_SuffixAnyCollectionLazy) -addPrecommitTest("SuffixAnySeqCRangeIter", run_SuffixAnySeqCRangeIter) -addPrecommitTest("SuffixAnySeqCRangeIterLazy", run_SuffixAnySeqCRangeIterLazy) -addPrecommitTest("SuffixAnySeqCntRange", run_SuffixAnySeqCntRange) -addPrecommitTest("SuffixAnySeqCntRangeLazy", run_SuffixAnySeqCntRangeLazy) -addPrecommitTest("SuffixAnySequence", run_SuffixAnySequence) -addPrecommitTest("SuffixAnySequenceLazy", run_SuffixAnySequenceLazy) -addPrecommitTest("SuffixArray", run_SuffixArray) -addPrecommitTest("SuffixArrayLazy", run_SuffixArrayLazy) -addPrecommitTest("SuffixCountableRange", run_SuffixCountableRange) -addPrecommitTest("SuffixCountableRangeLazy", run_SuffixCountableRangeLazy) -addPrecommitTest("SuffixSequence", run_SuffixSequence) -addPrecommitTest("SuffixSequenceLazy", run_SuffixSequenceLazy) -addPrecommitTest("SuperChars", run_SuperChars) -addPrecommitTest("TwoSum", run_TwoSum) -addPrecommitTest("TypeFlood", run_TypeFlood) -addPrecommitTest("UTF8Decode", run_UTF8Decode) -addPrecommitTest("Walsh", run_Walsh) -addPrecommitTest("XorLoop", run_XorLoop) +addTo(&precommitTests, "AngryPhonebook", run_AngryPhonebook) +addTo(&precommitTests, "AnyHashableWithAClass", run_AnyHashableWithAClass) +addTo(&precommitTests, "Array2D", run_Array2D) +addTo(&precommitTests, "ArrayAppend", run_ArrayAppend) +addTo(&precommitTests, "ArrayAppendArrayOfInt", run_ArrayAppendArrayOfInt) +addTo(&precommitTests, "ArrayAppendAscii", run_ArrayAppendAscii) +addTo(&precommitTests, "ArrayAppendFromGeneric", run_ArrayAppendFromGeneric) +addTo(&precommitTests, "ArrayAppendGenericStructs", run_ArrayAppendGenericStructs) +addTo(&precommitTests, "ArrayAppendLatin1", run_ArrayAppendLatin1) +addTo(&precommitTests, "ArrayAppendLazyMap", run_ArrayAppendLazyMap) +addTo(&precommitTests, "ArrayAppendOptionals", run_ArrayAppendOptionals) +addTo(&precommitTests, "ArrayAppendRepeatCol", run_ArrayAppendRepeatCol) +addTo(&precommitTests, "ArrayAppendReserved", run_ArrayAppendReserved) +addTo(&precommitTests, "ArrayAppendSequence", run_ArrayAppendSequence) +addTo(&precommitTests, "ArrayAppendStrings", run_ArrayAppendStrings) +addTo(&precommitTests, "ArrayAppendToFromGeneric", run_ArrayAppendToFromGeneric) +addTo(&precommitTests, "ArrayAppendToGeneric", run_ArrayAppendToGeneric) +addTo(&precommitTests, "ArrayAppendUTF16", run_ArrayAppendUTF16) +addTo(&precommitTests, "ArrayInClass", run_ArrayInClass) +addTo(&precommitTests, "ArrayLiteral", run_ArrayLiteral) +addTo(&precommitTests, "ArrayOfGenericPOD", run_ArrayOfGenericPOD) +addTo(&precommitTests, "ArrayOfGenericRef", run_ArrayOfGenericRef) +addTo(&precommitTests, "ArrayOfPOD", run_ArrayOfPOD) +addTo(&precommitTests, "ArrayOfRef", run_ArrayOfRef) +addTo(&precommitTests, "ArrayPlusEqualArrayOfInt", run_ArrayPlusEqualArrayOfInt) +addTo(&precommitTests, "ArrayPlusEqualFiveElementCollection", run_ArrayPlusEqualFiveElementCollection) +addTo(&precommitTests, "ArrayPlusEqualSingleElementCollection", run_ArrayPlusEqualSingleElementCollection) +addTo(&precommitTests, "ArrayPlusEqualThreeElements", run_ArrayPlusEqualThreeElements) +addTo(&precommitTests, "ArraySubscript", run_ArraySubscript) +addTo(&precommitTests, "ArrayValueProp", run_ArrayValueProp) +addTo(&precommitTests, "ArrayValueProp2", run_ArrayValueProp2) +addTo(&precommitTests, "ArrayValueProp3", run_ArrayValueProp3) +addTo(&precommitTests, "ArrayValueProp4", run_ArrayValueProp4) +addTo(&precommitTests, "BitCount", run_BitCount) +addTo(&precommitTests, "ByteSwap", run_ByteSwap) +addTo(&precommitTests, "CStringLongAscii", run_CStringLongAscii) +addTo(&precommitTests, "CStringLongNonAscii", run_CStringLongNonAscii) +addTo(&precommitTests, "CStringShortAscii", run_CStringShortAscii) +addTo(&precommitTests, "Calculator", run_Calculator) +addTo(&precommitTests, "CaptureProp", run_CaptureProp) +addTo(&precommitTests, "CharacterLiteralsLarge", run_CharacterLiteralsLarge) +addTo(&precommitTests, "CharacterLiteralsSmall", run_CharacterLiteralsSmall) +addTo(&precommitTests, "Chars", run_Chars) +addTo(&precommitTests, "ClassArrayGetter", run_ClassArrayGetter) +addTo(&precommitTests, "DeadArray", run_DeadArray) +addTo(&precommitTests, "Dictionary", run_Dictionary) +addTo(&precommitTests, "Dictionary2", run_Dictionary2) +addTo(&precommitTests, "Dictionary2OfObjects", run_Dictionary2OfObjects) +addTo(&precommitTests, "Dictionary3", run_Dictionary3) +addTo(&precommitTests, "Dictionary3OfObjects", run_Dictionary3OfObjects) +addTo(&precommitTests, "DictionaryBridge", run_DictionaryBridge) +addTo(&precommitTests, "DictionaryLiteral", run_DictionaryLiteral) +addTo(&precommitTests, "DictionaryOfObjects", run_DictionaryOfObjects) +addTo(&precommitTests, "DictionaryRemove", run_DictionaryRemove) +addTo(&precommitTests, "DictionaryRemoveOfObjects", run_DictionaryRemoveOfObjects) +addTo(&precommitTests, "DictionarySwap", run_DictionarySwap) +addTo(&precommitTests, "DictionarySwapOfObjects", run_DictionarySwapOfObjects) +addTo(&precommitTests, "DropFirstAnyCollection", run_DropFirstAnyCollection) +addTo(&precommitTests, "DropFirstAnyCollectionLazy", run_DropFirstAnyCollectionLazy) +addTo(&precommitTests, "DropFirstAnySeqCRangeIter", run_DropFirstAnySeqCRangeIter) +addTo(&precommitTests, "DropFirstAnySeqCRangeIterLazy", run_DropFirstAnySeqCRangeIterLazy) +addTo(&precommitTests, "DropFirstAnySeqCntRange", run_DropFirstAnySeqCntRange) +addTo(&precommitTests, "DropFirstAnySeqCntRangeLazy", run_DropFirstAnySeqCntRangeLazy) +addTo(&precommitTests, "DropFirstAnySequence", run_DropFirstAnySequence) +addTo(&precommitTests, "DropFirstAnySequenceLazy", run_DropFirstAnySequenceLazy) +addTo(&precommitTests, "DropFirstArray", run_DropFirstArray) +addTo(&precommitTests, "DropFirstArrayLazy", run_DropFirstArrayLazy) +addTo(&precommitTests, "DropFirstCountableRange", run_DropFirstCountableRange) +addTo(&precommitTests, "DropFirstCountableRangeLazy", run_DropFirstCountableRangeLazy) +addTo(&precommitTests, "DropFirstSequence", run_DropFirstSequence) +addTo(&precommitTests, "DropFirstSequenceLazy", run_DropFirstSequenceLazy) +addTo(&precommitTests, "DropLastAnyCollection", run_DropLastAnyCollection) +addTo(&precommitTests, "DropLastAnyCollectionLazy", run_DropLastAnyCollectionLazy) +addTo(&precommitTests, "DropLastAnySeqCRangeIter", run_DropLastAnySeqCRangeIter) +addTo(&precommitTests, "DropLastAnySeqCRangeIterLazy", run_DropLastAnySeqCRangeIterLazy) +addTo(&precommitTests, "DropLastAnySeqCntRange", run_DropLastAnySeqCntRange) +addTo(&precommitTests, "DropLastAnySeqCntRangeLazy", run_DropLastAnySeqCntRangeLazy) +addTo(&precommitTests, "DropLastAnySequence", run_DropLastAnySequence) +addTo(&precommitTests, "DropLastAnySequenceLazy", run_DropLastAnySequenceLazy) +addTo(&precommitTests, "DropLastArray", run_DropLastArray) +addTo(&precommitTests, "DropLastArrayLazy", run_DropLastArrayLazy) +addTo(&precommitTests, "DropLastCountableRange", run_DropLastCountableRange) +addTo(&precommitTests, "DropLastCountableRangeLazy", run_DropLastCountableRangeLazy) +addTo(&precommitTests, "DropLastSequence", run_DropLastSequence) +addTo(&precommitTests, "DropLastSequenceLazy", run_DropLastSequenceLazy) +addTo(&precommitTests, "DropWhileAnyCollection", run_DropWhileAnyCollection) +addTo(&precommitTests, "DropWhileAnyCollectionLazy", run_DropWhileAnyCollectionLazy) +addTo(&precommitTests, "DropWhileAnySeqCRangeIter", run_DropWhileAnySeqCRangeIter) +addTo(&precommitTests, "DropWhileAnySeqCRangeIterLazy", run_DropWhileAnySeqCRangeIterLazy) +addTo(&precommitTests, "DropWhileAnySeqCntRange", run_DropWhileAnySeqCntRange) +addTo(&precommitTests, "DropWhileAnySeqCntRangeLazy", run_DropWhileAnySeqCntRangeLazy) +addTo(&precommitTests, "DropWhileAnySequence", run_DropWhileAnySequence) +addTo(&precommitTests, "DropWhileAnySequenceLazy", run_DropWhileAnySequenceLazy) +addTo(&precommitTests, "DropWhileArray", run_DropWhileArray) +addTo(&precommitTests, "DropWhileArrayLazy", run_DropWhileArrayLazy) +addTo(&precommitTests, "DropWhileCountableRange", run_DropWhileCountableRange) +addTo(&precommitTests, "DropWhileCountableRangeLazy", run_DropWhileCountableRangeLazy) +addTo(&precommitTests, "DropWhileSequence", run_DropWhileSequence) +addTo(&precommitTests, "DropWhileSequenceLazy", run_DropWhileSequenceLazy) +addTo(&precommitTests, "ErrorHandling", run_ErrorHandling) +addTo(&precommitTests, "GlobalClass", run_GlobalClass) +addTo(&precommitTests, "Hanoi", run_Hanoi) +addTo(&precommitTests, "HashQuadratic", run_HashQuadratic) +addTo(&precommitTests, "HashTest", run_HashTest) +addTo(&precommitTests, "Histogram", run_Histogram) +addTo(&precommitTests, "Integrate", run_Integrate) +addTo(&precommitTests, "IterateData", run_IterateData) +addTo(&precommitTests, "Join", run_Join) +addTo(&precommitTests, "LazilyFilteredArrays", run_LazilyFilteredArrays) +addTo(&precommitTests, "LazilyFilteredRange", run_LazilyFilteredRange) +addTo(&precommitTests, "LinkedList", run_LinkedList) +addTo(&precommitTests, "MapReduce", run_MapReduce) +addTo(&precommitTests, "MapReduceAnyCollection", run_MapReduceAnyCollection) +addTo(&precommitTests, "MapReduceAnyCollectionShort", run_MapReduceAnyCollectionShort) +addTo(&precommitTests, "MapReduceClass", run_MapReduceClass) +addTo(&precommitTests, "MapReduceClassShort", run_MapReduceClassShort) +addTo(&precommitTests, "MapReduceLazyCollection", run_MapReduceLazyCollection) +addTo(&precommitTests, "MapReduceLazyCollectionShort", run_MapReduceLazyCollectionShort) +addTo(&precommitTests, "MapReduceLazySequence", run_MapReduceLazySequence) +addTo(&precommitTests, "MapReduceSequence", run_MapReduceSequence) +addTo(&precommitTests, "MapReduceShort", run_MapReduceShort) +addTo(&precommitTests, "MapReduceShortString", run_MapReduceShortString) +addTo(&precommitTests, "MapReduceString", run_MapReduceString) +addTo(&precommitTests, "Memset", run_Memset) +addTo(&precommitTests, "MonteCarloE", run_MonteCarloE) +addTo(&precommitTests, "MonteCarloPi", run_MonteCarloPi) +addTo(&precommitTests, "NSDictionaryCastToSwift", run_NSDictionaryCastToSwift) +addTo(&precommitTests, "NSError", run_NSError) +addTo(&precommitTests, "NSStringConversion", run_NSStringConversion) +addTo(&precommitTests, "NopDeinit", run_NopDeinit) +addTo(&precommitTests, "ObjectAllocation", run_ObjectAllocation) +addTo(&precommitTests, "ObjectiveCBridgeFromNSArrayAnyObject", run_ObjectiveCBridgeFromNSArrayAnyObject) +addTo(&precommitTests, "ObjectiveCBridgeFromNSArrayAnyObjectForced", run_ObjectiveCBridgeFromNSArrayAnyObjectForced) +addTo(&precommitTests, "ObjectiveCBridgeFromNSArrayAnyObjectToString", run_ObjectiveCBridgeFromNSArrayAnyObjectToString) +addTo(&precommitTests, "ObjectiveCBridgeFromNSArrayAnyObjectToStringForced", run_ObjectiveCBridgeFromNSArrayAnyObjectToStringForced) +addTo(&precommitTests, "ObjectiveCBridgeFromNSDictionaryAnyObject", run_ObjectiveCBridgeFromNSDictionaryAnyObject) +addTo(&precommitTests, "ObjectiveCBridgeFromNSDictionaryAnyObjectForced", run_ObjectiveCBridgeFromNSDictionaryAnyObjectForced) +addTo(&precommitTests, "ObjectiveCBridgeFromNSDictionaryAnyObjectToString", run_ObjectiveCBridgeFromNSDictionaryAnyObjectToString) +addTo(&precommitTests, "ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced", run_ObjectiveCBridgeFromNSDictionaryAnyObjectToStringForced) +addTo(&precommitTests, "ObjectiveCBridgeFromNSSetAnyObject", run_ObjectiveCBridgeFromNSSetAnyObject) +addTo(&precommitTests, "ObjectiveCBridgeFromNSSetAnyObjectForced", run_ObjectiveCBridgeFromNSSetAnyObjectForced) +addTo(&precommitTests, "ObjectiveCBridgeFromNSSetAnyObjectToString", run_ObjectiveCBridgeFromNSSetAnyObjectToString) +addTo(&precommitTests, "ObjectiveCBridgeFromNSSetAnyObjectToStringForced", run_ObjectiveCBridgeFromNSSetAnyObjectToStringForced) +addTo(&precommitTests, "ObjectiveCBridgeFromNSString", run_ObjectiveCBridgeFromNSString) +addTo(&precommitTests, "ObjectiveCBridgeFromNSStringForced", run_ObjectiveCBridgeFromNSStringForced) +addTo(&precommitTests, "ObjectiveCBridgeStubDataAppend", run_ObjectiveCBridgeStubDataAppend) +addTo(&precommitTests, "ObjectiveCBridgeStubDateAccess", run_ObjectiveCBridgeStubDateAccess) +addTo(&precommitTests, "ObjectiveCBridgeStubDateMutation", run_ObjectiveCBridgeStubDateMutation) +addTo(&precommitTests, "ObjectiveCBridgeStubFromArrayOfNSString", run_ObjectiveCBridgeStubFromArrayOfNSString) +addTo(&precommitTests, "ObjectiveCBridgeStubFromNSDate", run_ObjectiveCBridgeStubFromNSDate) +addTo(&precommitTests, "ObjectiveCBridgeStubFromNSDateRef", run_ObjectiveCBridgeStubFromNSDateRef) +addTo(&precommitTests, "ObjectiveCBridgeStubFromNSString", run_ObjectiveCBridgeStubFromNSString) +addTo(&precommitTests, "ObjectiveCBridgeStubFromNSStringRef", run_ObjectiveCBridgeStubFromNSStringRef) +addTo(&precommitTests, "ObjectiveCBridgeStubNSDataAppend", run_ObjectiveCBridgeStubNSDataAppend) +addTo(&precommitTests, "ObjectiveCBridgeStubNSDateMutationRef", run_ObjectiveCBridgeStubNSDateMutationRef) +addTo(&precommitTests, "ObjectiveCBridgeStubNSDateRefAccess", run_ObjectiveCBridgeStubNSDateRefAccess) +addTo(&precommitTests, "ObjectiveCBridgeStubToArrayOfNSString", run_ObjectiveCBridgeStubToArrayOfNSString) +addTo(&precommitTests, "ObjectiveCBridgeStubToNSDate", run_ObjectiveCBridgeStubToNSDate) +addTo(&precommitTests, "ObjectiveCBridgeStubToNSDateRef", run_ObjectiveCBridgeStubToNSDateRef) +addTo(&precommitTests, "ObjectiveCBridgeStubToNSString", run_ObjectiveCBridgeStubToNSString) +addTo(&precommitTests, "ObjectiveCBridgeStubToNSStringRef", run_ObjectiveCBridgeStubToNSStringRef) +addTo(&precommitTests, "ObjectiveCBridgeStubURLAppendPath", run_ObjectiveCBridgeStubURLAppendPath) +addTo(&precommitTests, "ObjectiveCBridgeStubURLAppendPathRef", run_ObjectiveCBridgeStubURLAppendPathRef) +addTo(&precommitTests, "ObjectiveCBridgeToNSArray", run_ObjectiveCBridgeToNSArray) +addTo(&precommitTests, "ObjectiveCBridgeToNSDictionary", run_ObjectiveCBridgeToNSDictionary) +addTo(&precommitTests, "ObjectiveCBridgeToNSSet", run_ObjectiveCBridgeToNSSet) +addTo(&precommitTests, "ObjectiveCBridgeToNSString", run_ObjectiveCBridgeToNSString) +addTo(&precommitTests, "ObserverClosure", run_ObserverClosure) +addTo(&precommitTests, "ObserverForwarderStruct", run_ObserverForwarderStruct) +addTo(&precommitTests, "ObserverPartiallyAppliedMethod", run_ObserverPartiallyAppliedMethod) +addTo(&precommitTests, "ObserverUnappliedMethod", run_ObserverUnappliedMethod) +addTo(&precommitTests, "OpenClose", run_OpenClose) +addTo(&precommitTests, "Phonebook", run_Phonebook) +addTo(&precommitTests, "PolymorphicCalls", run_PolymorphicCalls) +addTo(&precommitTests, "PopFrontArray", run_PopFrontArray) +addTo(&precommitTests, "PopFrontArrayGeneric", run_PopFrontArrayGeneric) +addTo(&precommitTests, "PopFrontUnsafePointer", run_PopFrontUnsafePointer) +addTo(&precommitTests, "PrefixAnyCollection", run_PrefixAnyCollection) +addTo(&precommitTests, "PrefixAnyCollectionLazy", run_PrefixAnyCollectionLazy) +addTo(&precommitTests, "PrefixAnySeqCRangeIter", run_PrefixAnySeqCRangeIter) +addTo(&precommitTests, "PrefixAnySeqCRangeIterLazy", run_PrefixAnySeqCRangeIterLazy) +addTo(&precommitTests, "PrefixAnySeqCntRange", run_PrefixAnySeqCntRange) +addTo(&precommitTests, "PrefixAnySeqCntRangeLazy", run_PrefixAnySeqCntRangeLazy) +addTo(&precommitTests, "PrefixAnySequence", run_PrefixAnySequence) +addTo(&precommitTests, "PrefixAnySequenceLazy", run_PrefixAnySequenceLazy) +addTo(&precommitTests, "PrefixArray", run_PrefixArray) +addTo(&precommitTests, "PrefixArrayLazy", run_PrefixArrayLazy) +addTo(&precommitTests, "PrefixCountableRange", run_PrefixCountableRange) +addTo(&precommitTests, "PrefixCountableRangeLazy", run_PrefixCountableRangeLazy) +addTo(&precommitTests, "PrefixSequence", run_PrefixSequence) +addTo(&precommitTests, "PrefixSequenceLazy", run_PrefixSequenceLazy) +addTo(&precommitTests, "PrefixWhileAnyCollection", run_PrefixWhileAnyCollection) +addTo(&precommitTests, "PrefixWhileAnyCollectionLazy", run_PrefixWhileAnyCollectionLazy) +addTo(&precommitTests, "PrefixWhileAnySeqCRangeIter", run_PrefixWhileAnySeqCRangeIter) +addTo(&precommitTests, "PrefixWhileAnySeqCRangeIterLazy", run_PrefixWhileAnySeqCRangeIterLazy) +addTo(&precommitTests, "PrefixWhileAnySeqCntRange", run_PrefixWhileAnySeqCntRange) +addTo(&precommitTests, "PrefixWhileAnySeqCntRangeLazy", run_PrefixWhileAnySeqCntRangeLazy) +addTo(&precommitTests, "PrefixWhileAnySequence", run_PrefixWhileAnySequence) +addTo(&precommitTests, "PrefixWhileAnySequenceLazy", run_PrefixWhileAnySequenceLazy) +addTo(&precommitTests, "PrefixWhileArray", run_PrefixWhileArray) +addTo(&precommitTests, "PrefixWhileArrayLazy", run_PrefixWhileArrayLazy) +addTo(&precommitTests, "PrefixWhileCountableRange", run_PrefixWhileCountableRange) +addTo(&precommitTests, "PrefixWhileCountableRangeLazy", run_PrefixWhileCountableRangeLazy) +addTo(&precommitTests, "PrefixWhileSequence", run_PrefixWhileSequence) +addTo(&precommitTests, "PrefixWhileSequenceLazy", run_PrefixWhileSequenceLazy) +addTo(&precommitTests, "Prims", run_Prims) +addTo(&precommitTests, "ProtocolDispatch", run_ProtocolDispatch) +addTo(&precommitTests, "ProtocolDispatch2", run_ProtocolDispatch2) +addTo(&precommitTests, "RC4", run_RC4) +addTo(&precommitTests, "RGBHistogram", run_RGBHistogram) +addTo(&precommitTests, "RGBHistogramOfObjects", run_RGBHistogramOfObjects) +addTo(&precommitTests, "RangeAssignment", run_RangeAssignment) +addTo(&precommitTests, "RecursiveOwnedParameter", run_RecursiveOwnedParameter) +addTo(&precommitTests, "ReversedArray", run_ReversedArray) +addTo(&precommitTests, "ReversedBidirectional", run_ReversedBidirectional) +addTo(&precommitTests, "ReversedDictionary", run_ReversedDictionary) +addTo(&precommitTests, "SetExclusiveOr", run_SetExclusiveOr) +addTo(&precommitTests, "SetExclusiveOr_OfObjects", run_SetExclusiveOr_OfObjects) +addTo(&precommitTests, "SetIntersect", run_SetIntersect) +addTo(&precommitTests, "SetIntersect_OfObjects", run_SetIntersect_OfObjects) +addTo(&precommitTests, "SetIsSubsetOf", run_SetIsSubsetOf) +addTo(&precommitTests, "SetIsSubsetOf_OfObjects", run_SetIsSubsetOf_OfObjects) +addTo(&precommitTests, "SetUnion", run_SetUnion) +addTo(&precommitTests, "SetUnion_OfObjects", run_SetUnion_OfObjects) +addTo(&precommitTests, "SevenBoom", run_SevenBoom) +addTo(&precommitTests, "Sim2DArray", run_Sim2DArray) +addTo(&precommitTests, "SortLargeExistentials", run_SortLargeExistentials) +addTo(&precommitTests, "SortLettersInPlace", run_SortLettersInPlace) +addTo(&precommitTests, "SortSortedStrings", run_SortSortedStrings) +addTo(&precommitTests, "SortStrings", run_SortStrings) +addTo(&precommitTests, "SortStringsUnicode", run_SortStringsUnicode) +addTo(&precommitTests, "StackPromo", run_StackPromo) +addTo(&precommitTests, "StaticArray", run_StaticArray) +addTo(&precommitTests, "StrComplexWalk", run_StrComplexWalk) +addTo(&precommitTests, "StrToInt", run_StrToInt) +addTo(&precommitTests, "StringAdder", run_StringAdder) +addTo(&precommitTests, "StringBuilder", run_StringBuilder) +addTo(&precommitTests, "StringBuilderLong", run_StringBuilderLong) +addTo(&precommitTests, "StringEdits", run_StringEdits) +addTo(&precommitTests, "StringEqualPointerComparison", run_StringEqualPointerComparison) +addTo(&precommitTests, "StringHasPrefix", run_StringHasPrefix) +addTo(&precommitTests, "StringHasPrefixUnicode", run_StringHasPrefixUnicode) +addTo(&precommitTests, "StringHasSuffix", run_StringHasSuffix) +addTo(&precommitTests, "StringHasSuffixUnicode", run_StringHasSuffixUnicode) +addTo(&precommitTests, "StringInterpolation", run_StringInterpolation) +addTo(&precommitTests, "StringMatch", run_StringMatch) +addTo(&precommitTests, "StringUTF16Builder", run_StringUTF16Builder) +addTo(&precommitTests, "StringWalk", run_StringWalk) +addTo(&precommitTests, "StringWithCString", run_StringWithCString) +addTo(&precommitTests, "SuffixAnyCollection", run_SuffixAnyCollection) +addTo(&precommitTests, "SuffixAnyCollectionLazy", run_SuffixAnyCollectionLazy) +addTo(&precommitTests, "SuffixAnySeqCRangeIter", run_SuffixAnySeqCRangeIter) +addTo(&precommitTests, "SuffixAnySeqCRangeIterLazy", run_SuffixAnySeqCRangeIterLazy) +addTo(&precommitTests, "SuffixAnySeqCntRange", run_SuffixAnySeqCntRange) +addTo(&precommitTests, "SuffixAnySeqCntRangeLazy", run_SuffixAnySeqCntRangeLazy) +addTo(&precommitTests, "SuffixAnySequence", run_SuffixAnySequence) +addTo(&precommitTests, "SuffixAnySequenceLazy", run_SuffixAnySequenceLazy) +addTo(&precommitTests, "SuffixArray", run_SuffixArray) +addTo(&precommitTests, "SuffixArrayLazy", run_SuffixArrayLazy) +addTo(&precommitTests, "SuffixCountableRange", run_SuffixCountableRange) +addTo(&precommitTests, "SuffixCountableRangeLazy", run_SuffixCountableRangeLazy) +addTo(&precommitTests, "SuffixSequence", run_SuffixSequence) +addTo(&precommitTests, "SuffixSequenceLazy", run_SuffixSequenceLazy) +addTo(&precommitTests, "SuperChars", run_SuperChars) +addTo(&precommitTests, "TwoSum", run_TwoSum) +addTo(&precommitTests, "TypeFlood", run_TypeFlood) +addTo(&precommitTests, "UTF8Decode", run_UTF8Decode) +addTo(&precommitTests, "Walsh", run_Walsh) +addTo(&precommitTests, "XorLoop", run_XorLoop) // Other tests -addOtherTest("Ackermann", run_Ackermann) -addOtherTest("Fibonacci", run_Fibonacci) -addOtherTest("ExistentialTestArrayConditionalShift_ClassValueBuffer1", run_ExistentialTestArrayConditionalShift_ClassValueBuffer1) -addOtherTest("ExistentialTestArrayConditionalShift_ClassValueBuffer2", run_ExistentialTestArrayConditionalShift_ClassValueBuffer2) -addOtherTest("ExistentialTestArrayConditionalShift_ClassValueBuffer3", run_ExistentialTestArrayConditionalShift_ClassValueBuffer3) -addOtherTest("ExistentialTestArrayConditionalShift_ClassValueBuffer4", run_ExistentialTestArrayConditionalShift_ClassValueBuffer4) -addOtherTest("ExistentialTestArrayConditionalShift_IntValueBuffer0", run_ExistentialTestArrayConditionalShift_IntValueBuffer0) -addOtherTest("ExistentialTestArrayConditionalShift_IntValueBuffer1", run_ExistentialTestArrayConditionalShift_IntValueBuffer1) -addOtherTest("ExistentialTestArrayConditionalShift_IntValueBuffer2", run_ExistentialTestArrayConditionalShift_IntValueBuffer2) -addOtherTest("ExistentialTestArrayConditionalShift_IntValueBuffer3", run_ExistentialTestArrayConditionalShift_IntValueBuffer3) -addOtherTest("ExistentialTestArrayConditionalShift_IntValueBuffer4", run_ExistentialTestArrayConditionalShift_IntValueBuffer4) -addOtherTest("ExistentialTestArrayMutating_ClassValueBuffer1", run_ExistentialTestArrayMutating_ClassValueBuffer1) -addOtherTest("ExistentialTestArrayMutating_ClassValueBuffer2", run_ExistentialTestArrayMutating_ClassValueBuffer2) -addOtherTest("ExistentialTestArrayMutating_ClassValueBuffer3", run_ExistentialTestArrayMutating_ClassValueBuffer3) -addOtherTest("ExistentialTestArrayMutating_ClassValueBuffer4", run_ExistentialTestArrayMutating_ClassValueBuffer4) -addOtherTest("ExistentialTestArrayMutating_IntValueBuffer0", run_ExistentialTestArrayMutating_IntValueBuffer0) -addOtherTest("ExistentialTestArrayMutating_IntValueBuffer1", run_ExistentialTestArrayMutating_IntValueBuffer1) -addOtherTest("ExistentialTestArrayMutating_IntValueBuffer2", run_ExistentialTestArrayMutating_IntValueBuffer2) -addOtherTest("ExistentialTestArrayMutating_IntValueBuffer3", run_ExistentialTestArrayMutating_IntValueBuffer3) -addOtherTest("ExistentialTestArrayMutating_IntValueBuffer4", run_ExistentialTestArrayMutating_IntValueBuffer4) -addOtherTest("ExistentialTestArrayOneMethodCall_ClassValueBuffer1", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer1) -addOtherTest("ExistentialTestArrayOneMethodCall_ClassValueBuffer2", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer2) -addOtherTest("ExistentialTestArrayOneMethodCall_ClassValueBuffer3", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer3) -addOtherTest("ExistentialTestArrayOneMethodCall_ClassValueBuffer4", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer4) -addOtherTest("ExistentialTestArrayOneMethodCall_IntValueBuffer0", run_ExistentialTestArrayOneMethodCall_IntValueBuffer0) -addOtherTest("ExistentialTestArrayOneMethodCall_IntValueBuffer1", run_ExistentialTestArrayOneMethodCall_IntValueBuffer1) -addOtherTest("ExistentialTestArrayOneMethodCall_IntValueBuffer2", run_ExistentialTestArrayOneMethodCall_IntValueBuffer2) -addOtherTest("ExistentialTestArrayOneMethodCall_IntValueBuffer3", run_ExistentialTestArrayOneMethodCall_IntValueBuffer3) -addOtherTest("ExistentialTestArrayOneMethodCall_IntValueBuffer4", run_ExistentialTestArrayOneMethodCall_IntValueBuffer4) -addOtherTest("ExistentialTestArrayShift_ClassValueBuffer1", run_ExistentialTestArrayShift_ClassValueBuffer1) -addOtherTest("ExistentialTestArrayShift_ClassValueBuffer2", run_ExistentialTestArrayShift_ClassValueBuffer2) -addOtherTest("ExistentialTestArrayShift_ClassValueBuffer3", run_ExistentialTestArrayShift_ClassValueBuffer3) -addOtherTest("ExistentialTestArrayShift_ClassValueBuffer4", run_ExistentialTestArrayShift_ClassValueBuffer4) -addOtherTest("ExistentialTestArrayShift_IntValueBuffer0", run_ExistentialTestArrayShift_IntValueBuffer0) -addOtherTest("ExistentialTestArrayShift_IntValueBuffer1", run_ExistentialTestArrayShift_IntValueBuffer1) -addOtherTest("ExistentialTestArrayShift_IntValueBuffer2", run_ExistentialTestArrayShift_IntValueBuffer2) -addOtherTest("ExistentialTestArrayShift_IntValueBuffer3", run_ExistentialTestArrayShift_IntValueBuffer3) -addOtherTest("ExistentialTestArrayShift_IntValueBuffer4", run_ExistentialTestArrayShift_IntValueBuffer4) -addOtherTest("ExistentialTestArrayTwoMethodCalls_ClassValueBuffer1", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer1) -addOtherTest("ExistentialTestArrayTwoMethodCalls_ClassValueBuffer2", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer2) -addOtherTest("ExistentialTestArrayTwoMethodCalls_ClassValueBuffer3", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer3) -addOtherTest("ExistentialTestArrayTwoMethodCalls_ClassValueBuffer4", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer4) -addOtherTest("ExistentialTestArrayTwoMethodCalls_IntValueBuffer0", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer0) -addOtherTest("ExistentialTestArrayTwoMethodCalls_IntValueBuffer1", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer1) -addOtherTest("ExistentialTestArrayTwoMethodCalls_IntValueBuffer2", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer2) -addOtherTest("ExistentialTestArrayTwoMethodCalls_IntValueBuffer3", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer3) -addOtherTest("ExistentialTestArrayTwoMethodCalls_IntValueBuffer4", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer4) -addOtherTest("ExistentialTestMutatingAndNonMutating_ClassValueBuffer1", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer1) -addOtherTest("ExistentialTestMutatingAndNonMutating_ClassValueBuffer2", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer2) -addOtherTest("ExistentialTestMutatingAndNonMutating_ClassValueBuffer3", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer3) -addOtherTest("ExistentialTestMutatingAndNonMutating_ClassValueBuffer4", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer4) -addOtherTest("ExistentialTestMutatingAndNonMutating_IntValueBuffer0", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer0) -addOtherTest("ExistentialTestMutatingAndNonMutating_IntValueBuffer1", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer1) -addOtherTest("ExistentialTestMutatingAndNonMutating_IntValueBuffer2", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer2) -addOtherTest("ExistentialTestMutatingAndNonMutating_IntValueBuffer3", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer3) -addOtherTest("ExistentialTestMutatingAndNonMutating_IntValueBuffer4", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer4) -addOtherTest("ExistentialTestMutating_ClassValueBuffer1", run_ExistentialTestMutating_ClassValueBuffer1) -addOtherTest("ExistentialTestMutating_ClassValueBuffer2", run_ExistentialTestMutating_ClassValueBuffer2) -addOtherTest("ExistentialTestMutating_ClassValueBuffer3", run_ExistentialTestMutating_ClassValueBuffer3) -addOtherTest("ExistentialTestMutating_ClassValueBuffer4", run_ExistentialTestMutating_ClassValueBuffer4) -addOtherTest("ExistentialTestMutating_IntValueBuffer0", run_ExistentialTestMutating_IntValueBuffer0) -addOtherTest("ExistentialTestMutating_IntValueBuffer1", run_ExistentialTestMutating_IntValueBuffer1) -addOtherTest("ExistentialTestMutating_IntValueBuffer2", run_ExistentialTestMutating_IntValueBuffer2) -addOtherTest("ExistentialTestMutating_IntValueBuffer3", run_ExistentialTestMutating_IntValueBuffer3) -addOtherTest("ExistentialTestMutating_IntValueBuffer4", run_ExistentialTestMutating_IntValueBuffer4) -addOtherTest("ExistentialTestOneMethodCall_ClassValueBuffer1", run_ExistentialTestOneMethodCall_ClassValueBuffer1) -addOtherTest("ExistentialTestOneMethodCall_ClassValueBuffer2", run_ExistentialTestOneMethodCall_ClassValueBuffer2) -addOtherTest("ExistentialTestOneMethodCall_ClassValueBuffer3", run_ExistentialTestOneMethodCall_ClassValueBuffer3) -addOtherTest("ExistentialTestOneMethodCall_ClassValueBuffer4", run_ExistentialTestOneMethodCall_ClassValueBuffer4) -addOtherTest("ExistentialTestOneMethodCall_IntValueBuffer0", run_ExistentialTestOneMethodCall_IntValueBuffer0) -addOtherTest("ExistentialTestOneMethodCall_IntValueBuffer1", run_ExistentialTestOneMethodCall_IntValueBuffer1) -addOtherTest("ExistentialTestOneMethodCall_IntValueBuffer2", run_ExistentialTestOneMethodCall_IntValueBuffer2) -addOtherTest("ExistentialTestOneMethodCall_IntValueBuffer3", run_ExistentialTestOneMethodCall_IntValueBuffer3) -addOtherTest("ExistentialTestOneMethodCall_IntValueBuffer4", run_ExistentialTestOneMethodCall_IntValueBuffer4) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer1", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer1) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer2", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer2) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer3", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer3) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer4", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer4) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_IntValueBuffer0", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer0) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_IntValueBuffer1", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer1) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_IntValueBuffer2", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer2) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_IntValueBuffer3", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer3) -addOtherTest("ExistentialTestPassExistentialOneMethodCall_IntValueBuffer4", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer4) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer1", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer1) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer2", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer2) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer3", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer3) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer4", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer4) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer0", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer0) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer1", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer1) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer2", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer2) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer3", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer3) -addOtherTest("ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer4", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer4) -addOtherTest("ExistentialTestTwoMethodCalls_ClassValueBuffer1", run_ExistentialTestTwoMethodCalls_ClassValueBuffer1) -addOtherTest("ExistentialTestTwoMethodCalls_ClassValueBuffer2", run_ExistentialTestTwoMethodCalls_ClassValueBuffer2) -addOtherTest("ExistentialTestTwoMethodCalls_ClassValueBuffer3", run_ExistentialTestTwoMethodCalls_ClassValueBuffer3) -addOtherTest("ExistentialTestTwoMethodCalls_ClassValueBuffer4", run_ExistentialTestTwoMethodCalls_ClassValueBuffer4) -addOtherTest("ExistentialTestTwoMethodCalls_IntValueBuffer0", run_ExistentialTestTwoMethodCalls_IntValueBuffer0) -addOtherTest("ExistentialTestTwoMethodCalls_IntValueBuffer1", run_ExistentialTestTwoMethodCalls_IntValueBuffer1) -addOtherTest("ExistentialTestTwoMethodCalls_IntValueBuffer2", run_ExistentialTestTwoMethodCalls_IntValueBuffer2) -addOtherTest("ExistentialTestTwoMethodCalls_IntValueBuffer3", run_ExistentialTestTwoMethodCalls_IntValueBuffer3) -addOtherTest("ExistentialTestTwoMethodCalls_IntValueBuffer4", run_ExistentialTestTwoMethodCalls_IntValueBuffer4) +addTo(&otherTests, "Ackermann", run_Ackermann) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_ClassValueBuffer1", run_ExistentialTestArrayConditionalShift_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_ClassValueBuffer2", run_ExistentialTestArrayConditionalShift_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_ClassValueBuffer3", run_ExistentialTestArrayConditionalShift_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_ClassValueBuffer4", run_ExistentialTestArrayConditionalShift_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_IntValueBuffer0", run_ExistentialTestArrayConditionalShift_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_IntValueBuffer1", run_ExistentialTestArrayConditionalShift_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_IntValueBuffer2", run_ExistentialTestArrayConditionalShift_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_IntValueBuffer3", run_ExistentialTestArrayConditionalShift_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayConditionalShift_IntValueBuffer4", run_ExistentialTestArrayConditionalShift_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayMutating_ClassValueBuffer1", run_ExistentialTestArrayMutating_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayMutating_ClassValueBuffer2", run_ExistentialTestArrayMutating_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayMutating_ClassValueBuffer3", run_ExistentialTestArrayMutating_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayMutating_ClassValueBuffer4", run_ExistentialTestArrayMutating_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayMutating_IntValueBuffer0", run_ExistentialTestArrayMutating_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestArrayMutating_IntValueBuffer1", run_ExistentialTestArrayMutating_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayMutating_IntValueBuffer2", run_ExistentialTestArrayMutating_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayMutating_IntValueBuffer3", run_ExistentialTestArrayMutating_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayMutating_IntValueBuffer4", run_ExistentialTestArrayMutating_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_ClassValueBuffer1", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_ClassValueBuffer2", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_ClassValueBuffer3", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_ClassValueBuffer4", run_ExistentialTestArrayOneMethodCall_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_IntValueBuffer0", run_ExistentialTestArrayOneMethodCall_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_IntValueBuffer1", run_ExistentialTestArrayOneMethodCall_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_IntValueBuffer2", run_ExistentialTestArrayOneMethodCall_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_IntValueBuffer3", run_ExistentialTestArrayOneMethodCall_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayOneMethodCall_IntValueBuffer4", run_ExistentialTestArrayOneMethodCall_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayShift_ClassValueBuffer1", run_ExistentialTestArrayShift_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayShift_ClassValueBuffer2", run_ExistentialTestArrayShift_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayShift_ClassValueBuffer3", run_ExistentialTestArrayShift_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayShift_ClassValueBuffer4", run_ExistentialTestArrayShift_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayShift_IntValueBuffer0", run_ExistentialTestArrayShift_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestArrayShift_IntValueBuffer1", run_ExistentialTestArrayShift_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayShift_IntValueBuffer2", run_ExistentialTestArrayShift_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayShift_IntValueBuffer3", run_ExistentialTestArrayShift_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayShift_IntValueBuffer4", run_ExistentialTestArrayShift_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer1", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer2", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer3", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_ClassValueBuffer4", run_ExistentialTestArrayTwoMethodCalls_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_IntValueBuffer0", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_IntValueBuffer1", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_IntValueBuffer2", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_IntValueBuffer3", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestArrayTwoMethodCalls_IntValueBuffer4", run_ExistentialTestArrayTwoMethodCalls_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_ClassValueBuffer1", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_ClassValueBuffer2", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_ClassValueBuffer3", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_ClassValueBuffer4", run_ExistentialTestMutatingAndNonMutating_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_IntValueBuffer0", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_IntValueBuffer1", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_IntValueBuffer2", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_IntValueBuffer3", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestMutatingAndNonMutating_IntValueBuffer4", run_ExistentialTestMutatingAndNonMutating_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestMutating_ClassValueBuffer1", run_ExistentialTestMutating_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestMutating_ClassValueBuffer2", run_ExistentialTestMutating_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestMutating_ClassValueBuffer3", run_ExistentialTestMutating_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestMutating_ClassValueBuffer4", run_ExistentialTestMutating_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestMutating_IntValueBuffer0", run_ExistentialTestMutating_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestMutating_IntValueBuffer1", run_ExistentialTestMutating_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestMutating_IntValueBuffer2", run_ExistentialTestMutating_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestMutating_IntValueBuffer3", run_ExistentialTestMutating_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestMutating_IntValueBuffer4", run_ExistentialTestMutating_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestOneMethodCall_ClassValueBuffer1", run_ExistentialTestOneMethodCall_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestOneMethodCall_ClassValueBuffer2", run_ExistentialTestOneMethodCall_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestOneMethodCall_ClassValueBuffer3", run_ExistentialTestOneMethodCall_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestOneMethodCall_ClassValueBuffer4", run_ExistentialTestOneMethodCall_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestOneMethodCall_IntValueBuffer0", run_ExistentialTestOneMethodCall_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestOneMethodCall_IntValueBuffer1", run_ExistentialTestOneMethodCall_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestOneMethodCall_IntValueBuffer2", run_ExistentialTestOneMethodCall_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestOneMethodCall_IntValueBuffer3", run_ExistentialTestOneMethodCall_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestOneMethodCall_IntValueBuffer4", run_ExistentialTestOneMethodCall_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer1", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer2", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer3", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer4", run_ExistentialTestPassExistentialOneMethodCall_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer0", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer1", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer2", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer3", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestPassExistentialOneMethodCall_IntValueBuffer4", run_ExistentialTestPassExistentialOneMethodCall_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer1", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer2", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer3", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer4", run_ExistentialTestPassExistentialTwoMethodCalls_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer0", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer1", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer2", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer3", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer4", run_ExistentialTestPassExistentialTwoMethodCalls_IntValueBuffer4) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_ClassValueBuffer1", run_ExistentialTestTwoMethodCalls_ClassValueBuffer1) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_ClassValueBuffer2", run_ExistentialTestTwoMethodCalls_ClassValueBuffer2) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_ClassValueBuffer3", run_ExistentialTestTwoMethodCalls_ClassValueBuffer3) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_ClassValueBuffer4", run_ExistentialTestTwoMethodCalls_ClassValueBuffer4) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_IntValueBuffer0", run_ExistentialTestTwoMethodCalls_IntValueBuffer0) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_IntValueBuffer1", run_ExistentialTestTwoMethodCalls_IntValueBuffer1) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_IntValueBuffer2", run_ExistentialTestTwoMethodCalls_IntValueBuffer2) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_IntValueBuffer3", run_ExistentialTestTwoMethodCalls_IntValueBuffer3) +addTo(&otherTests, "ExistentialTestTwoMethodCalls_IntValueBuffer4", run_ExistentialTestTwoMethodCalls_IntValueBuffer4) +addTo(&otherTests, "Fibonacci", run_Fibonacci) // String tests, an extended benchmark suite exercising finer-granularity // behavior of our Strings. -addStringTest("StringWalkASCIIScalars", run_StringWalkASCIIScalars) -addStringTest("StringWalkASCIICharacters", run_StringWalkASCIICharacters) -addStringTest("StringWalkUnicodeScalars", run_StringWalkUnicodeScalars) -addStringTest("StringWalkUnicodeCharacters", run_StringWalkUnicodeCharacters) -addStringTest("StringWalkMixedScalars", run_StringWalkMixedScalars) -addStringTest("StringWalkMixedCharacters", run_StringWalkMixedCharacters) -addStringTest("StringWalkASCIIScalarsBackwards", run_StringWalkASCIIScalarsBackwards) -addStringTest("StringWalkASCIICharactersBackwards", run_StringWalkASCIICharactersBackwards) -addStringTest("StringWalkUnicodeScalarsBackwards", run_StringWalkUnicodeScalarsBackwards) -addStringTest("StringWalkUnicodeCharactersBackwards", run_StringWalkUnicodeCharactersBackwards) -addStringTest("StringWalkMixedScalarsBackwards", run_StringWalkMixedScalarsBackwards) -addStringTest("StringWalkMixedCharactersBackwards", run_StringWalkMixedCharactersBackwards) +addTo(&stringTests, "StringWalkASCIICharacters", run_StringWalkASCIICharacters) +addTo(&stringTests, "StringWalkASCIICharactersBackwards", run_StringWalkASCIICharactersBackwards) +addTo(&stringTests, "StringWalkASCIIScalars", run_StringWalkASCIIScalars) +addTo(&stringTests, "StringWalkASCIIScalarsBackwards", run_StringWalkASCIIScalarsBackwards) +addTo(&stringTests, "StringWalkMixedCharacters", run_StringWalkMixedCharacters) +addTo(&stringTests, "StringWalkMixedCharactersBackwards", run_StringWalkMixedCharactersBackwards) +addTo(&stringTests, "StringWalkMixedScalars", run_StringWalkMixedScalars) +addTo(&stringTests, "StringWalkMixedScalarsBackwards", run_StringWalkMixedScalarsBackwards) +addTo(&stringTests, "StringWalkUnicodeCharacters", run_StringWalkUnicodeCharacters) +addTo(&stringTests, "StringWalkUnicodeCharactersBackwards", run_StringWalkUnicodeCharactersBackwards) +addTo(&stringTests, "StringWalkUnicodeScalars", run_StringWalkUnicodeScalars) +addTo(&stringTests, "StringWalkUnicodeScalarsBackwards", run_StringWalkUnicodeScalarsBackwards) main() diff --git a/benchmark/utils/main.swift.gyb b/benchmark/utils/main.swift.gyb new file mode 100644 index 0000000000000..9dfdf2c23daed --- /dev/null +++ b/benchmark/utils/main.swift.gyb @@ -0,0 +1,89 @@ +//===--- main.swift -------------------------------------------*- swift -*-===// +// +// This source file is part of the Swift.org open source project +// +// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors +// Licensed under Apache License v2.0 with Runtime Library Exception +// +// See https://swift.org/LICENSE.txt for license information +// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +// +//===----------------------------------------------------------------------===// + +% # Ignore the following warning. This _is_ the correct file to edit. +//////////////////////////////////////////////////////////////////////////////// +// WARNING: This file is manually generated from .gyb template and should not +// be directly modified. Instead, make changes to main.swift.gyb and run +// scripts/generate_harness/generate_harness.py to regenerate this file. +//////////////////////////////////////////////////////////////////////////////// +%{ +from gyb_benchmark_support import ( + tests, + multisource_benches, + all_run_funcs +) + +import re + +imports = sorted(tests + [msb.name for msb in multisource_benches]) + +# The list of all "run_" functions is split into 3 test suites. +# By default all tests belong to the "precommit" test suite. +# Functions that match the following regular expressions will be in the "other" +# and "string" test suites. + +other_re = [ + "Ackermann", + "Fibonacci", + "ExistentialTest.+" +] + +string_re = [ + "StringWalk.+", +] + +def matches(included_regexes, run_func): + for regexp in included_regexes: + if re.match(regexp, run_func): + return True + return False + +other_tests = filter(lambda x: matches(other_re, x), all_run_funcs) +string_tests = filter(lambda x: matches(string_re, x), all_run_funcs) +ignored_run_funcs = other_tests + string_tests +run_funcs = filter(lambda x: x not in ignored_run_funcs, all_run_funcs) +}% + +// This is just a driver for performance overview tests. +import TestsUtils +import DriverUtils +% for IMPORT in imports: +import ${IMPORT} +% end + +@inline(__always) +private func addTo( + _ testSuite: inout [String : (Int) -> ()], + _ name: String, + _ function: @escaping (Int) -> () +) { + testSuite[name] = function +} + +// The main test suite: precommit tests +% for run_func in run_funcs: +addTo(&precommitTests, "${run_func}", run_${run_func}) +% end + +// Other tests +% for test_name in other_tests: +addTo(&otherTests, "${test_name }", run_${test_name}) +% end + +// String tests, an extended benchmark suite exercising finer-granularity +// behavior of our Strings. +% for test_name in string_tests: +addTo(&stringTests, "${test_name}", run_${test_name}) +% end + +main() diff --git a/utils/gyb_benchmark_support.py b/utils/gyb_benchmark_support.py new file mode 100644 index 0000000000000..f9cfa8834f1cf --- /dev/null +++ b/utils/gyb_benchmark_support.py @@ -0,0 +1,59 @@ +# ===--- gyb_benchmark_support.py --------------------*- coding: utf-8 -*-===// +# +# This source file is part of the Swift.org open source project +# +# Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors +# Licensed under Apache License v2.0 with Runtime Library Exception +# +# See https://swift.org/LICENSE.txt for license information +# See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors + +import os +import re + + +script_dir = os.path.dirname(os.path.realpath(__file__)) +perf_dir = os.path.realpath(os.path.join(script_dir, '../benchmark')) +single_source_dir = os.path.join(perf_dir, 'single-source') +multi_source_dir = os.path.join(perf_dir, 'multi-source') + + +def all_files(directory, extension): # matching: [directory]/**/*[extension] + return [ + os.path.join(root, f) + for root, _, files in os.walk(directory) + for f in files if f.endswith(extension) + ] + + +# CMakeList single-source +test_files = all_files(single_source_dir, '.swift') +tests = sorted(os.path.basename(x).split('.')[0] for x in test_files) + + +# CMakeList multi-source +class MultiSourceBench(object): + def __init__(self, path): + self.name = os.path.basename(path) + self.files = [x for x in os.listdir(path) + if x.endswith('.swift')] + + +multisource_benches = [ + MultiSourceBench(os.path.join(multi_source_dir, x)) + for x in os.listdir(multi_source_dir) + if os.path.isdir(os.path.join(multi_source_dir, x)) +] if os.path.isdir(multi_source_dir) else [] + + +def get_run_funcs(filepath): + content = open(filepath).read() + return re.findall(r'func run_(.*?)\(', content) + + +def find_run_funcs(): + swift_files = all_files(perf_dir, '.swift') + return sorted([func for f in swift_files for func in get_run_funcs(f)]) + + +all_run_funcs = find_run_funcs()