e49db5dd4b4d465cc92590eeef2b183084dacad8
[src/qa-testdefinitions.git] / common / scripts / ptest-lava-wrapper.sh
1 #!/bin/bash
2
3 REQUIREDPTESTS="busybox"
4
5 # Check if ptest packages are installed
6 command -v ptest-runner >/dev/null 2>&1
7 if [ $? -ne 0 ] ; then
8     lava-test-case ptest-installed --result FAIL
9 else
10     # Run ptests for specified packages
11     for unit in ${REQUIREDPTESTS}; do
12         UNIT_LOG=$(ptest-runner ${unit} 2> /dev/null)
13         if [ $? -eq 0 ] ; then
14             lava-test-set start ptest-$unit
15             # grep: Get only the ptests results, no log
16             # sed 1: replace spaces by hyphens
17             # sed 2: remove any special character
18             # sed 3: find status and test name, wrap it in a lava-test-case call
19             # sh: execute the lava-test-case commands
20             echo "$UNIT_LOG" | grep -e 'PASS' -e 'FAIL' | sed 's/ /-/g' | sed 's/[^a-z|A-Z|0-9|-]//g' | sed 's/\([^-]*\)-\(.*\)/lava-test-case \2 --result \1/' | sh
21             lava-test-set stop ptest-$unit
22         else
23             lava-test-case ptest-runner ${unit} --result fail
24         fi
25     done
26     lava-test-case ptest-runtime --measurement $SECONDS --units seconds --result PASS
27 fi
28
29 # Wait for LAVA to parse all the tests from stdout
30 sleep 60