Roll mini_chromium to pick up the latest version of base::span.

Also enables C++20 as span now depends on it.

Roll buildtools to grab a newer libc++ that supports C++20.

Explicitly capture `this` in lambdas in cpp-httplib as the implicit
capture through `=` is deprecated and causes an error in C++20.

Update the MacOS version to "Mac-13|Mac-14" which is the current
value of `os.MAC_DEFAULT` in Chromium infra in order to have
C++20 support in the std library on iOS.

Moves iOS tests to run on iPhone 13 and includes a mini_chromium roll
to fix Xcode 14.3 egtests.

Bug: 40284755
Change-Id: Ic078f07d12473f2aaed5e84df0f0a7fb7b8c35c3
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/5443384
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
This commit is contained in:
Justin Cohen 2024-04-10 17:12:05 -04:00 committed by Crashpad LUCI CQ
parent bbb99bfa37
commit f9cee5c147
4 changed files with 8 additions and 7 deletions

4
DEPS
View File

@ -29,7 +29,7 @@ vars = {
deps = { deps = {
'buildtools': 'buildtools':
Var('chromium_git') + '/chromium/src/buildtools.git@' + Var('chromium_git') + '/chromium/src/buildtools.git@' +
'8b16338d17cd71b04a6ba28da7322ab6739892c2', '8919328651a559f8a974641d40fe712062cc6718',
'buildtools/clang_format/script': 'buildtools/clang_format/script':
Var('chromium_git') + Var('chromium_git') +
'/external/github.com/llvm/llvm-project/clang/tools/clang-format.git@' + '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git@' +
@ -47,7 +47,7 @@ deps = {
'9719c1e1e676814c456b55f5f070eabad6709d31', '9719c1e1e676814c456b55f5f070eabad6709d31',
'crashpad/third_party/mini_chromium/mini_chromium': 'crashpad/third_party/mini_chromium/mini_chromium':
Var('chromium_git') + '/chromium/mini_chromium@' + Var('chromium_git') + '/chromium/mini_chromium@' +
'203a01130fac64bfdcc8cab2e1798c7b2c0619bf', 'dce72d97d1c2e9beb5e206c6a05a702269794ca3',
'crashpad/third_party/libfuzzer/src': 'crashpad/third_party/libfuzzer/src':
Var('chromium_git') + '/chromium/llvm-project/compiler-rt/lib/fuzzer.git@' + Var('chromium_git') + '/chromium/llvm-project/compiler-rt/lib/fuzzer.git@' +
'fda403cf93ecb8792cb1d061564d89a6553ca020', 'fda403cf93ecb8792cb1d061564d89a6553ca020',

View File

@ -313,7 +313,7 @@ def _RunOnAndroidTarget(binary_dir, test, android_device, extra_command_line):
def _RunOnIOSTarget(binary_dir, test, is_xcuitest=False, gtest_filter=None): def _RunOnIOSTarget(binary_dir, test, is_xcuitest=False, gtest_filter=None):
"""Runs the given iOS |test| app on iPhone 8 with the default OS version.""" """Runs the given iOS |test| app on a simulator with the default OS version."""
def xctest(binary_dir, test, gtest_filter=None): def xctest(binary_dir, test, gtest_filter=None):
"""Returns a dict containing the xctestrun data needed to run an """Returns a dict containing the xctestrun data needed to run an
@ -368,11 +368,11 @@ def _RunOnIOSTarget(binary_dir, test, is_xcuitest=False, gtest_filter=None):
with tempfile.NamedTemporaryFile() as f: with tempfile.NamedTemporaryFile() as f:
import plistlib import plistlib
xctestrun_path = f.name xctestrun_path = f.name + ".xctestrun"
print(xctestrun_path) print(xctestrun_path)
command = [ command = [
'xcodebuild', 'test-without-building', '-xctestrun', xctestrun_path, 'xcodebuild', 'test-without-building', '-xctestrun', xctestrun_path,
'-destination', 'platform=iOS Simulator,name=iPhone 8', '-destination', 'platform=iOS Simulator,OS=15.5,name=iPhone 13',
] ]
with open(xctestrun_path, 'wb') as fp: with open(xctestrun_path, 'wb') as fp:
if is_xcuitest: if is_xcuitest:

View File

@ -14,3 +14,4 @@ Local Modifications:
- Exclude test/ and example/ subdirs. - Exclude test/ and example/ subdirs.
- Patch httplib.h to use #include "third_party/zlib/zlib_crashpad.h" instead of - Patch httplib.h to use #include "third_party/zlib/zlib_crashpad.h" instead of
<zlib.h>. <zlib.h>.
- Make `this` capture explicit to avoid errors in C++20.

View File

@ -1684,7 +1684,7 @@ inline bool Server::listen_internal()
} }
// TODO: Use thread pool... // TODO: Use thread pool...
std::thread([=]() { std::thread([=, this]() {
{ {
std::lock_guard<std::mutex> guard(running_threads_mutex_); std::lock_guard<std::mutex> guard(running_threads_mutex_);
running_threads_++; running_threads_++;
@ -1861,7 +1861,7 @@ inline bool Client::is_valid() const
inline socket_t Client::create_client_socket() const inline socket_t Client::create_client_socket() const
{ {
return detail::create_socket(host_.c_str(), port_, return detail::create_socket(host_.c_str(), port_,
[=](socket_t sock, struct addrinfo& ai) -> bool { [this](socket_t sock, struct addrinfo& ai) -> bool {
detail::set_nonblocking(sock, true); detail::set_nonblocking(sock, true);
auto ret = connect(sock, ai.ai_addr, ai.ai_addrlen); auto ret = connect(sock, ai.ai_addr, ai.ai_addrlen);