| # Copyright (c) 2018 Nordic Semiconductor ASA |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| from argparse import Namespace |
| |
| from build import Build |
| import pytest |
| |
| TEST_CASES = [ |
| {'r': [], |
| 's': None, 'c': None}, |
| {'r': ['source_dir'], |
| 's': 'source_dir', 'c': None}, |
| {'r': ['source_dir', '--'], |
| 's': 'source_dir', 'c': None}, |
| {'r': ['source_dir', '--', 'cmake_opt'], |
| 's': 'source_dir', 'c': ['cmake_opt']}, |
| {'r': ['source_dir', '--', 'cmake_opt', 'cmake_opt2'], |
| 's': 'source_dir', 'c': ['cmake_opt', 'cmake_opt2']}, |
| {'r': ['thing_one', 'thing_two'], |
| 's': 'thing_one', 'c': ['thing_two']}, |
| {'r': ['thing_one', 'thing_two', 'thing_three'], |
| 's': 'thing_one', 'c': ['thing_two', 'thing_three']}, |
| {'r': ['--'], |
| 's': None, 'c': None}, |
| {'r': ['--', '--'], |
| 's': None, 'c': ['--']}, |
| {'r': ['--', 'cmake_opt'], |
| 's': None, 'c': ['cmake_opt']}, |
| {'r': ['--', 'cmake_opt', 'cmake_opt2'], |
| 's': None, 'c': ['cmake_opt', 'cmake_opt2']}, |
| {'r': ['--', 'cmake_opt', 'cmake_opt2', '--'], |
| 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--']}, |
| {'r': ['--', 'cmake_opt', 'cmake_opt2', '--', 'tool_opt'], |
| 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--', 'tool_opt']}, |
| {'r': ['--', 'cmake_opt', 'cmake_opt2', '--', 'tool_opt', 'tool_opt2'], |
| 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--', 'tool_opt', |
| 'tool_opt2']}, |
| {'r': ['--', 'cmake_opt', 'cmake_opt2', '--', 'tool_opt', 'tool_opt2', |
| '--'], |
| 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--', 'tool_opt', 'tool_opt2', |
| '--']}, |
| ] |
| |
| ARGS = Namespace(board=None, build_dir=None, cmake=False, command='build', |
| force=False, help=None, target=None, verbose=3, version=False, |
| zephyr_base=None) |
| |
| @pytest.mark.parametrize('test_case', TEST_CASES) |
| def test_parse_remainder(test_case): |
| b = Build() |
| |
| b.args = Namespace() |
| b._parse_remainder(test_case['r']) |
| assert b.args.source_dir == test_case['s'] |
| assert b.args.cmake_opts == test_case['c'] |