Add try release mode to test runner.
Also refactor the configuration of modes to have the level of abstraction in one json dict. In a follow up CL, the new mode could be added to quickcheck and release trybots. Review URL: https://codereview.chromium.org/882983002 Cr-Commit-Position: refs/heads/master@{#26322}
This commit is contained in:
parent
df5b2ee334
commit
7a8d0c02a5
@ -81,17 +81,46 @@ TEST_MAP = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TIMEOUT_DEFAULT = 60
|
TIMEOUT_DEFAULT = 60
|
||||||
TIMEOUT_SCALEFACTOR = {"debug" : 4,
|
|
||||||
"release" : 1 }
|
|
||||||
|
|
||||||
VARIANTS = ["default", "stress", "turbofan", "nocrankshaft"]
|
VARIANTS = ["default", "stress", "turbofan", "nocrankshaft"]
|
||||||
|
|
||||||
MODE_FLAGS = {
|
DEBUG_FLAGS = ["--nohard-abort", "--nodead-code-elimination",
|
||||||
"debug" : ["--nohard-abort", "--nodead-code-elimination",
|
"--nofold-constants", "--enable-slow-asserts",
|
||||||
"--nofold-constants", "--enable-slow-asserts",
|
"--debug-code", "--verify-heap"]
|
||||||
"--debug-code", "--verify-heap"],
|
RELEASE_FLAGS = ["--nohard-abort", "--nodead-code-elimination",
|
||||||
"release" : ["--nohard-abort", "--nodead-code-elimination",
|
"--nofold-constants"]
|
||||||
"--nofold-constants"]}
|
|
||||||
|
MODES = {
|
||||||
|
"debug": {
|
||||||
|
"flags": DEBUG_FLAGS,
|
||||||
|
"timeout_scalefactor": 4,
|
||||||
|
"status_mode": "debug",
|
||||||
|
"execution_mode": "debug",
|
||||||
|
"output_folder": "debug",
|
||||||
|
},
|
||||||
|
"optdebug": {
|
||||||
|
"flags": DEBUG_FLAGS,
|
||||||
|
"timeout_scalefactor": 4,
|
||||||
|
"status_mode": "debug",
|
||||||
|
"execution_mode": "debug",
|
||||||
|
"output_folder": "optdebug",
|
||||||
|
},
|
||||||
|
"release": {
|
||||||
|
"flags": RELEASE_FLAGS,
|
||||||
|
"timeout_scalefactor": 1,
|
||||||
|
"status_mode": "release",
|
||||||
|
"execution_mode": "release",
|
||||||
|
"output_folder": "release",
|
||||||
|
},
|
||||||
|
# This mode requires v8 to be compiled with dchecks and slow dchecks.
|
||||||
|
"tryrelease": {
|
||||||
|
"flags": RELEASE_FLAGS + ["--enable-slow-asserts"],
|
||||||
|
"timeout_scalefactor": 2,
|
||||||
|
"status_mode": "debug",
|
||||||
|
"execution_mode": "release",
|
||||||
|
"output_folder": "release",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
GC_STRESS_FLAGS = ["--gc-interval=500", "--stress-compaction",
|
GC_STRESS_FLAGS = ["--gc-interval=500", "--stress-compaction",
|
||||||
"--concurrent-recompilation-queue-length=64",
|
"--concurrent-recompilation-queue-length=64",
|
||||||
@ -277,7 +306,7 @@ def ProcessOptions(options):
|
|||||||
options.mode = ",".join([tokens[1] for tokens in options.arch_and_mode])
|
options.mode = ",".join([tokens[1] for tokens in options.arch_and_mode])
|
||||||
options.mode = options.mode.split(",")
|
options.mode = options.mode.split(",")
|
||||||
for mode in options.mode:
|
for mode in options.mode:
|
||||||
if not mode.lower() in ["debug", "release", "optdebug"]:
|
if not mode.lower() in MODES:
|
||||||
print "Unknown mode %s" % mode
|
print "Unknown mode %s" % mode
|
||||||
return False
|
return False
|
||||||
if options.arch in ["auto", "native"]:
|
if options.arch in ["auto", "native"]:
|
||||||
@ -459,18 +488,20 @@ def Execute(arch, mode, args, options, suites, workspace):
|
|||||||
shell_dir = options.shell_dir
|
shell_dir = options.shell_dir
|
||||||
if not shell_dir:
|
if not shell_dir:
|
||||||
if options.buildbot:
|
if options.buildbot:
|
||||||
|
# TODO(machenbach): Get rid of different output folder location on
|
||||||
|
# buildbot. Currently this is capitalized Release and Debug.
|
||||||
shell_dir = os.path.join(workspace, options.outdir, mode)
|
shell_dir = os.path.join(workspace, options.outdir, mode)
|
||||||
mode = mode.lower()
|
mode = mode.lower()
|
||||||
else:
|
else:
|
||||||
shell_dir = os.path.join(workspace, options.outdir,
|
shell_dir = os.path.join(
|
||||||
"%s.%s" % (arch, mode))
|
workspace,
|
||||||
|
options.outdir,
|
||||||
|
"%s.%s" % (arch, MODES[mode]["output_folder"]),
|
||||||
|
)
|
||||||
shell_dir = os.path.relpath(shell_dir)
|
shell_dir = os.path.relpath(shell_dir)
|
||||||
|
|
||||||
if mode == "optdebug":
|
|
||||||
mode = "debug" # "optdebug" is just an alias.
|
|
||||||
|
|
||||||
# Populate context object.
|
# Populate context object.
|
||||||
mode_flags = MODE_FLAGS[mode]
|
mode_flags = MODES[mode]["flags"]
|
||||||
timeout = options.timeout
|
timeout = options.timeout
|
||||||
if timeout == -1:
|
if timeout == -1:
|
||||||
# Simulators are slow, therefore allow a longer default timeout.
|
# Simulators are slow, therefore allow a longer default timeout.
|
||||||
@ -479,13 +510,13 @@ def Execute(arch, mode, args, options, suites, workspace):
|
|||||||
else:
|
else:
|
||||||
timeout = TIMEOUT_DEFAULT;
|
timeout = TIMEOUT_DEFAULT;
|
||||||
|
|
||||||
timeout *= TIMEOUT_SCALEFACTOR[mode]
|
timeout *= MODES[mode]["timeout_scalefactor"]
|
||||||
|
|
||||||
if options.predictable:
|
if options.predictable:
|
||||||
# Predictable mode is slower.
|
# Predictable mode is slower.
|
||||||
timeout *= 2
|
timeout *= 2
|
||||||
|
|
||||||
ctx = context.Context(arch, mode, shell_dir,
|
ctx = context.Context(arch, MODES[mode]["execution_mode"], shell_dir,
|
||||||
mode_flags, options.verbose,
|
mode_flags, options.verbose,
|
||||||
timeout, options.isolates,
|
timeout, options.isolates,
|
||||||
options.command_prefix,
|
options.command_prefix,
|
||||||
@ -509,7 +540,7 @@ def Execute(arch, mode, args, options, suites, workspace):
|
|||||||
"deopt_fuzzer": False,
|
"deopt_fuzzer": False,
|
||||||
"gc_stress": options.gc_stress,
|
"gc_stress": options.gc_stress,
|
||||||
"isolates": options.isolates,
|
"isolates": options.isolates,
|
||||||
"mode": mode,
|
"mode": MODES[mode]["status_mode"],
|
||||||
"no_i18n": options.no_i18n,
|
"no_i18n": options.no_i18n,
|
||||||
"no_snap": options.no_snap,
|
"no_snap": options.no_snap,
|
||||||
"simulator_run": simulator_run,
|
"simulator_run": simulator_run,
|
||||||
@ -561,7 +592,8 @@ def Execute(arch, mode, args, options, suites, workspace):
|
|||||||
progress_indicator, options.junitout, options.junittestsuite)
|
progress_indicator, options.junitout, options.junittestsuite)
|
||||||
if options.json_test_results:
|
if options.json_test_results:
|
||||||
progress_indicator = progress.JsonTestProgressIndicator(
|
progress_indicator = progress.JsonTestProgressIndicator(
|
||||||
progress_indicator, options.json_test_results, arch, mode)
|
progress_indicator, options.json_test_results, arch,
|
||||||
|
MODES[mode]["execution_mode"])
|
||||||
|
|
||||||
run_networked = not options.no_network
|
run_networked = not options.no_network
|
||||||
if not run_networked:
|
if not run_networked:
|
||||||
|
Loading…
Reference in New Issue
Block a user