# 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"]