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