[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 Committed: https://crrev.com/132c09ed619f23fb7c6d26a4e3552c703389eabd Cr-Commit-Position: refs/heads/master@{#35865} Review-Url: https://codereview.chromium.org/1804003002 Cr-Commit-Position: refs/heads/master@{#35926}
This commit is contained in:
parent
bf1797b1d0
commit
8ba46715b0
@ -132,6 +132,82 @@
|
||||
'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]],
|
||||
|
||||
'test-cpu-profiler/Inlining': [PASS, NO_IGNITION],
|
||||
'test-heap/ResetSharedFunctionInfoCountersDuringIncrementalMarking': [PASS, NO_IGNITION],
|
||||
'test-heap/ResetSharedFunctionInfoCountersDuringMarkSweep': [PASS, NO_IGNITION],
|
||||
}], # ALWAYS
|
||||
|
||||
##############################################################################
|
||||
|
@ -282,6 +282,89 @@
|
||||
'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]],
|
||||
|
||||
'assert-opt-and-deopt': [PASS, NO_IGNITION],
|
||||
'compiler/deopt-inlined-from-call': [PASS, NO_IGNITION],
|
||||
'compiler/increment-typefeedback': [PASS, NO_IGNITION],
|
||||
'compiler/manual-concurrent-recompile': [PASS, NO_IGNITION],
|
||||
'constant-folding-2': [PASS, NO_IGNITION],
|
||||
'debug-is-active': [PASS, NO_IGNITION],
|
||||
'deopt-with-fp-regs': [PASS, NO_IGNITION],
|
||||
'deserialize-optimize-inner': [PASS, NO_IGNITION],
|
||||
'div-mul-minus-one': [PASS, NO_IGNITION],
|
||||
'double-intrinsics': [PASS, NO_IGNITION],
|
||||
'elements-transition-hoisting': [PASS, NO_IGNITION],
|
||||
'es6/block-let-crankshaft': [PASS, NO_IGNITION],
|
||||
'es6/block-let-crankshaft-sloppy': [PASS, NO_IGNITION],
|
||||
'getters-on-elements': [PASS, NO_IGNITION],
|
||||
'harmony/do-expressions': [PASS, NO_IGNITION],
|
||||
'ignition/elided-instruction': [PASS, NO_IGNITION],
|
||||
'ignition/optimized-debug-frame': [PASS, NO_IGNITION],
|
||||
'math-floor-of-div-minus-zero': [PASS, NO_IGNITION],
|
||||
'regress/regress-2132': [PASS, NO_IGNITION],
|
||||
'regress/regress-2339': [PASS, NO_IGNITION],
|
||||
'regress/regress-3176': [PASS, NO_IGNITION],
|
||||
'regress/regress-3709': [PASS, NO_IGNITION],
|
||||
'regress/regress-385565': [PASS, NO_IGNITION],
|
||||
'regress/regress-3969': [PASS, NO_IGNITION],
|
||||
'regress/regress-crbug-594183': [PASS, NO_IGNITION],
|
||||
'regress/regress-embedded-cons-string': [PASS, NO_IGNITION],
|
||||
'regress/regress-map-invalidation-2': [PASS, NO_IGNITION],
|
||||
'regress/regress-param-local-type': [PASS, NO_IGNITION],
|
||||
'regress/regress-prepare-break-while-recompile': [PASS, NO_IGNITION],
|
||||
'shift-for-integer-div': [PASS, NO_IGNITION],
|
||||
'sin-cos': [PASS, NO_IGNITION],
|
||||
'smi-mul-const': [PASS, NO_IGNITION],
|
||||
'smi-mul': [PASS, NO_IGNITION],
|
||||
'unary-minus-deopt': [PASS, NO_IGNITION],
|
||||
|
||||
}], # ALWAYS
|
||||
|
||||
['novfp3 == True', {
|
||||
@ -361,6 +444,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 +543,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 +588,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 +644,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", "--turbo-from-bytecode"]],
|
||||
"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", "--turbo-from-bytecode"]],
|
||||
"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):
|
||||
return self.standard_variant
|
||||
if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes):
|
||||
return self.fast_variants
|
||||
return self.all_variants
|
||||
result = self.all_variants
|
||||
if testcase.outcomes:
|
||||
if statusfile.OnlyStandardVariant(testcase.outcomes):
|
||||
return self.standard_variant
|
||||
if statusfile.OnlyFastVariants(testcase.outcomes):
|
||||
result = self.fast_variants
|
||||
if statusfile.NoIgnitionVariant(testcase.outcomes):
|
||||
result = result - IGNITION_VARIANT
|
||||
return result
|
||||
|
||||
def GetFlagSets(self, testcase, variant):
|
||||
if testcase.outcomes and statusfile.OnlyFastVariants(testcase.outcomes):
|
||||
|
Loading…
Reference in New Issue
Block a user