tree a550b354a793d18814b2dec57d6d4b432b620b65
parent 839447e5250e5da08faa2380df42bae059f87e71
author stuartmorgan <stuartmorgan@google.com> 1669671002 -0500
committer GitHub <noreply@github.com> 1669671002 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJjhShaCRBK7hj4Ov3rIwAAiCQIAKSLpu+XPm4g7VNlkG30nLay
 bHyg1stIaQDj1VlBaeM8R6CcrPQ0ifa2J8eR8oW++lgsmhXwrxLMUv8E91gKRt8e
 n5epZiegFh7fiWsPGmYtINmAT9q9pusJc6HVPn5v+xVHEf1RzaN42E7R7iswPjlY
 th2QQ4I7CSqbsn5xiU+V7XW6ud/JcP+1t8mCwiycBOTdBhfOizxetvfn5eR+NbtP
 QI4y7xj38c3OqDKRof6GutuI8hgqBk16TdZgRkNgTkU1wt/TEssdVTrzFcXG6hBD
 1UWSHM04ELDBd6Wy0/H9b/y9PeXhvrEPOHLoYqfZe6Atzi8JUnp66jnYHh77Qmc=
 =E7zw
 -----END PGP SIGNATURE-----
 

[pigeon] Initial integration test setup (#2851)

* [pigeon] Initial integration test setup

This sets up initial proof-of-concept integration tests using the new
shared native test harness:
- Integration tests on the Dart side for void->void and
  Everything->Everything calls.
- macOS implementations in the test plugin on the native side.
- A new test target in the test script to drive them via `flutter test`.
- A minimal change to the example app so that `flutter run`-ing it will
  test that the void->void call is wired up.

Since this simple initial test hit
https://github.com/flutter/flutter/issues/111083, which caused the test
to fail, this includes a fix for that.

Short-term future work (by me):
- Add integration test native setup and script targets for the other
  generators. This includes one just to keep the initial review scope
  smaller.
- Update https://github.com/flutter/packages/pull/2816 to include the
  integration test since it's still blocked until I can address the CI
  issues.

Medium-term future work (not all by me):
- Remove the legacy iOS e2e test scaffold that is currently disabled.
- Add significantly more integration test coverage (likely including
  https://github.com/flutter/flutter/issues/115168 to reduce redundant
  API setup), including Flutter API integration tests rather than just
  host API tests.

Part of https://github.com/flutter/flutter/issues/111505
Fixes https://github.com/flutter/flutter/issues/111083

* Version bump for bugfix

* Check in generated files needed for analysis

* Add the actual integration test file, which was left out

* Address review comments

* Fix incorrect Swift unit test for void call fix

* Analysis ignore

* Autoformat