]>
Commit | Line | Data |
---|---|---|
2f52018c SG |
1 | #!/bin/bash |
2 | ||
c9adb355 | 3 | # Script to run all U-Boot tests that use sandbox. |
499fde5c | 4 | # $1: tests to run (empty for all, 'quick' for quick ones only) |
c9adb355 SG |
5 | |
6 | # Runs a test and checks the exit code to decide if it passed | |
7 | # $1: Test name | |
8 | # $2 onwards: command line to run | |
2f52018c | 9 | run_test() { |
c9adb355 SG |
10 | echo -n "$1: " |
11 | shift | |
12 | "$@" | |
3bc11e81 | 13 | [ $? -ne 0 ] && failures=$((failures+1)) |
2f52018c | 14 | } |
07f4eadc | 15 | |
499fde5c SG |
16 | # SKip slow tests if requested |
17 | [ "$1" == "quick" ] && mark_expr="not slow" | |
18 | ||
3bc11e81 | 19 | failures=0 |
73a01d90 | 20 | |
029ab15a | 21 | # Run all tests that the standard sandbox build can support |
499fde5c | 22 | run_test "sandbox" ./test/py/test.py --bd sandbox --build -m "${mark_expr}" |
029ab15a SG |
23 | |
24 | # Run tests which require sandbox_spl | |
c9adb355 | 25 | run_test "sandbox_spl" ./test/py/test.py --bd sandbox_spl --build \ |
b0edea3c | 26 | -k 'test_ofplatdata or test_handoff' |
029ab15a | 27 | |
3bc11e81 SG |
28 | # Run tests for the flat-device-tree version of sandbox. This is a special |
29 | # build which does not enable CONFIG_OF_LIVE for the live device tree, so we can | |
30 | # check that functionality is the same. The standard sandbox build (above) uses | |
31 | # CONFIG_OF_LIVE. | |
2673afe2 SG |
32 | run_test "sandbox_flattree" ./test/py/test.py --bd sandbox_flattree --build \ |
33 | -k test_ut | |
2f52018c | 34 | |
734f3de9 | 35 | # Set up a path to dtc (device-tree compiler) and libfdt.py, a library it |
8acce60b SG |
36 | # provides and which is built by the sandbox_spl config. Also set up the path |
37 | # to tools build by the build. | |
ed772fe7 | 38 | DTC_DIR=build-sandbox_spl/scripts/dtc |
734f3de9 SG |
39 | export PYTHONPATH=${DTC_DIR}/pylibfdt |
40 | export DTC=${DTC_DIR}/dtc | |
8acce60b | 41 | TOOLS_DIR=build-sandbox_spl/tools |
ed772fe7 | 42 | |
8acce60b | 43 | run_test "binman" ./tools/binman/binman -t --toolpath ${TOOLS_DIR} |
c9adb355 | 44 | run_test "patman" ./tools/patman/patman --test |
499fde5c SG |
45 | |
46 | [ "$1" == "quick" ] && skip=--skip-net-tests | |
47 | run_test "buildman" ./tools/buildman/buildman -t ${skip} | |
3bc11e81 | 48 | run_test "fdt" ./tools/dtoc/test_fdt -t |
c9adb355 | 49 | run_test "dtoc" ./tools/dtoc/dtoc -t |
72d8172b | 50 | |
30d704c6 SG |
51 | # This needs you to set up Python test coverage tools. |
52 | # To enable Python test coverage on Debian-type distributions (e.g. Ubuntu): | |
16d836cd | 53 | # $ sudo apt-get install python-pytest python-coverage |
8acce60b SG |
54 | export PATH=$PATH:${TOOLS_DIR} |
55 | run_test "binman code coverage" ./tools/binman/binman -T --toolpath ${TOOLS_DIR} | |
c9adb355 SG |
56 | run_test "dtoc code coverage" ./tools/dtoc/dtoc -T |
57 | run_test "fdt code coverage" ./tools/dtoc/test_fdt -T | |
30d704c6 | 58 | |
3bc11e81 | 59 | if [ $failures == 0 ]; then |
2f52018c SG |
60 | echo "Tests passed!" |
61 | else | |
62 | echo "Tests FAILED" | |
63 | exit 1 | |
64 | fi |