1#!/usr/bin/env vpython3 2# Copyright 2023 The Chromium Authors 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6# The --adb-device-id flag is required to run tests on your Android device. 7# Otherwise, the Android tests will be ignored. 8 9from __future__ import annotations 10 11import argparse 12import pathlib 13import sys 14 15import pytest 16 17END2END_TEST_DIR = pathlib.Path(__file__).absolute().parent 18REPO_DIR = pathlib.Path(__file__).absolute().parents[2] 19 20if REPO_DIR not in sys.path: 21 sys.path.insert(0, str(REPO_DIR)) 22 23if __name__ == "__main__": 24 pass_through_args = sys.argv[1:] 25 ignore_tests = [] 26 parser = argparse.ArgumentParser() 27 parser.add_argument("--ignore-tests", required=False) 28 parser.add_argument("--adb-device-id", required=False) 29 args, _ = parser.parse_known_args() 30 if args.ignore_tests: 31 subfolders = args.ignore_tests.split(",") 32 ignore_tests = [f"--ignore={END2END_TEST_DIR / x}" for x in subfolders] 33 elif not args.adb_device_id: 34 ignore_tests = [f"--ignore={END2END_TEST_DIR / 'android'}"] 35 return_code = pytest.main([ 36 "--exitfirst", "--verbose", "--dist=loadgroup", "--log-cli-level=DEBUG", 37 "-o", "log_cli=True", "-rs", 38 str(END2END_TEST_DIR), *pass_through_args 39 ] + ignore_tests) 40 sys.exit(return_code) 41