[fidl] Initial support for extensible unions.
Implements extensible unions ("xunions") described in FTP-015. This
depends on the zircon xunion CL
Test: fx build-zircon -A -H -l && fx build host_x64/fidl_cpp_host_unittests && $FUCHSIA_DIR/out/x64/host_x64/fidl_cpp_host_unittests
Test: fx build garnet/go/src/fidl && $FUCHSIA_DIR/garnet/go/src/fidl/compiler/backend/typestest/regen.sh
[mediacodec] Match new and delete.
Test run in build with "--variant=asan/codec_runner_sw_ffmpeg_tests"
TEST: fx run-test codec_runner_sw_ffmpeg_tests
[fuchsia-pkg][run] use component URLs
[appmgr] Runner components should expose service using public folder.
Before components launched by runner were publishing
services using flat dir structure, now they should
expose those services in "public" folder.
Not making these changes for web_runner and cast_runner. See CF-268.
TEST=CQ and added
[netstack] expect ping to succeed
Test: fx run-image-test netstack_netstat_test
[bt][lib] Remove common::Optional type
Removed the C++17 polyfill in lib/common/optional.h and converted
all uses to std::optional.
[sdk] Remove unnecessary dependency flagged by STRICT_DEPS
Testing: Successful fx build
[Camera] Fix camera_tests execution
Added a proper cmx file to correctly execute the tests using:
fx run-test -t simple_camera_unittests camera_tests
TEST = fx run-test now works
[scenic] Simplified gfx::Session
Pulled all the ApplyCommand stuff out of session into it's own GfxCommandApplier class to make Session more readable, and simplified the destruction of SessionHandler, so that it's now a two-way dependency between SessionHandler and SessionManager instead of a three-way dependency involving Session.
Also removed the exposed reference to scenic from CommandDispatcherContext mentioned in SCN-808.
Test: fx build-push scenic_tests && fx run-test scenic_tests
And manually verified that
didn't kill scenic and that launching
fx shell set_root_view fuchsia-pkg://fuchsia.com/noodles#meta/noodles.cmx
[wlan][mesh] Initiate HWMP path discovery if no path exists
TEST=Unit test included.
[zircon_bechmark] add VmoReadOrWriteMapTest VmoReadOrWriteMapRangeTest
Allow comparison with vmo/read/write test to see performance for various
sizes. VmoReadOrWriteMapRangeTest adds the flag ZX_VM_MAP_RANGE, which
prevents demand paging each accessed page.
Test: zircon_benchmarks -p --filter "VmoMap|Vmo/[RW]
[debugger] Use Elflib to respond to SymbolTablesReply
This still won't do much in most cases since Elflib currently needs
unstripped executables to return symbols, but the plumbing is there.
Test: Unit/integration tests pass
[environment] Make EnvironmentController required in CreateNestedEnvironment
The EnvironmentController request being optional is somewhat dangerous
in that the environment created will not be cleaned up automatically if
the process which created the environment dies. In other words, it
behaves as if the process called EnvironmentController.Detach(). This
makes it so that the caller of CreateNestedEnvironment must explicitly
call Detach() if that behavior is desired, rather than getting it by
default and where it may be unintended.
Note that today there are no explicit callers of
EnvironmentController.Detach() and there do not appear to be any use
cases that actually want that behavior.
Test: fx run-test appmgr_integration_tests -t
[scenic] Add typed tokens for import/export
[bt] Make bluetooth_tests package pushable
Work around BLD-338 that makes the bluetooth_tests package not pushable
e.g. when running fx run-test.
Test: fx run-test bluetooth_tests from Mac host to x64 target
[netstack] remove unused function argument
[netstack] remove socketServer
This structure is not particularly useful - all the useful state is
already in `iostate`.
[perfcompare] Add initial size comparison tool for recipe to invoke
Test: tested via 'led' with recipe change, plus tested manually using:
python garnet/bin/perfcompare/perfcompare.py compare_sizes out/x64/snapshots/system.snapshot out/x64/snapshots/system.snapshot
[scenic] Fix swapchain issue when no Vulkan validation layers enabled.
We were unnecessarily querying the number of layer
properties and failing if the number was 0.
TEST=confirm works on arm64 and x64 devices with
[wlan] Migrate ap mlme to TimerManager2
[wlan][common] Rust crate wlan-common
This is a place holder to host common modules
to be used for SME, MLME, and binaries written in Rust.
[debugger] Added RAII regex class.
This is to be also used by the symbol searching.
[scenic] Enable vma_gpu_allocator
tested=scenic_tests, escher_tests, on linux and on devices, default UX flow on Astro
[tools] Rationalize configurations for bluetooth and scenic tools
This separates the bluetooth and scenic tools from their production
package configurations and updates the interactive configuration family
to incorporate only the production artifacts, not the tools. Most
product configurations will want to include the production artifacts in
'monolith' or 'preinstall' and the tools in 'available'.
[docs] Fixed log statement.
[pm][expand] Write more metadata files
When expanding an archived package, also generate and write the merkle
root of the meta.far (meta.far.merkle) and the blob metadata file
(blobs.json) so the prebuilt_package template/script don't need to parse
the meta/contents file to generate a correct blobs.json file.
Test: build topaz, verify generated outputs of chromium
[magma] Add notification channel handle accessor
This allows the VCD to use zx_object_wait_many instead of poll to wait
on this, which saves on file descriptors for this and anything else
that's waited on at the same time.
[bt][data] SocketChannelRelay: remove a template argument
Instead of having SocketChannelRelay provide the channel's identifier
to the SocketFactory when invoking the DeactivationCallback, have the
factory capture the identifier into the callback. This eliminates the
need for the SocketChannelRelay to know about ChannelIdT.
Test: bt-host-unittests (on eve)
[build] add a pkgfs.gni for soft-transitions
This gni enables us to move where the pkgfs binary is built and what it is
called, without having to hard-transition with //build.
Test: manual, with new //build change.
[debugger] Avoid crash on initial thread exception.
The initial thread exception on a process is a weird state where no
registers can be read or set. This makes the stepping routines more
tolerant of threads with no stacks.
Adds some help text to assist people understanding the weird initial
state of the process when this happens.
Does some minor clarification in the debug_agent.
Fixes messaging around backtraces with missing stacks (the condition was
wrong for the more descriptive help text).
[debugger] Separate out formatting options.
Moves the FormatValueOptions from console/format_value.h to a new file
in the "expr" directory. This is to move to a design where the abstract
output formatting is done in the expr directory, and the conversion to
text is done in the console directory.
There should be no behavior change, this only moves and renames the
[mediaplayer] prevent bogus ImagePipe.AddImage calls
The video renderer needs to add images to its image pipe. It does
this when it has a stream type with non-zero height and width and
the input connection has VMOs available.
In some cases, the VMOs supplied by the input connection are out-
of-date with respect to the current image size. The correct VMOs
are supplied somewhat later. Because the renderer tries to use the
small VMOs, scenic complains bitterly in the logs. The situation is
corrected when the new VMOs show up, so there/s no lasting harm.
This CL prevents images from being added to the ImagePipe when the
VMOs are too small, so the scenic errors are not generated.
TEST: no behavior change (other than logs), tested for regression
[mediaplayer] don't pad out zero video size
This CL changes the new-ish video buffer alignment code so it
doesn't try to add padding when the video size is 0x0. This was
causing unneeded, too-small VMOs from being allocated for before
the video size is known. There was no user impact, because correct
VMOs would be allocated shortly after that.
TEST: no behavior change...tested for regressions
Revert "[ime] Remove ordinals from text input FIDL definitions"
This reverts commit f3426d997a01dac00985d3dd1ec5374732003606.
Reason for revert: Issue with ImeService clients not connecting, preemptively reverting.
Original change's description:
> [ime] Remove ordinals from text input FIDL definitions
> Test: ensured still built as expected
> Change-Id: Ic5fee344df26de6c4d7c53cda32b79777fa5d333
[carnelian] Rename fuchsia-ui to carnelian
Keep fuchsia-ui around until topaz clients are moved over
for a soft transition.
Testing: manual, ran carnelian examples.
[debugger] Add a flag to dump build ID mapping.
When debugging missing symbol problems it can be helpful to see zxdb's
index of build ID to file mappings.
The new flag added to the sym-stat command dumps this.
Improves zxdb output. The large dump exposed a problem where fwrite
would do a partial write because the output is in nonblocking mode. This
forces stdout into blocking mode.
Related to this, I noticed that the line input uses write() to avoid
buffering but the output uses fwrite() because we want buffering. But
switching tbetween the two requires a sync.
Does some cleanup in OutputBuffer of string handling since we now have
[debugger] Avoid exceptions in filesystem API.
Changes the filesystem API call to use the variant that doesn't throw
exceptions on filesystem errors. Since we don't compile with exceptions,
any errors reading the file information will crash the program if we use
the version that throws.
[benchmarks][scenic] Use full package URLs.
[inspect] Add unittests for Inspect API.
Additionally: Fix an arithmetic bug.
[fuchsia-pkg][echo2][rolldice] Use component URLs
[http_service_test] Add http_service_tests.cmx
This allows http_service_tests to link the shared libraries in
Test: run_test fuchsia-pkg://fuchsia.com/http_service_tests#meta/http_service_tests.cmx
Test: check http_service_tests is successful in the CQ log
[guest] Replace InterfacePtr::Close with Unbind.
InterfacePtr::Close has been removed. This was missed because the
consumer is not yet enabled in the CI build.
Test: fx build
[mediacodec] Make FrameSink a lib.
[cml] Add compiler for CML to CM.
CML is the human-facing language for writing v2 component manifests. CM
is the binary format that gets stored in packages and translated
directly to FIDL.
CF-154 #comment add cml compiler
[brcmfmac] Rework dbg_hexdump
Reorganize hexdump functionality so that it:
- doesn't double-print when BRCMF_INFO_VAL is enabled
- prints addresses
- properly handles the header annotation
- prints 16 bytes/line
- Made all brcmf_hexdumps invocations conditional so that just enabling
debug wouldn't cause logfile spew
- Removed hexdumps that were used for previous experiments but are no
Note that CONFIG_BRCMFMAC_DBG is enabled by default now, to make life
easier for us during debugging. No additional output will be generated,
but it means that only one variable (brcmf_msg_filter) needs to be set
to get log messages instead of two. There should be minimal impact on
performance since this pulls in a single conditional check.
Test: Builds, smoke test with Netgear router. Verified that no messages
are produced with brcmf_msg_filter == 0 and reasonable spew is produced
with debug flags enabled (tried BRCMF_BYTES_VAL | BRCMF_DATA_VAL).
[testing] Fix multiple service launching
Was using the same "" singleton ID for all services. Possibly due to
fidl::StringPtr => std::string migration. Also fixed other move errors
Test: fx run-test lib_component_test
Revert "[escher] Build escher examples for host on buildbot."
This reverts commit 8c49cf449d69ee49842278aba5e1fe7bebcd4654.
Reason for revert: Building the buildbot package locally breaks because of this change. This change will be superceded by https://fuchsia-review.googlesource.com/c/garnet/+/240914
Original change's description:
> [escher] Build escher examples for host on buildbot.
> TEST=CQ and verify the following command runs:
> fx set x64 --packages garnet/packages/buildbot && fx build && out/x64/host_x64/waterfall
> Change-Id: Iea31cd754ab4f832d57f01f20a00a8d4eda21f86
# Not skipping CQ checks because original CL landed > 1 day ago.
[magma] Fix logic for determining how many buffers to copy
This could read off the end of the array. Also fix some tests so they're
more likely to detect this.
[network] Remove broken http_service_tests for now
Test: manually check there is no /pkgfs/packages/http_service_tests
[wlan-hw-sim][ap] AP hw-sim connect test
Test: for i in $(seq 1 100); do
runtests /pkgfs/packages/wlan-hw-sim-tests/0/test || break; done