[roll] Roll fuchsia [gidl] Refactor handles
This CL refactors the way GIDL implements tests for handles:
* Rename rightsConfiguration to allowedFeatures, and pass it in a
context struct (will be used for more things in a follow-up CL).
* Rename HandleWithRights to RestrictedHandle, as it represents the
`restrict(#n, rights: ...)` function. Also require a `type` argument.
Before it wasn't parsed, so the type was always ObjectTypeNone.
* Map #n to ir.Handle and restrict(...) to ir.RestrictedHandle, rather
than always using the latter with ObjectTypeNone/SameRights defaults.
This means RestrictedHandle only now appears in decode_success.
* Introduce ir.AnyHandle to abstract ir.Handle and ir.RestrictedHandle.
Now value builders only see ir.Handle, while equality builders see
both, and can use AnyHandle to avoid code duplication.
* Disallow `restrict(#n, rights: same_rights)`. We should always be able
to assert on the exact set of rights (or just use `#n` otherwise).
* Tighten mixer.HandleDecl conforms(), comparing potentially all three
sets of type and rights (FIDL, handle_defs, restrict).
Test: go test go.fuchsia.dev/fuchsia/tools/fidl/gidl/...
Test: fx test fidl_{rust,{,hl,ll}cpp,go}_conformance fidl-c-conformance dart-bindings-test
Multiply: host_x64/fidl-c-conformance-host-tests: 100
Multiply: host_x64/fidl_rust_conformance_tests: 100
Multiply: host_x64/fidl_cpp_conformance_tests: 100
Multiply: host_x64/fidl_hlcpp_conformance_tests: 100
Multiply: host_x64/fidl_llcpp_conformance_tests: 100
Multiply: host_x64/obj/src/tests/fidl/fidl_go_conformance/fidl_go_conformance_tests.sh: 100
Original-Bug: 116269
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/781764
Original-Revision: a05fb7fdd5684dffee7a77cf68dfe5c1948937b7
GitOrigin-RevId: 97261f30506ea23a89df98424db4069e530a629e
Change-Id: I0f170c09716de8b216fba89bc38c3793aba26075
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.