blob: da6d5e8356fcb48d16a388dd35dd0c020a036d43 [file] [log] [blame]
//===--- 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",
"ExistentialTest.+",
"Fibonacci",
"HashQuadratic"
]
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()