mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-23 20:24:26 +08:00
test/py: Allow using buildman to build U-Boot
It is a pain to have to set the CROSS_COMPILE environment variable when using test.py's --build option. It is possible to get this using the -A option from buildman. But it seems better to just use buildman to do the build when it is available. However using buildman adds a new dependency to the test system which we want to avoid. So leave the default as is and add a flag to make it use buildman. Note that most of these changes relate to test.py and the parts of the travis/gitlab/azure scripts which relate to running test and building a suitable U-Boot to run the tests on. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
7ec1255cea
commit
f5ec7eebf7
@ -138,6 +138,9 @@ command-line option; see the next section.
|
||||
before running the tests. If using this option, make sure that any
|
||||
environment variables required by the build process are already set, such as
|
||||
`$CROSS_COMPILE`.
|
||||
- `--buildman` indicates that `--build` should use buildman to build U-Boot.
|
||||
There is no need to set $CROSS_COMPILE` in this case since buildman handles
|
||||
it.
|
||||
- `--build-dir` sets the directory containing the compiled U-Boot binaries.
|
||||
If omitted, this is `${source_dir}/build-${board_type}`.
|
||||
- `--result-dir` sets the directory to write results, such as log files,
|
||||
@ -333,7 +336,7 @@ PATH=$HOME/ubtest/bin:$PATH \
|
||||
|
||||
If you want the test script to compile U-Boot for you too, then you likely
|
||||
need to set `$CROSS_COMPILE` to allow this, and invoke the test script as
|
||||
follow:
|
||||
follows:
|
||||
|
||||
```bash
|
||||
CROSS_COMPILE=arm-none-eabi- \
|
||||
@ -342,6 +345,14 @@ CROSS_COMPILE=arm-none-eabi- \
|
||||
./test/py/test.py --bd seaboard --build
|
||||
```
|
||||
|
||||
or, using buildman to handle it:
|
||||
|
||||
```bash
|
||||
PATH=$HOME/ubtest/bin:$PATH \
|
||||
PYTHONPATH=${HOME}/ubtest/py/${HOSTNAME}:${PYTHONPATH} \
|
||||
./test/py/test.py --bd seaboard --build --buildman
|
||||
```
|
||||
|
||||
## Writing tests
|
||||
|
||||
Please refer to the pytest documentation for details of writing pytest tests.
|
||||
|
@ -70,6 +70,8 @@ def pytest_addoption(parser):
|
||||
help='U-Boot board identity/instance')
|
||||
parser.addoption('--build', default=False, action='store_true',
|
||||
help='Compile U-Boot before running tests')
|
||||
parser.addoption('--buildman', default=False, action='store_true',
|
||||
help='Use buildman to build U-Boot (assuming --build is given)')
|
||||
parser.addoption('--gdbserver', default=None,
|
||||
help='Run sandbox under gdbserver. The argument is the channel '+
|
||||
'over which gdbserver should communicate, e.g. localhost:1234')
|
||||
@ -140,16 +142,26 @@ def pytest_configure(config):
|
||||
log = multiplexed_log.Logfile(result_dir + '/test-log.html')
|
||||
|
||||
if config.getoption('build'):
|
||||
if build_dir != source_dir:
|
||||
o_opt = 'O=%s' % build_dir
|
||||
if config.getoption('buildman'):
|
||||
if build_dir != source_dir:
|
||||
dest_args = ['-o', build_dir, '-w']
|
||||
else:
|
||||
dest_args = ['-i']
|
||||
cmds = (['buildman', '--board', board_type] + dest_args,)
|
||||
name = 'buildman'
|
||||
else:
|
||||
o_opt = ''
|
||||
cmds = (
|
||||
['make', o_opt, '-s', board_type + '_defconfig'],
|
||||
['make', o_opt, '-s', '-j8'],
|
||||
)
|
||||
with log.section('make'):
|
||||
runner = log.get_runner('make', sys.stdout)
|
||||
if build_dir != source_dir:
|
||||
o_opt = 'O=%s' % build_dir
|
||||
else:
|
||||
o_opt = ''
|
||||
cmds = (
|
||||
['make', o_opt, '-s', board_type + '_defconfig'],
|
||||
['make', o_opt, '-s', '-j8'],
|
||||
)
|
||||
name = 'make'
|
||||
|
||||
with log.section(name):
|
||||
runner = log.get_runner(name, sys.stdout)
|
||||
for cmd in cmds:
|
||||
runner.run(cmd, cwd=source_dir)
|
||||
runner.close()
|
||||
|
Loading…
Reference in New Issue
Block a user