[roll] Roll fuchsia [fidl][dynsuite] flip around client tests. Modify the client side setup the of the dynsuite to flip around where tests are initiated. Previously, the unit testing framework would be set up in each client, which would then connect to a discoverable harness protocol. The client test would send the request for the particular tests, and the harness would respond appropriate to the test being run. This setup had some significant disadvantages. The previous setup requires every client suite to implement every unit test case. The biggest issue with this is that in order to ensure all tests are run, every client suite has to make sure that it actually includes a test for every dynsuite test case. That is very decentralized, which would make it relatively easy to accidentally forget a test case and miss a bug. It also means that if a test case is skipped intentionally, it's harder to see which cases are missing. By flipping around to have the harness connect to the language-spcific runner and have each test case implemented in one place, its easier to see which tests are enabled for a particular language: you just look at `Runner.IsTestEnabled`. Another issue is that having each client implement each test case is that it reuires a greater degree of cooperation between the clients and the harness. Essentially, every client must know which requests to make for each test case, and they must communicate which test case is being run to the harness so the harness can reply with the correct response. This means both the client under test and harness both need to understand the test case in order for the test to work, which is more error prone and could cause gaps between different languages. Changing to have all the tests implemented on the harness side has the advantage that the client end doesn't need to know anything about what test case is being run. All the client needs to do is make the requested call and reply with the result. This has two main advantages. First, new test cases can sometimes be added without additional changes to the clients, as long as the new tests use the same method calls as the existing tests. Second, what the client needs to implement is fairly clearly described by the FIDL protocols involved, which is less error-prone than having the clients need to know any details of the test cases, and if the client does make implementation mistakes, those mistakes can be caught by the common test case, rather than by silently allowing test cases to succeed when the should have failed. To support unknown interaction testing, this change also renames the Target to ClosedTarget and enables the unknown interaction experiment on the fidl library. When adding new methods to the Runner to trigger particuler client side calls, those Runner methods will take a Target protocol appropriate to the test to be run. Original-Bug: 102339, 88366 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/710951 Original-Revision: c713b917d7926aa6bc2dc78aa62403cddecb5ce5 GitOrigin-RevId: 150bf412aa465aa1fb504cc764d7c32438506e93 Change-Id: I9c493533da512dc254628a3e98cd5b7635ccdfb0
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.