[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
1 file changed
tree: 5216e0cd3bb906093bba1944820284c7f500cc2b
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. test_durations
  13. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

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.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.