commit | 9e1527d7c5aa21def86297815026b25f08df4589 | [log] [tgz] |
---|---|---|
author | Zhanyong Wan <wan@fuchsia.infra.roller.fuchsia.infra.roller.google.com> | Fri Mar 07 11:35:33 2025 -0800 |
committer | CQ Bot <fuchsia-internal-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Mar 07 11:35:33 2025 -0800 |
tree | 186205d887ecc3bea12d7e15c8bcdb6b9de9c4c2 | |
parent | 641ca2b67060f5b9f13aefeb42defd0073ca428c [diff] |
[roll] Roll third_party/fuchsia-infra-bazel-rules [roll] Roll third_party/googletest Add a `DistanceFrom()` matcher for general distance comparison. We have a bunch of matchers for asserting that a value is near the target value, e.g. `DoubleNear()` and `FloatNear()`. These matchers only work for specific types (`double` and `float`). They are not flexible enough to support other types that have the notion of a "distance" (e.g. N-dimensional points and vectors, which are commonly used in ML). In this diff, we generalize the idea to a `DistanceFrom(target, get_distance, m)` matcher that works on arbitrary types that have the "distance" concept (the `get_distance` argument is optional and can be omitted for types that support `-`, and `std::abs()`). What it does: 1. compute the distance between the value and the target using `get_distance(value, target)`; if `get_distance` is omitted, compute the distance as `std::abs(value - target)`. 2. match the distance against matcher `m`; if the match succeeds, the `DistanceFrom()` match succeeds. Examples: ``` // 0.5's distance from 0.6 should be <= 0.2. EXPECT_THAT(0.5, DistanceFrom(0.6, Le(0.2))); Vector2D v1(3.0, 4.0), v2(3.2, 6.0); // v1's distance from v2, as computed by EuclideanDistance(v1, v2), // should be >= 1.0. EXPECT_THAT(v1, DistanceFrom(v2, EuclideanDistance, Ge(1.0))); ``` PiperOrigin-RevId: 734593292 Original-Revision: 0bdccf4aa2f5c67af967193caf31d42d5c49bde2 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia-infra-bazel-rules/+/1221999 Original-Revision: df344fc2758951ae1ca65c8a00e5156a9e8d552d Roller-URL: https://cr-buildbucket.appspot.com/build/8721030053830017777 CQ-Do-Not-Cancel-Tryjobs: true Change-Id: I55c6f22a4a702288025166f9e2dadcb1ffb4a135 Reviewed-on: https://fuchsia-review.googlesource.com/c/drivers/wlan/intel/iwlwifi/+/1223070 Commit-Queue: GI Roller <global-integration-roller@fuchsia-infra.iam.gserviceaccount.com>
This repository contains the source code to build, package and run the Intel Wifi driver for Fuchsia using the Fuchsia Bazel SDK.
The prebuilts of this driver is uploaded to CIPD at this location.
https://chrome-infra-packages.appspot.com/p/fuchsia/drivers/wlan/intel/iwlwifi
git clone https://fuchsia.googlesource.com/drivers/wlan/intel/iwlwifi --recurse-submodules
cd iwlwifi
scripts/bootstrap.sh
To prepare your development environment using NUC hardware, please follow the instruction in the below doc.
Once you have setup your environment, the Intel driver can be built using the following command.
./tools/bazel build third_party/iwlwifi/platform:iwlwifi_pkg
When finished successfully, it prints output logs similar to what's shown below:
$ ./tools/bazel build third_party/iwlwifi/platform:iwlwifi_pkg ... INFO: Elapsed time: 0.464s, Critical Path: 0.11s INFO: 11 processes: 11 internal. INFO: Build completed successfully, 11 total actions
ffx driver disable fuchsia-pkg://fuchsia.com/iwlwifi#meta/iwlwifi.cm
The command output would look something like this:
$ tools/ffx driver disable fuchsia-pkg://fuchsia.com/iwlwifi#meta/iwlwifi.cm Disabling fuchsia-pkg://fuchsia.com/iwlwifi#meta/iwlwifi.cm and restarting driver hosts with rematching enabled. Successfully restarted and rematching 1 driver hosts with the driver.
tools/bazel run third_party/iwlwifi/platform:iwlwifi_pkg.iwlwifi_component
The command output would look something like this:
$ tools/bazel run third_party/iwlwifi/platform:iwlwifi_pkg.iwlwifi_component ... Publishing packages: [PosixPath('third_party/iwlwifi/platform/iwlwifi.far')] Published 1 packages Running task: iwlwifi_pkg.iwlwifi_component.run_only (step 3/4) Registering fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm, restarting driver hosts, and attempting to bind to unbound nodes Successfully bound: Node 'dev.sys.platform.pt.PCI0.bus.01_00.0.01_00.0', Driver 'fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm'. Running task: iwlwifi_pkg.publish_anonymous.delete_repo (step 4/4)
$ tools/ffx driver list --loaded | grep wifi fuchsia-pkg://bazel.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm
Notice the iwlwifi driver toward the bottom of the loaded drivers list.
$ tools/ffx component show iwlwifi.cm Moniker: /bootstrap/full-pkg-drivers:dev.sys.platform.pt.PCI0.bus.01_00.0_.pci-01_00.0-fidl URL: fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm Environment: full-pkg-driver-env Instance ID: None Type: CML component Component State: Resolved Resolved URL: fuchsia-pkg://bazel.iwlwifi.pkg.publish.anonymous/iwlwifi#meta/iwlwifi.cm Namespace Capabilities: /svc/fuchsia.logger.LogSink /svc/fuchsia.hardware.pci.Service Exposed Capabilities: fuchsia.wlan.softmac.Service fuchsia.wlan.phyimpl.Service diagnostics Merkle root: 98384e7ced5c66b0fbf5f725abb43e9e9b57594e694f9167c032cceb4b009b80 Execution State: Running Start reason: Instance is in a single_run collection Outgoing Capabilities: diagnostics fuchsia.wlan.phyimpl.Service Runtime: Unknown
fx shell wlan-dev scan
A successful scan output would look something like this.
fuchsia~$ fx shell wlan-dev scan Warning: this tool may cause state mismatches between layers of the WLAN subsystem. It is intended for use by WLAN developers only. Please reach out to the WLAN team if your use case relies on it. Scan(ClientScanCmd { iface_id: 0, scan_type: Passive }) BSSID dBm Chan Protection Compatible SSID 8c:3b:ad:ab:91:4d -86 157V WPA2 PSK Y 60:32:b1:6a:e6:53 -72 9+ WPA2 PSK Y 62:8c:b5:39:0b:fb -85 153V WPA2 PSK Y
tools/work-on core.x64 --target fuchsia-emulator
tools/ffx emu stop --all
tools/ffx emu start --headless
tools/bazel test third_party/iwlwifi/test:iwlwifi_test_pkg
Boot your NUC in Fastboot mode (or boot it normally to run Fuchsia).
Identify your NUC’s device name, for example:
$ ffx target list NAME SERIAL TYPE STATE fuchsia-5254-0063-5e7a <unknown> Unknown Unknown
tools/work-on core.x64 --target <name_from_target_list>
Replace <name_from_target_list> with the target name (in this case, fuchsia-5254-0063-5e7a).
tools/bazel test --cache_test_results=no third_party/iwlwifi/test:iwlwifi_test_pkg
Execute the following command to run the driver tests with ASAN enabled.
tools/bazel test --features=asan --cache_test_results=no third_party/iwlwifi/test:iwlwifi_test_pkg
Once you're ready to send your changes for code review, run:
git push origin HEAD:refs/for/main
git will then print the URL of your pending CL.