• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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