Refactor SkQPTestRunner to support running SkSL error tests.

Previously, when we wanted to run multiple test types, we cloned the
outer testing loop and had a bunch of duplicated logic for translating
test results into TestRunner success/failure. This worked, but
maintaining duplicate code can be a chore (see
http://cs/h/skia/skia/+/c5d130aac064cd10a04a9b8d1b9e64f9df1e91b5:platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQPRunner.java?l=102 )

Instead of going back to that approach, I've factored out the logic for
individual tests into a bare-bones "TestExecutor" interface. The outer
work loop takes a TestExecutor and iterates over every test in it.
Unit tests and SkSL error tests can each implement this interface as
needed. For this CL, actual SkSL error test handling is not yet
implemented, so the SkSL tests will all be listed as passing (in
0-1 milliseconds).

In a followup CL, SkSLErrorTestExecutor#run will be implemented to match
the behavior of the C++ SkSL error tests.

Change-Id: I7ff2cf32baaa3ea46d1ad930885365dde0b9ce22
Bug: skia:13042
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/522101
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
1 file changed