]>
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" | |
76160801 SG |
18 | [ "$1" == "quick" ] && skip=--skip-net-tests |
19 | [ "$1" == "tools" ] && tools_only=y | |
499fde5c | 20 | |
3bc11e81 | 21 | failures=0 |
73a01d90 | 22 | |
76160801 SG |
23 | if [ -z "$tools_only" ]; then |
24 | # Run all tests that the standard sandbox build can support | |
25 | run_test "sandbox" ./test/py/test.py --bd sandbox --build \ | |
26 | -m "${mark_expr}" | |
27 | fi | |
029ab15a SG |
28 | |
29 | # Run tests which require sandbox_spl | |
c9adb355 | 30 | run_test "sandbox_spl" ./test/py/test.py --bd sandbox_spl --build \ |
76160801 | 31 | -k 'test_ofplatdata or test_handoff' |
029ab15a | 32 | |
76160801 SG |
33 | if [ -z "$tools_only" ]; then |
34 | # Run tests for the flat-device-tree version of sandbox. This is a special | |
35 | # build which does not enable CONFIG_OF_LIVE for the live device tree, so we can | |
36 | # check that functionality is the same. The standard sandbox build (above) uses | |
37 | # CONFIG_OF_LIVE. | |
38 | run_test "sandbox_flattree" ./test/py/test.py --bd sandbox_flattree \ | |
39 | --build -k test_ut | |
40 | fi | |
2f52018c | 41 | |
734f3de9 | 42 | # Set up a path to dtc (device-tree compiler) and libfdt.py, a library it |
8acce60b SG |
43 | # provides and which is built by the sandbox_spl config. Also set up the path |
44 | # to tools build by the build. | |
ed772fe7 | 45 | DTC_DIR=build-sandbox_spl/scripts/dtc |
734f3de9 SG |
46 | export PYTHONPATH=${DTC_DIR}/pylibfdt |
47 | export DTC=${DTC_DIR}/dtc | |
8acce60b | 48 | TOOLS_DIR=build-sandbox_spl/tools |
ed772fe7 | 49 | |
53cd5d92 | 50 | run_test "binman" ./tools/binman/binman --toolpath ${TOOLS_DIR} test |
c9adb355 | 51 | run_test "patman" ./tools/patman/patman --test |
499fde5c | 52 | |
499fde5c | 53 | run_test "buildman" ./tools/buildman/buildman -t ${skip} |
3bc11e81 | 54 | run_test "fdt" ./tools/dtoc/test_fdt -t |
c9adb355 | 55 | run_test "dtoc" ./tools/dtoc/dtoc -t |
72d8172b | 56 | |
30d704c6 SG |
57 | # This needs you to set up Python test coverage tools. |
58 | # To enable Python test coverage on Debian-type distributions (e.g. Ubuntu): | |
16d836cd | 59 | # $ sudo apt-get install python-pytest python-coverage |
8acce60b | 60 | export PATH=$PATH:${TOOLS_DIR} |
53cd5d92 | 61 | run_test "binman code coverage" ./tools/binman/binman test -T |
c9adb355 SG |
62 | run_test "dtoc code coverage" ./tools/dtoc/dtoc -T |
63 | run_test "fdt code coverage" ./tools/dtoc/test_fdt -T | |
30d704c6 | 64 | |
3bc11e81 | 65 | if [ $failures == 0 ]; then |
2f52018c SG |
66 | echo "Tests passed!" |
67 | else | |
68 | echo "Tests FAILED" | |
69 | exit 1 | |
70 | fi |