| # Copyright 2021 The Chromium OS Authors. All rights reserved. |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=7 |
| |
| CROS_WORKON_COMMIT="b1ed0beba584345490400f9e82b43ee32d48f792" |
| CROS_WORKON_TREE=("0544f91c96de739a518c34933c282036d34b81d7" "a920b8bc18a923d5cfa6abfb5390bc903526beef") |
| CROS_WORKON_LOCALNAME="../platform/crosvm" |
| CROS_WORKON_PROJECT="chromiumos/platform/crosvm" |
| CROS_WORKON_INCREMENTAL_BUILD=1 |
| CROS_RUST_SUBDIR="common/cros_async" |
| CROS_WORKON_SUBTREE="${CROS_RUST_SUBDIR} .cargo" |
| CROS_WORKON_SUBDIRS_TO_COPY=(${CROS_WORKON_SUTREE}) |
| |
| # The version of this crate is pinned. See b/229016539 for details. |
| CROS_WORKON_MANUAL_UPREV="1" |
| |
| inherit cros-workon cros-rust |
| |
| DESCRIPTION="Rust async tools for Chrome OS" |
| HOMEPAGE="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/HEAD/cros_async" |
| LICENSE="BSD-Google" |
| KEYWORDS="*" |
| |
| DEPEND=" |
| =dev-rust/async-task-4*:= |
| >=dev-rust/async-trait-0.1.36 <dev-rust/async-trait-0.2:= |
| dev-rust/data_model:= |
| =dev-rust/futures-0.3*:= |
| dev-rust/intrusive-collections:= |
| dev-rust/io_uring:= |
| >=dev-rust/libc-0.2.93 <dev-rust/libc-0.3:= |
| >=dev-rust/once_cell-1.7.2 <dev-rust/once_cell-2:= |
| =dev-rust/paste-1*:= |
| =dev-rust/pin-utils-0.1*:= |
| =dev-rust/remain-0.2*:= |
| =dev-rust/slab-0.4*:= |
| dev-rust/sync:= |
| dev-rust/sys_util:= |
| dev-rust/tempfile:= |
| >=dev-rust/thiserror-1.0.20 <dev-rust/thiserror-2:= |
| media-sound/audio_streams:= |
| " |
| RDEPEND="${DEPEND} |
| !<=dev-rust/cros_async-0.1.0-r38" |
| |
| src_test() { |
| # The io_uring implementation on kernels older than 5.10 was buggy so skip |
| # them if we're running on one of those kernels. |
| local cut_version="$(ver_cut 1-2 "$(uname -r)")" |
| if ver_test "${cut_version}" -lt 5.10; then |
| einfo "Skipping io_uring tests on kernel version < 5.10" |
| # TODO: Enable tests on ARM once the emulator supports io_uring. |
| elif ! cros_rust_is_direct_exec; then |
| einfo "Skipping uring tests on non-x86 platform" |
| local skip_tests=( |
| ring |
| io_ext |
| timer::tests::one_shot |
| ) |
| |
| local args=($(printf -- "--skip %s\n" "${skip_tests[@]}")) |
| cros-rust_src_test -- "${args[@]}" |
| else |
| cros-rust_src_test |
| fi |
| } |