fix(ci): align toolchains and isolate platform tests

This commit is contained in:
edde746
2026-07-24 10:06:50 +02:00
parent 6c03094ef1
commit 40833e65ec
17 changed files with 170 additions and 147 deletions
+10 -4
View File
@@ -13,6 +13,7 @@ ANDROID_15_INSTRUMENTATION_CLASSES = (
"androidx.media3.decoder.ffmpeg.PlezyFfmpegPlaybackTest,"
"com.edde746.plezy.exoplayer.PlezyAudioModePlaybackTest"
)
ANDROID_15_INSTRUMENTATION_TARGET = "android-15-instrumentation"
GROUPS: dict[str, tuple[tuple[str, ...], ...]] = {
@@ -119,8 +120,6 @@ def run_android_15_instrumentation() -> None:
def run_group(name: str) -> int:
if name == "android-15":
run_android_15_instrumentation()
failed = False
for arguments in GROUPS[name]:
print(f"==> Maestro {' '.join(arguments)}", flush=True)
@@ -131,11 +130,18 @@ def run_group(name: str) -> int:
return 1 if failed else 0
def run_target(name: str) -> int:
if name == ANDROID_15_INSTRUMENTATION_TARGET:
run_android_15_instrumentation()
return 0
return run_group(name)
def main(argv: Sequence[str] | None = None) -> int:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("group", choices=GROUPS)
parser.add_argument("target", choices=(*GROUPS, ANDROID_15_INSTRUMENTATION_TARGET))
args = parser.parse_args(argv)
return run_group(args.group)
return run_target(args.target)
if __name__ == "__main__":
+9 -3
View File
@@ -181,13 +181,21 @@ class CiGroupTests(unittest.TestCase):
with (
patch.object(run_maestro_ci.run_maestro, "main", side_effect=statuses) as run,
patch.object(run_maestro_ci, "run_android_15_instrumentation") as instrumentation,
redirect_stdout(io.StringIO()),
):
exit_status = run_maestro_ci.run_group("android-15")
self.assertEqual(exit_status, 1)
self.assertEqual(run.call_count, expected_runs)
def test_android_15_instrumentation_has_an_isolated_target(self) -> None:
with (
patch.object(run_maestro_ci, "run_android_15_instrumentation") as instrumentation,
redirect_stdout(io.StringIO()),
):
exit_status = run_maestro_ci.run_target(run_maestro_ci.ANDROID_15_INSTRUMENTATION_TARGET)
self.assertEqual(exit_status, 0)
instrumentation.assert_called_once_with()
def test_group_recipes_are_valid_runner_invocations(self) -> None:
@@ -199,14 +207,12 @@ class CiGroupTests(unittest.TestCase):
def test_group_stops_after_interruption(self) -> None:
with (
patch.object(run_maestro_ci.run_maestro, "main", return_value=143) as run,
patch.object(run_maestro_ci, "run_android_15_instrumentation") as instrumentation,
redirect_stdout(io.StringIO()),
):
exit_status = run_maestro_ci.run_group("android-15")
self.assertEqual(exit_status, 143)
run.assert_called_once_with(("basic",))
instrumentation.assert_called_once_with()
if __name__ == "__main__":