Commit 132c09ed authored by machenbach's avatar machenbach Committed by Commit bot

[Ignition] Test ignition on all bots.

This adds ignition to the testing variants that are run on all
bots.

Failing tests can only be skipped with the NO_IGNITION
keyword in status files. Existing expectations for the
ignition_turbofan variant are all duplicated and use the
NO_IGNITION keyword as well now.

BUG=v8:4280
LOG=N
NOTRY=true

Review-Url: https://codereview.chromium.org/1804003002
Cr-Commit-Position: refs/heads/master@{#35865}
parent 5ea84123
......@@ -132,6 +132,78 @@
'test-debug/CallFunctionInDebugger': [PASS, ['mode == debug', SLOW]],
'test-strings/StringOOM*': [PASS, ['mode == debug', SKIP]],
'test-serialize/CustomSnapshotDataBlobImmortalImmovableRoots': [PASS, ['mode == debug', SKIP]],
############################################################################
# Ignition
# TODO(rmcilroy,4680): Check failed: !function->shared()->is_compiled() || function->IsOptimized().
'test-heap/TestCodeFlushingPreAged': [PASS, NO_IGNITION],
'test-heap/TestCodeFlushingIncrementalScavenge': [PASS, NO_IGNITION],
'test-heap/TestCodeFlushing': [PASS, NO_IGNITION],
'test-heap/TestCodeFlushingIncremental': [PASS, NO_IGNITION],
'test-heap/TestCodeFlushingIncrementalAbort': [PASS, ['mode == debug or dcheck_always_on == True', NO_IGNITION]],
# TODO(rmcilroy,4766): Requires BytecodeGraphBuilder to track source position
# on nodes (behind --turbo_source_positions flag).
'test-cpu-profiler/TickLinesOptimized': [PASS, NO_IGNITION],
# TODO(rmcilroy,4680): Fails to find the correct function name for the
# anonymous function. Fails without ignition but with --no-lazy also, so seems
# to be an issue when eagerly parsing.
'test-func-name-inference/ReturnAnonymousFunction': [PASS, NO_IGNITION],
# TODO(mythria,4780): Related to type feedback support for calls.
'test-feedback-vector/VectorCallICStates': [PASS, NO_IGNITION],
'test-compiler/FeedbackVectorPreservedAcrossRecompiles': [PASS, NO_IGNITION],
'test-heap/WeakFunctionInConstructor': [PASS, NO_IGNITION],
'test-heap/IncrementalMarkingClearsMonomorphicConstructor': [PASS, NO_IGNITION],
'test-heap/IncrementalMarkingPreservesMonomorphicConstructor': [PASS, NO_IGNITION],
'test-heap/IncrementalMarkingPreservesMonomorphicCallIC': [PASS, NO_IGNITION],
'test-heap/CellsInOptimizedCodeAreWeak': [PASS, NO_IGNITION],
# TODO(mythria,4680): Lack of code-ageing in interpreter.
'test-heap/Regress169209': [PASS, NO_IGNITION],
# TODO(mythria,4680): Lack of code-ageing and/or lack of compilation cache
# in interpreter.
'test-heap/CompilationCacheCachingBehavior': [PASS, NO_IGNITION],
# TODO(mstarzinger,4680): Fails due to the turbo-asm pipeline only being taken
# in compiler.cc GetLazyCode for uncompiled code, and no similar path for eager
# code.
'test-api/TurboAsmDisablesNeuter': [PASS, NO_IGNITION],
# TODO(mvstanton,4900): CHECK(!g_function->is_compiled());
'test-heap/TestUseOfIncrementalBarrierOnCompileLazy': [PASS, NO_IGNITION],
# TODO(rmcilroy,4837): We don't set a LoadContextSlot for a function as
# immutable in the BytecodeGraphBuilder, therefore no inlining happens.
'test-run-inlining/InlineLoopGuardedTwice': [PASS, NO_IGNITION],
'test-run-inlining/InlineSurplusArgumentsDeopt': [PASS, NO_IGNITION],
'test-run-inlining/InlineTwice': [PASS, NO_IGNITION],
'test-run-inlining/InlineSurplusArgumentsObject': [PASS, NO_IGNITION],
'test-run-inlining/InlineTwiceDependentDiamond': [PASS, NO_IGNITION],
'test-run-inlining/InlineWithArguments': [PASS, NO_IGNITION],
'test-run-inlining/InlineLoopUnguardedTwice': [PASS, NO_IGNITION],
'test-run-inlining/InlineOmitArgumentsObject': [PASS, NO_IGNITION],
'test-run-inlining/InlineLoopUnguardedOnce': [PASS, NO_IGNITION],
'test-run-inlining/InlineOmitArgumentsDeopt': [PASS, NO_IGNITION],
'test-run-inlining/InlineTwiceDependentDiamondDifferent': [PASS, NO_IGNITION],
'test-run-inlining/SimpleInliningContext': [PASS, NO_IGNITION],
'test-run-inlining/InlineMutuallyRecursive': [PASS, NO_IGNITION],
'test-run-inlining/InlineLoopGuardedEmpty': [PASS, NO_IGNITION],
'test-run-inlining/InlineLoopGuardedOnce': [PASS, NO_IGNITION],
'test-run-inlining/InlineOmitArguments': [PASS, NO_IGNITION],
'test-run-inlining/SimpleInlining': [PASS, NO_IGNITION],
'test-run-inlining/InlineLoopUnguardedEmpty': [PASS, NO_IGNITION],
'test-run-inlining/InlineNestedBuiltin': [PASS, NO_IGNITION],
'test-run-inlining/InlineSurplusArguments': [PASS, NO_IGNITION],
'test-run-inlining/InlineBuiltin': [PASS, NO_IGNITION],
'test-run-inlining/InlineTwiceDependent': [PASS, NO_IGNITION],
'test-run-inlining/SimpleInliningContextDeopt': [PASS, NO_IGNITION],
# BUG(4751). Flaky with ignition and tsan.
'test-cpu-profiler/JsNativeJsSample': [PASS, ['tsan', NO_IGNITION]],
}], # ALWAYS
##############################################################################
......
......@@ -282,6 +282,53 @@
'harmony/unicode-regexp-ignore-case-noi18n': [FAIL, ['no_i18n == True', PASS]],
# desugaring regexp property class relies on ICU.
'harmony/regexp-property-*': [PASS, ['no_i18n == True', FAIL]],
############################################################################
# Ignition
# TODO(rmcilroy,4765): assertion failures in LiveEdit tests.
'debug-liveedit-restart-frame': [PASS, NO_IGNITION],
'debug-liveedit-literals': [PASS, NO_IGNITION],
'debug-liveedit-3': [PASS, NO_IGNITION],
'debug-liveedit-1': [PASS, NO_IGNITION],
'debug-liveedit-2': [PASS, NO_IGNITION],
'debug-liveedit-patch-positions-replace': [PASS, NO_IGNITION],
'debug-liveedit-patch-positions': [PASS, NO_IGNITION],
'debug-liveedit-stepin': [PASS, NO_IGNITION],
'debug-liveedit-newsource': [PASS, NO_IGNITION],
'debug-liveedit-stack-padding': [PASS, NO_IGNITION],
'debug-liveedit-breakpoints': [PASS, NO_IGNITION],
'es6/debug-liveedit-new-target-1': [PASS, NO_IGNITION],
'es6/debug-liveedit-new-target-2': [PASS, NO_IGNITION],
'es6/debug-liveedit-new-target-3': [PASS, NO_IGNITION],
'es6/generators-debug-liveedit': [PASS, NO_IGNITION],
# TODO(mythria, 4780): Related to type feedback for calls in interpreter.
'array-literal-feedback': [PASS, NO_IGNITION],
'regress/regress-4121': [PASS, NO_IGNITION],
# TODO(mythria, 4764): lack of osr support.
'regress/regress-2618': [PASS, NO_IGNITION],
# TODO(mythria, 4764): lack of osr support. The tests waits in a loop
# till it is optimized. So test timeouts.
'array-literal-transitions': [PASS, NO_IGNITION],
# TODO(mythria, 4680): Relate to GC and ignition holding references to
# objects.
'es6/mirror-collections': [PASS, NO_IGNITION],
# TODO(rmcilroy, 4680): Script throws RangeError as expected, but does so during
# eager compile of the whole script instead of during lazy compile of the function
# f(), so we can't catch the exception in the try/catch. Skip because on some
# platforms the stack limit is different and the exception doesn't fire.
'regress/regress-crbug-589472': [PASS, NO_IGNITION],
# Debugger test cases that pass with ignition, but not full-codegen.
# These differences between full-codegen and ignition are deliberate.
'ignition/elided-instruction-no-ignition': [PASS, NO_IGNITION],
'wasm/asm-wasm-f32': [PASS, ['arch in [arm64]', NO_IGNITION]],
'wasm/asm-wasm-f64': [PASS, ['arch in [arm64]', NO_IGNITION]],
}], # ALWAYS
['novfp3 == True', {
......@@ -361,6 +408,16 @@
# BUG(v8:4779): Crashes flakily with stress mode on arm64.
'array-splice': [PASS, SLOW, ['arch == arm64', FAST_VARIANTS]],
# TODO(oth,4680): failures from the bots.
'ignition/elided-instruction': [PASS, NO_IGNITION],
'regress/regress-269': [PASS, NO_IGNITION],
# TODO(yangguo,4961): issues with the compiler pipeline.
'es6/typedarray-copywithin': [PASS, NO_IGNITION],
'es6/block-conflicts': [PASS, NO_IGNITION],
'es6/block-conflicts-sloppy': [PASS, NO_IGNITION],
'mul-exhaustive-part10': [PASS, NO_IGNITION],
}], # 'gc_stress == True'
##############################################################################
......@@ -450,6 +507,13 @@
'unicodelctest': [PASS, SLOW],
'unicode-test': [PASS, SLOW],
'whitespaces': [PASS, TIMEOUT, SLOW],
# TODO(rmcilroy,4680): Arm64 specific timeouts.
'asm/construct-double': [PASS, NO_IGNITION],
'compiler/osr-one': [PASS, NO_IGNITION],
'compiler/osr-two': [PASS, NO_IGNITION],
'wasm/asm-wasm-i32': [PASS, NO_IGNITION],
'wasm/asm-wasm-u32': [PASS, NO_IGNITION],
}], # 'arch == arm64'
['arch == arm64 and mode == debug and simulator_run == True', {
......@@ -488,6 +552,17 @@
'deep-recursion': [SKIP],
'regress/regress-builtinbust-7': [SKIP],
'string-localecompare': [SKIP],
# TODO(mythria,4680): All of these tests have large loops and hence slow
# and timeout.
'compiler/osr-big': [PASS, NO_IGNITION],
'compiler/osr-nested': [PASS, NO_IGNITION],
'regress/regress-298269': [PASS, NO_IGNITION],
'regress/regress-crbug-319860': [PASS, NO_IGNITION],
'regress/regress-deep-proto': [PASS, NO_IGNITION],
'try': [PASS, NO_IGNITION],
# Too slow for interpreter and msan.
'es6/tail-call-megatest*': [PASS, NO_IGNITION],
}], # 'msan == True'
##############################################################################
......@@ -533,6 +608,11 @@
'regress/regress-91008': [PASS, SLOW],
'regress/regress-json-stringify-gc': [PASS, SLOW],
'string-indexof-2': [PASS, TIMEOUT],
# TODO(rmcilroy,4680): Arm specific timeouts.
'compiler/osr-one': [PASS, NO_IGNITION],
'compiler/osr-two': [PASS, NO_IGNITION],
'regress/regress-1257': [PASS, NO_IGNITION],
}], # 'arch == arm or arch == android_arm'
##############################################################################
......
......@@ -100,6 +100,13 @@
# Skip tests that timeout.
}], # 'gc_stress == True and mode == debug'
##############################################################################
['msan', {
# TODO(mythria,4680): Too slow and timeout on ignition.
'dfg-double-vote-fuzz': [PASS, NO_IGNITION],
'dfg-int-overflow-in-loop': [PASS, NO_IGNITION],
}], # msan
##############################################################################
['(ignition or ignition_turbofan) and msan', {
# TODO(mythria,4680): Too slow and timeout on ignition.
......
......@@ -105,6 +105,7 @@ TIMEOUT_DEFAULT = 60
VARIANTS = ["default", "stress", "turbofan"]
EXHAUSTIVE_VARIANTS = VARIANTS + [
"ignition",
"nocrankshaft",
"turbofan_opt",
]
......
......@@ -36,6 +36,7 @@ TIMEOUT = "TIMEOUT"
CRASH = "CRASH"
SLOW = "SLOW"
FAST_VARIANTS = "FAST_VARIANTS"
NO_IGNITION = "NO_IGNITION"
NO_VARIANTS = "NO_VARIANTS"
# These are just for the status files and are mapped below in DEFS:
FAIL_OK = "FAIL_OK"
......@@ -46,7 +47,8 @@ ALWAYS = "ALWAYS"
KEYWORDS = {}
for key in [SKIP, FAIL, PASS, OKAY, TIMEOUT, CRASH, SLOW, FAIL_OK,
FAST_VARIANTS, NO_VARIANTS, PASS_OR_FAIL, FAIL_SLOPPY, ALWAYS]:
FAST_VARIANTS, NO_IGNITION, NO_VARIANTS, PASS_OR_FAIL, FAIL_SLOPPY,
ALWAYS]:
KEYWORDS[key] = key
DEFS = {FAIL_OK: [FAIL, OKAY],
......@@ -70,6 +72,10 @@ def IsSlow(outcomes):
return SLOW in outcomes
def NoIgnitionVariant(outcomes):
return NO_IGNITION in outcomes
def OnlyStandardVariant(outcomes):
return NO_VARIANTS in outcomes
......
......@@ -41,7 +41,7 @@ ALL_VARIANT_FLAGS = {
"turbofan": [["--turbo"]],
"turbofan_opt": [["--turbo", "--always-opt"]],
"nocrankshaft": [["--nocrankshaft"]],
"ignition": [["--ignition", "--turbo"]],
"ignition": [["--ignition"]],
"ignition_turbofan": [["--ignition", "--turbo"]],
"preparser": [["--min-preparse-length=0"]],
}
......@@ -52,7 +52,7 @@ FAST_VARIANT_FLAGS = {
"stress": [["--stress-opt"]],
"turbofan": [["--turbo"]],
"nocrankshaft": [["--nocrankshaft"]],
"ignition": [["--ignition", "--turbo"]],
"ignition": [["--ignition"]],
"ignition_turbofan": [["--ignition", "--turbo"]],
"preparser": [["--min-preparse-length=0"]],
}
......@@ -62,6 +62,7 @@ ALL_VARIANTS = set(["default", "stress", "turbofan", "turbofan_opt",
"preparser"])
FAST_VARIANTS = set(["default", "turbofan"])
STANDARD_VARIANT = set(["default"])
IGNITION_VARIANT = set(["ignition"])
class VariantGenerator(object):
......@@ -72,12 +73,15 @@ class VariantGenerator(object):
self.standard_variant = STANDARD_VARIANT & variants
def FilterVariantsByTest(self, testcase):
if testcase.outcomes and statusfile.OnlyStandardVariant(
testcase.outcomes):
result = self.all_variants
if testcase.outcomes:
if statusfile.OnlyStandardVariant(testcase.outcomes):
return self.standard_variant
if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes):
return self.fast_variants
return self.all_variants
if statusfile.OnlyFastVariants(testcase.outcomes):
result = self.fast_variants
if statusfile.NoIgnitionVariant(testcase.outcomes):
result -= IGNITION_VARIANT
return result
def GetFlagSets(self, testcase, variant):
if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment