1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # Copyright (c) 2018 Foundries.io
- # Copyright (c) 2019 Nordic Semiconductor ASA.
- #
- # SPDX-License-Identifier: Apache-2.0
- import argparse
- import platform
- from unittest.mock import patch, call
- import pytest
- from runners.dediprog import DediProgBinaryRunner
- from conftest import RC_KERNEL_BIN
- DPCMD_EXE = 'dpcmd.exe' if platform.system() == 'Windows' else 'dpcmd'
- EXPECTED_COMMAND = {
- (RC_KERNEL_BIN, None):
- [DPCMD_EXE,
- '--auto', RC_KERNEL_BIN,
- '-x', 'ff',
- '--silent', '--verify'],
- (RC_KERNEL_BIN, '0'):
- [DPCMD_EXE,
- '--auto', RC_KERNEL_BIN, '--vcc', '0',
- '-x', 'ff',
- '--silent', '--verify'],
- (RC_KERNEL_BIN, '1'):
- [DPCMD_EXE,
- '--auto', RC_KERNEL_BIN, '--vcc', '1',
- '-x', 'ff',
- '--silent', '--verify'],
- }
- def require_patch(program):
- assert program in [DPCMD_EXE]
- def id_fn(tc):
- return 'spi_image={},vcc={}'.format(*tc)
- @pytest.mark.parametrize('tc', [
- (RC_KERNEL_BIN, None),
- (RC_KERNEL_BIN, '0'),
- (RC_KERNEL_BIN, '1'),
- ], ids=id_fn)
- @patch('runners.core.ZephyrBinaryRunner.require', side_effect=require_patch)
- @patch('runners.core.ZephyrBinaryRunner.check_call')
- def test_dediprog_init(cc, req, tc, runner_config):
- '''Test commands using a runner created by constructor.'''
- spi_image, vcc = tc
- runner = DediProgBinaryRunner(runner_config, spi_image=spi_image,
- vcc=vcc, retries=0)
- runner.run('flash')
- assert cc.call_args_list == [call(EXPECTED_COMMAND[tc])]
- @pytest.mark.parametrize('tc', [
- (RC_KERNEL_BIN, None),
- (RC_KERNEL_BIN, '0'),
- (RC_KERNEL_BIN, '1'),
- ], ids=id_fn)
- @patch('runners.core.ZephyrBinaryRunner.require', side_effect=require_patch)
- @patch('runners.core.ZephyrBinaryRunner.check_call')
- def test_dediprog_create(cc, req, tc, runner_config):
- '''Test commands using a runner created from command line parameters.'''
- spi_image, vcc = tc
- args = ['--spi-image', spi_image, '--retries', '0']
- if vcc:
- args.extend(['--vcc', vcc])
- parser = argparse.ArgumentParser()
- DediProgBinaryRunner.add_parser(parser)
- arg_namespace = parser.parse_args(args)
- runner = DediProgBinaryRunner.create(runner_config, arg_namespace)
- runner.run('flash')
- assert cc.call_args_list == [call(EXPECTED_COMMAND[tc])]
|