Update V8 DEPS (trusted)
Patch 2 also forks: tools/memory/sanitizer/escalate_sanitizer_warnings.py to fix https://crbug.com/349588565. Rolling build: https://chromium.googlesource.com/chromium/src/build/+log/b9d7a70..ea08c53 Rolling third_party/catapult: https://chromium.googlesource.com/catapult/+log/904d293..7a03bcd Rolling third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/1f4f982..0667395 Rolling third_party/fuchsia-sdk/sdk: version:21.20240613.1.1..version:21.20240620.2.1 Rolling third_party/libc++abi/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi/+log/472d9aa..100fb18 Rolling third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2/+log/67570de..85dd7ad Roll created at https://cr-buildbucket.appspot.com/build/8744551963379423537 Bug: 349588565 Change-Id: I19fa1c2942fc9a007276b23d74b16b0ebe7a1a54 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5645730 Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/main@{#94707}
This commit is contained in:
1 parent
58a34d357a
commit
bfea45f0ad
2 files changed
+129
-6
No files matched your search
@@ -88,7 +88,7 @@ vars = {
|
||||
# Three lines of non-changing comments so that
|
||||
# the commit queue can handle CLs rolling Fuchsia sdk
|
||||
# and whatever else without interference from each other.
|
||||
'fuchsia_version': 'version:21.20240613.1.1',
|
||||
'fuchsia_version': 'version:21.20240620.2.1',
|
||||
|
||||
# Three lines of non-changing comments so that
|
||||
# the commit queue can handle CLs rolling android_sdk_build-tools_version
|
||||
@@ -126,7 +126,7 @@ vars = {
|
||||
|
||||
deps = {
|
||||
'build':
|
||||
Var('chromium_url') + '/chromium/src/build.git' + '@' + 'b9d7a70ab49e26d7b8953e34e37a78733ece7585',
|
||||
Var('chromium_url') + '/chromium/src/build.git' + '@' + 'ea08c530e2770fb61b649e70be31e11b85868d8f',
|
||||
'buildtools':
|
||||
Var('chromium_url') + '/chromium/src/buildtools.git' + '@' + '0f37180034a7c13e1e570f5b41ca1f7c9c29ea70',
|
||||
'buildtools/linux64': {
|
||||
@@ -236,7 +236,7 @@ deps = {
|
||||
'condition': "checkout_centipede_deps",
|
||||
},
|
||||
'third_party/catapult': {
|
||||
'url': Var('chromium_url') + '/catapult.git' + '@' + '904d293e09a30c06aa90a087e5a563aa90ab889b',
|
||||
'url': Var('chromium_url') + '/catapult.git' + '@' + '7a03bcd1a2b9c67ff0df6afabc743a01ebd8df8b',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'third_party/clang-format/script':
|
||||
@@ -250,7 +250,7 @@ deps = {
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'third_party/depot_tools':
|
||||
Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '1f4f982beb6c427808779bc28093a5474832f2c2',
|
||||
Var('chromium_url') + '/chromium/tools/depot_tools.git' + '@' + '06673958a399758b95be5eeae3af2828e8d1a82d',
|
||||
'third_party/fp16/src':
|
||||
Var('chromium_url') + '/external/github.com/Maratyszcza/FP16.git' + '@' + '0a92994d729ff76a58f692d3028ca1b64b145d91',
|
||||
'third_party/fuchsia-gn-sdk': {
|
||||
@@ -302,7 +302,7 @@ deps = {
|
||||
'third_party/libc++/src':
|
||||
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '21ea0bf4a787394b584a028a2851cf782a6c763a',
|
||||
'third_party/libc++abi/src':
|
||||
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '472d9aad97ad38d294aa0634100a4a1c0b6b34b9',
|
||||
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '100fb18f5da1322b7d308f775d706faddce64988',
|
||||
'third_party/libunwind/src':
|
||||
Var('chromium_url') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + 'c8f1d81998280ae2ea0e76ddb60aae6e1b4b860e',
|
||||
'third_party/llvm-build/Release+Asserts': {
|
||||
@@ -442,7 +442,7 @@ deps = {
|
||||
'third_party/protobuf_chrome':
|
||||
Var('chromium_url') + '/chromium/src/third_party/protobuf.git' + '@' + 'ed9284c473211491ae6de41d60ac0329a79270d8',
|
||||
'third_party/re2/src':
|
||||
Var('chromium_url') + '/external/github.com/google/re2.git' + '@' + '67570dea85d20f2a4cf030ad757dcc26baddab40',
|
||||
Var('chromium_url') + '/external/github.com/google/re2.git' + '@' + '85dd7ad833a73095ecf3e3baea608ba051bbe2c7',
|
||||
'third_party/requests': {
|
||||
'url': Var('chromium_url') + '/external/github.com/kennethreitz/requests.git' + '@' + 'c7e0fc087ceeadb8b4c84a0953a422c474093d6d',
|
||||
'condition': 'checkout_android',
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright 2024 the V8 project authors. All rights reserved.
|
||||
# Copyright 2023 The Chromium Authors
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
"""This script searches for sanitizer warnings in stdout that do not trigger
|
||||
test failures in process, and when it finds one, it updates the test status
|
||||
to FAILURE for that test case.
|
||||
|
||||
This script is added in test_env.py after the test process runs, but before
|
||||
the results are returned to result_adpater."""
|
||||
|
||||
# TODO(349962576): This is a temporary fork of Chromium's:
|
||||
# tools/memory/sanitizer/escalate_sanitizer_warnings.py
|
||||
# We should rather share the Chromium script or avoid the necessity to
|
||||
# include it.
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
"""
|
||||
We are looking for various types of sanitizer warnings. They have different
|
||||
formats but all end in a line 'SUMMARY: (...)Sanitizer:'.
|
||||
asan example:
|
||||
=================================================================
|
||||
==244157==ERROR: AddressSanitizer: heap-use-after-free on address 0x60b0000000f0
|
||||
...
|
||||
SUMMARY: AddressSanitizer:
|
||||
|
||||
lsan example:
|
||||
=================================================================
|
||||
==23646==ERROR: LeakSanitizer: detected memory leaks
|
||||
...
|
||||
SUMMARY: AddressSanitizer: 7 byte(s) leaked in 1 allocation(s)
|
||||
|
||||
msan example:
|
||||
==51936==WARNING: MemorySanitizer: use-of-uninitialized-value
|
||||
...
|
||||
SUMMARY: MemorySanitizer: use-of-uninitialized-value (/tmp/build/a.out+0x9fd9a)
|
||||
|
||||
tsan example:
|
||||
==================
|
||||
WARNING: ThreadSanitizer: data race (pid=14909)
|
||||
...
|
||||
SUMMARY: ThreadSanitizer: data race base/.../typed_macros_internal.cc:135:8...
|
||||
|
||||
ubsan example:
|
||||
../../content/browser/.../render_widget_host_impl.cc:603:35: runtime error:
|
||||
member call on address 0x28dc001c8a00 which does not point to an object of type
|
||||
...
|
||||
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
|
||||
"""
|
||||
#pylint: disable=line-too-long
|
||||
_SUMMARY_MESSAGE_STR = r'\nSUMMARY: (Address|Leak|Memory|Thread|UndefinedBehavior)Sanitizer:'
|
||||
_SUMMARY_MESSAGE_REGEX = re.compile(_SUMMARY_MESSAGE_STR)
|
||||
|
||||
|
||||
def escalate_test_status(test_name, test_run):
|
||||
original_status = test_run['status']
|
||||
# If test was not a SUCCESS, do not change it.
|
||||
if original_status != 'SUCCESS':
|
||||
return False
|
||||
|
||||
regex_result = _SUMMARY_MESSAGE_REGEX.search(test_run['output_snippet'])
|
||||
if regex_result:
|
||||
sanitizer_type = regex_result.groups()[0]
|
||||
print('Found %sSanitizer Issue in test "%s"' % (sanitizer_type, test_name))
|
||||
test_run['original_status'] = test_run['status']
|
||||
test_run['status'] = 'FAILURE'
|
||||
test_run['status_processed_by'] = 'escalate_sanitizer_warnings.py'
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def escalate_sanitizer_warnings(filename):
|
||||
with open(filename, 'r') as f:
|
||||
json_data = json.load(f)
|
||||
|
||||
failed_test_names = []
|
||||
|
||||
for iteration_data in json_data['per_iteration_data']:
|
||||
for test_name, test_runs in iteration_data.items():
|
||||
for test_run in test_runs:
|
||||
if escalate_test_status(test_name, test_run):
|
||||
failed_test_names.append(test_name)
|
||||
if not failed_test_names:
|
||||
return False
|
||||
print_sanitizer_results(failed_test_names)
|
||||
with open(filename, 'w') as f:
|
||||
json.dump(json_data, f, indent=3, sort_keys=True)
|
||||
return True
|
||||
|
||||
|
||||
def print_sanitizer_results(failed_test_names):
|
||||
failure_count = len(failed_test_names)
|
||||
print('%d test%s failed via sanitizer warnings:' %
|
||||
(failure_count, ('s' if failure_count != 1 else '')))
|
||||
for failed_test_name in failed_test_names:
|
||||
print(' %s' % failed_test_name)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Escalate sanitizer warnings.')
|
||||
parser.add_argument(
|
||||
'--test-summary-json-file',
|
||||
required=True,
|
||||
help='Path to a JSON file produced by the test launcher. The script will '
|
||||
'parse output snippets to find sanitizer warnings that are shown as '
|
||||
'WARNINGS but should cause build failures in sanitizer versions. The '
|
||||
'status will be FAILED when found. The result will be written back '
|
||||
'to the JSON file.')
|
||||
args = parser.parse_args()
|
||||
|
||||
if escalate_sanitizer_warnings(args.test_summary_json_file):
|
||||
# If tests failed due to sanitizer warnings, exit with 1 returncode to
|
||||
# influence task state.
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
Reference in new issue
Block a user