1# Copyright (c) 2018 Nordic Semiconductor ASA 2# 3# SPDX-License-Identifier: Apache-2.0 4 5from argparse import Namespace 6 7from build import Build 8import pytest 9 10TEST_CASES = [ 11 {'r': [], 12 's': None, 'c': None}, 13 {'r': ['source_dir'], 14 's': 'source_dir', 'c': None}, 15 {'r': ['source_dir', '--'], 16 's': 'source_dir', 'c': None}, 17 {'r': ['source_dir', '--', 'cmake_opt'], 18 's': 'source_dir', 'c': ['cmake_opt']}, 19 {'r': ['source_dir', '--', 'cmake_opt', 'cmake_opt2'], 20 's': 'source_dir', 'c': ['cmake_opt', 'cmake_opt2']}, 21 {'r': ['thing_one', 'thing_two'], 22 's': 'thing_one', 'c': ['thing_two']}, 23 {'r': ['thing_one', 'thing_two', 'thing_three'], 24 's': 'thing_one', 'c': ['thing_two', 'thing_three']}, 25 {'r': ['--'], 26 's': None, 'c': None}, 27 {'r': ['--', '--'], 28 's': None, 'c': ['--']}, 29 {'r': ['--', 'cmake_opt'], 30 's': None, 'c': ['cmake_opt']}, 31 {'r': ['--', 'cmake_opt', 'cmake_opt2'], 32 's': None, 'c': ['cmake_opt', 'cmake_opt2']}, 33 {'r': ['--', 'cmake_opt', 'cmake_opt2', '--'], 34 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--']}, 35 {'r': ['--', 'cmake_opt', 'cmake_opt2', '--', 'tool_opt'], 36 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--', 'tool_opt']}, 37 {'r': ['--', 'cmake_opt', 'cmake_opt2', '--', 'tool_opt', 'tool_opt2'], 38 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--', 'tool_opt', 39 'tool_opt2']}, 40 {'r': ['--', 'cmake_opt', 'cmake_opt2', '--', 'tool_opt', 'tool_opt2', 41 '--'], 42 's': None, 'c': ['cmake_opt', 'cmake_opt2', '--', 'tool_opt', 'tool_opt2', 43 '--']}, 44 ] 45 46ARGS = Namespace(board=None, build_dir=None, cmake=False, command='build', 47 force=False, help=None, target=None, verbose=3, version=False, 48 zephyr_base=None) 49 50@pytest.mark.parametrize('test_case', TEST_CASES) 51def test_parse_remainder(test_case): 52 b = Build() 53 54 b.args = Namespace() 55 b._parse_remainder(test_case['r']) 56 assert b.args.source_dir == test_case['s'] 57 assert b.args.cmake_opts == test_case['c'] 58