| # Copyright (c) 2023 Google Inc |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| from argparse import Namespace |
| |
| from twister_cmd import Twister |
| import pytest |
| import argparse |
| |
| TEST_CASES = [ |
| { |
| "r": [], |
| "c": False, |
| "test_only": False, |
| }, |
| { |
| "r": ["-c", "-T tests/ztest/base"], |
| "c": True, |
| "T": [" tests/ztest/base"], |
| "test_only": False, |
| }, |
| { |
| "r": ["--test-only"], |
| "c": False, |
| "test_only": True, |
| }, |
| ] |
| |
| ARGS = Namespace( |
| help=None, |
| zephyr_base=None, |
| verbose=0, |
| command="twister", |
| ) |
| |
| |
| @pytest.mark.parametrize("test_case", TEST_CASES) |
| def test_parse_remainder(test_case): |
| twister = Twister() |
| parser = argparse.ArgumentParser( |
| description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter, |
| allow_abbrev=False |
| ) |
| sub_p = parser.add_subparsers() |
| |
| twister.parser = twister.do_add_parser(sub_p) |
| options = twister._parse_arguments(args=test_case["r"], options=None) |
| |
| assert options.clobber_output == test_case["c"] |
| assert options.test_only == test_case["test_only"] |
| if "T" in test_case: |
| assert options.testsuite_root == test_case["T"] |