tree fadc78049fd15b88af90c59603b345de34dafbd5
parent 773923a55d71f1a78a93564556d84fcc6f7342c9
author gaaclarke <30870216+gaaclarke@users.noreply.github.com> 1767903539 -0800
committer GitHub <noreply@github.com> 1767903539 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpYBFCCRC1aQ7uu5UhlAAAkvAQAG9tmIF4vGuWHPmBD4Fz5QHk
 oqyXzsywg2mvXLEBAzY22bZ6mHnv3JV04tgZndD83IeJ6TPTNzDifYrSUh357Nmc
 5R9Ai4iVggWHtE3NLrGZujrLD2pnZ9/jUA9oARIrRZ1K/Ul3kTTAfk7xqFhAjgtc
 DXkoham5LtziX/Q71qq9q9Adj6hJfE4cycrpIXN+aPr35fhUq1HgVAqntHb9eJ7l
 tilrELJobAZwlRq3y/GlvLr++RJ4CLc5irQR55VAlypn6vg3a5hXS2+GHVzKUHxd
 9IvM4wtHORoOWLjk7Vr0PwAoMYrb4aVR0Rq3niAuBLU/Mijysj7VIrEsJOzWYxF/
 iMuEdiIOXJP4DvnEL1jp2QrGyCOw3IGXZ5rnK7SpbMV/poEOgKJTazHkxLPtZyjF
 dx3Z4CfJv0Pz2+yQrkN9/SF9ENgvprSc+9oJtJTtQZYCgZup2FTwZ0SSBzr4hIbZ
 zQYRd1rk3FPBDgmddrKNVG1Du1nA3qLmIpB1k6fcaSTEjRMDOcKMnbiANAfgBsXj
 mr85wGpCEaMPo5cPTSWjJ9UOebgVAWJAGYABW8SOcmkDlZ3AL3ahozC3/0EU3Y+5
 sOp0BmAKn9JrzaKuSZjrDyLkid4IBkyxg6avuzD5T9mKeU+wO1WTNffoCminLkrz
 piiwO8jz/pGlWzl2Pb1D
 =MVL9
 -----END PGP SIGNATURE-----
 

De-interleaves engine dart test output (#180651)

This includes the following changes:
1) Logging output from dart tests is no longer interleaved
1) The backend that is running the test is now printed out
1) `TestingContext` abstraction was added in order to support more
rendering backends in the future

test exempt: it is tests

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md