Commit 18136654 authored by Clemens Backes's avatar Clemens Backes Committed by Commit Bot

[no-wasm] Skip wasm tests if wasm is disabled

This CL introduces a test runner flag to detect if webassembly has been
disabled. Since all tests that require wasm are alrady skipped in
lite mode, we introduce a has_webassembly flag for the test runner which
checks for v8_enable_webassembly=true and v8_enable_lite_mode=false.
As a drive-by, we also do not set the V8_ENABLE_WEBASSEMBLY
preprocessor flag if lite mode is enabled.

The status files are updated by splitting wasm tests from the
"lite_mode" section and checking for "not has_webassembly" instead.

Note that the v8_enable_webassembly=false configuration is not tested
on any bot currently, but I will make sure that all tests keep passing
on further changes in this configuration.

R=machenbach@chromium.org

Bug: v8:11238
Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
Change-Id: I1841eb1f1633cb47e0c079f4a4a4d769ca3a9cbb
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2710425Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72898}
parent 7a22cf7a
......@@ -776,7 +776,7 @@ config("features") {
if (v8_etw_guid != "") {
defines += [ "V8_ETW_GUID=\"$v8_etw_guid\"" ]
}
if (v8_enable_webassembly) {
if (v8_enable_webassembly && !v8_enable_lite_mode) {
defines += [ "V8_ENABLE_WEBASSEMBLY" ]
}
if (v8_dict_property_const_tracking) {
......@@ -1850,6 +1850,7 @@ action("v8_dump_build_config") {
"v8_enable_verify_csa=$v8_enable_verify_csa",
"v8_enable_lite_mode=$v8_enable_lite_mode",
"v8_enable_pointer_compression=$v8_enable_pointer_compression",
"v8_enable_webassembly=$v8_enable_webassembly",
"v8_control_flow_integrity=$v8_control_flow_integrity",
"v8_target_cpu=\"$v8_target_cpu\"",
]
......
......@@ -509,12 +509,8 @@
}],
##############################################################################
['lite_mode or variant == jitless', {
# Slow tests
'test-heap/IncrementalMarkingStepMakesBigProgressWithLargeObjects': [SKIP],
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'test-api/WasmI32AtomicWaitCallback': [SKIP],
'test-api/WasmI64AtomicWaitCallback': [SKIP],
'test-api-wasm/WasmStreaming*': [SKIP],
......@@ -537,6 +533,13 @@
'test-wasm-stack/*': [SKIP],
'test-wasm-trap-position/*': [SKIP],
'wasm-run-utils/*': [SKIP],
}], # not has_webassembly or variant == jitless
##############################################################################
['lite_mode or variant == jitless', {
# Slow tests
'test-heap/IncrementalMarkingStepMakesBigProgressWithLargeObjects': [SKIP],
# Tests that generate code at runtime.
'codegen-tester/*': [SKIP],
......
......@@ -131,13 +131,12 @@
}], # 'arch == s390 or arch == s390x'
##############################################################################
['lite_mode or variant == jitless', {
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'debug/wasm/*': [SKIP],
'regress/regress-crbug-840288': [SKIP],
'regress/regress-crbug-1032042': [SKIP],
'wasm-*': [SKIP],
}], # lite_mode or variant == jitless
}], # not has_webassembly or variant == jitless
##############################################################################
['variant == turboprop or variant == turboprop_as_toptier', {
......
......@@ -51,6 +51,17 @@
'debugger/evaluate-on-call-frame-in-module': [PASS, FAIL],
}], # variant != default
##############################################################################
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'debugger/asm-js-stack': [SKIP],
'debugger/asm-js-breakpoint-before-exec': [SKIP],
'debugger/asm-js-breakpoint-during-exec': [SKIP],
'debugger/wasm-*': [SKIP],
'cpu-profiler/console-profile-wasm': [SKIP],
'runtime/get-properties': [SKIP],
}], # not has_webassembly or variant == jitless
##############################################################################
['lite_mode or variant == jitless', {
# Lite mode does not allocate feedback vector.
......@@ -59,14 +70,6 @@
'type-profiler/type-profile-with-to-string-tag': [SKIP],
'type-profiler/type-profile-with-classes': [SKIP],
'type-profiler/type-profile-disable': [SKIP],
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
'debugger/asm-js-stack': [SKIP],
'debugger/asm-js-breakpoint-before-exec': [SKIP],
'debugger/asm-js-breakpoint-during-exec': [SKIP],
'debugger/wasm-*': [SKIP],
'cpu-profiler/console-profile-wasm': [SKIP],
'runtime/get-properties': [SKIP],
}], # 'lite_mode or variant == jitless'
##############################################################################
......
......@@ -55,16 +55,14 @@
}], # no_i18n == True
##############################################################################
['lite_mode or variant == jitless', {
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'mjsunit/fail/assert-promise-result-wasm-compile-fail': [SKIP],
'mjsunit/fail/assert-in-promise-fail-recursive': [FAIL],
'fail/wasm-*': [SKIP],
'wasm-*': [SKIP],
# Test output requires --validate-asm, which is disabled in jitless mode.
'asm-*': [SKIP],
}], # lite_mode or variant == jitless
}], # not has_webassembly or variant == jitless
################################################################################
['variant == stress_snapshot', {
......
......@@ -325,26 +325,27 @@
}], # 'gc_stress'
##############################################################################
['lite_mode or variant == jitless', {
# Skip tests not suitable for lite_mode.
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
# Skip tests that require webassembly.
'regress/regress-5888': [SKIP],
'regress/regress-5911': [SKIP],
'regress/regress-8947': [SKIP],
'regress/regress-9209': [SKIP],
'regress/regress-9832': [SKIP],
'regress/regress-813440': [SKIP],
'regress/regress-863810': [SKIP],
'regress/regress-1034394': [SKIP],
'regress/regress-crbug-746835': [SKIP],
'regress/regress-crbug-772056': [SKIP],
'regress/regress-crbug-816961': [SKIP],
'regress/regress-crbug-969498': [SKIP],
'regress/regress-crbug-1047368': [SKIP],
'regress/wasm/*': [SKIP],
'regress/regress-8947': [SKIP],
'regress/regress-9209': [SKIP],
'regress/regress-1034394': [SKIP],
'regress/regress-v8-9106': [SKIP],
'regress/wasm/*': [SKIP],
'wasm/*': [SKIP],
# Other tests that use asm / wasm / optimized code.
'asm/asm-heap': [SKIP],
'asm/asm-validation': [SKIP],
'asm/call-stdlib': [SKIP],
......@@ -356,6 +357,14 @@
'asm/regress-937650': [SKIP],
'asm/regress-9531': [SKIP],
'asm/return-types': [SKIP],
# Tests tracing when generating wasm in TurboFan.
'tools/compiler-trace-flags-wasm': [SKIP],
}], # not has_webassembly or variant == jitless
##############################################################################
['lite_mode or variant == jitless', {
# Other tests that use optimized code.
'regress/regress-599719': [SKIP],
'regress/regress-6196': [SKIP],
'regress/regress-6700': [SKIP],
......@@ -363,7 +372,6 @@
'regress/regress-6838-3': [SKIP],
'regress/regress-6838-4': [SKIP],
'regress/regress-9022': [SKIP],
'regress/regress-9832': [SKIP],
'regress/regress-crbug-934138': [SKIP],
'regress/regress-crbug-976934': [SKIP],
......@@ -375,7 +383,6 @@
'regress/regress-617526': [SKIP],
'regress/regress-7893': [SKIP],
'regress/regress-8377': [SKIP],
'regress/regress-863810': [SKIP],
'regress/regress-crbug-721835': [SKIP],
'regress/regress-crbug-759327': [SKIP],
'regress/regress-crbug-898974': [SKIP],
......@@ -385,7 +392,6 @@
# These tests check that we can trace the compiler.
'tools/compiler-trace-flags': [SKIP],
'tools/compiler-trace-flags-wasm': [SKIP],
# Too slow on arm64 simulator and debug: https://crbug.com/v8/7783
'md5': [PASS, ['arch == arm64 and mode == debug and simulator_run', SKIP]],
......
......@@ -39,11 +39,11 @@
}], # system == macos and arch == arm64 and not simulator_run
##############################################################################
['lite_mode or variant == jitless', {
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'ValueSerializerTestWithSharedArrayBufferClone.RoundTripWebAssemblyMemory': [SKIP],
'ValueSerializerTestWithWasm.*': [SKIP],
}], # lite_mode or variant == jitless
}], # not has_webassembly or variant == jitless
##############################################################################
['system == aix', {
......
......@@ -42,10 +42,10 @@
}], # mode == debug or simulator_run or variant != default or arch == arm or tsan or msan or asan
##############################################################################
['lite_mode or variant == jitless', {
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'*': [SKIP],
}], # lite_mode or variant == jitless
}], # not has_webassembly or variant == jitless
################################################################################
['variant == stress_snapshot', {
......
......@@ -198,10 +198,10 @@
}], # 'arch == s390 or arch == s390x'
##############################################################################
['lite_mode or variant == jitless', {
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
# TODO(v8:7777): Change this once wasm is supported in jitless mode.
['not has_webassembly or variant == jitless', {
'*': [SKIP],
}], # lite_mode or variant == jitless
}], # not has_webassembly or variant == jitless
################################################################################
['variant == stress_snapshot', {
......
......@@ -189,6 +189,7 @@ class BuildConfig(object):
self.verify_csa = build_config['v8_enable_verify_csa']
self.lite_mode = build_config['v8_enable_lite_mode']
self.pointer_compression = build_config['v8_enable_pointer_compression']
self.webassembly = build_config['v8_enable_webassembly']
# Export only for MIPS target
if self.arch in ['mips', 'mipsel', 'mips64', 'mips64el']:
self.mips_arch_variant = build_config['mips_arch_variant']
......@@ -228,6 +229,8 @@ class BuildConfig(object):
detected_options.append('lite_mode')
if self.pointer_compression:
detected_options.append('pointer_compression')
if self.webassembly:
detected_options.append('webassembly')
return '\n'.join(detected_options)
......@@ -643,6 +646,9 @@ class BaseTestRunner(object):
'--noenable-sse4-1',
'--no-enable-sse4_1'])
has_webassembly = self.build_config.webassembly and \
not self.build_config.lite_mode
# Set no_simd_sse on architectures without Simd enabled.
if self.build_config.arch == 'ppc64':
no_simd_sse = True
......@@ -660,6 +666,7 @@ class BaseTestRunner(object):
"gc_fuzzer": False,
"gc_stress": False,
"gcov_coverage": self.build_config.gcov_coverage,
"has_webassembly": has_webassembly,
"isolates": options.isolates,
"is_clang": self.build_config.is_clang,
"is_full_debug": self.build_config.is_full_debug,
......
......@@ -350,6 +350,7 @@ class SystemTest(unittest.TestCase):
'no_i18n\n'
'tsan\n'
'ubsan_vptr\n'
'webassembly\n'
'>>> Running tests for ia32.release')
self.assertIn(expect_text, result.stdout, result)
self.assertEqual(0, result.returncode, result)
......
......@@ -21,5 +21,6 @@
"v8_enable_verify_csa": false,
"v8_enable_lite_mode": false,
"v8_enable_pointer_compression": true,
"v8_control_flow_integrity": false
"v8_control_flow_integrity": false,
"v8_enable_webassembly": true
}
......@@ -21,5 +21,6 @@
"v8_enable_verify_csa": false,
"v8_enable_lite_mode": false,
"v8_enable_pointer_compression": false,
"v8_control_flow_integrity": false
"v8_control_flow_integrity": false,
"v8_enable_webassembly": true
}
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