ci: rework tests to break out ios/android tests (#2519)
* ci: rework tests to break out ios/android tests Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review * ci: fix check for wheels Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * Update .github/workflows/test.yml * tests: pass via flag instead of envvar Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * tests: apply to serial/parallel Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * tests: join together marks Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * tests: join together marks Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * ci: break up azure job Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * ci: use matrix for azure pipelines Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * Try installing Java on macos as well * Revert "Try installing Java on macos as well" This reverts commit aedf0f5106d2467938705b85180a0b249d49b99d. * Try to get the most basic android test running first * Rename platform to test_select, move headers in run_tests Maybe it's a personal thing, but the header location was really making me have to think more than I needed to look at that file! * Only run docker unit tests on machines that are testing linux * Update the flag name in azure-pipelines too * Update azure-pipelines.yml --------- Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Matthieu Darbois <mayeut@users.noreply.github.com> Co-authored-by: Joe Rickerby <joerick@mac.com>
This commit is contained in:
co-authored by
Copilot
Matthieu Darbois
Joe Rickerby
parent
63bdd4f043
commit
cade3864de
+33
-14
@@ -27,6 +27,12 @@ if __name__ == "__main__":
|
||||
default=default_cpu_count,
|
||||
help="number of processes to use for testing",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--test-select",
|
||||
choices={"all", "native", "android", "ios", "pyodide"},
|
||||
default="all",
|
||||
help="Either 'native' or 'android'/'ios'/'pyodide'",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
# move cwd to the project root
|
||||
@@ -50,20 +56,37 @@ if __name__ == "__main__":
|
||||
)
|
||||
|
||||
# unit tests
|
||||
print(
|
||||
"\n\n================================== UNIT TESTS ==================================",
|
||||
flush=True,
|
||||
)
|
||||
unit_test_args = [sys.executable, "-m", "pytest", "unit_test"]
|
||||
|
||||
if sys.platform.startswith("linux") and os.environ.get("CIBW_PLATFORM", "linux") == "linux":
|
||||
if (
|
||||
sys.platform.startswith("linux")
|
||||
and os.environ.get("CIBW_PLATFORM", "linux") == "linux"
|
||||
and args.test_select in ["all", "native"]
|
||||
):
|
||||
# run the docker unit tests only on Linux
|
||||
unit_test_args += ["--run-docker"]
|
||||
|
||||
if args.run_podman:
|
||||
unit_test_args += ["--run-podman"]
|
||||
|
||||
subprocess.run(unit_test_args, check=True)
|
||||
|
||||
print(
|
||||
"\n\n================================== UNIT TESTS ==================================",
|
||||
"\n\n=========================== SERIAL INTEGRATION TESTS ===========================",
|
||||
flush=True,
|
||||
)
|
||||
subprocess.run(unit_test_args, check=True)
|
||||
|
||||
match args.test_select:
|
||||
case "all":
|
||||
marks = []
|
||||
case "native":
|
||||
marks = ["not pyodide", "not android", "not ios"]
|
||||
case mark:
|
||||
marks = [f"{mark}"]
|
||||
|
||||
# Run the serial integration tests without multiple processes
|
||||
serial_integration_test_args = [
|
||||
@@ -71,7 +94,7 @@ if __name__ == "__main__":
|
||||
"-m",
|
||||
"pytest",
|
||||
"-m",
|
||||
"serial",
|
||||
f"{' and '.join(['serial', *marks])}",
|
||||
"-x",
|
||||
"--durations",
|
||||
"0",
|
||||
@@ -79,19 +102,19 @@ if __name__ == "__main__":
|
||||
"test",
|
||||
"-vv",
|
||||
]
|
||||
print(
|
||||
"\n\n=========================== SERIAL INTEGRATION TESTS ===========================",
|
||||
flush=True,
|
||||
)
|
||||
|
||||
subprocess.run(serial_integration_test_args, check=True)
|
||||
|
||||
# Non-serial integration tests
|
||||
print(
|
||||
"\n\n========================= NON-SERIAL INTEGRATION TESTS =========================",
|
||||
flush=True,
|
||||
)
|
||||
integration_test_args = [
|
||||
sys.executable,
|
||||
"-m",
|
||||
"pytest",
|
||||
"-m",
|
||||
"not serial",
|
||||
f"{' and '.join(['not serial', *marks])}",
|
||||
f"--numprocesses={args.num_processes}",
|
||||
"-x",
|
||||
"--durations",
|
||||
@@ -104,8 +127,4 @@ if __name__ == "__main__":
|
||||
if sys.platform.startswith("linux") and args.run_podman:
|
||||
integration_test_args += ["--run-podman"]
|
||||
|
||||
print(
|
||||
"\n\n========================= NON-SERIAL INTEGRATION TESTS =========================",
|
||||
flush=True,
|
||||
)
|
||||
subprocess.run(integration_test_args, check=True)
|
||||
|
||||
Reference in New Issue
Block a user