mirror of
https://github.com/pine64/bl_iot_sdk.git
synced 2024-09-15 15:14:03 +00:00
64 lines
1.5 KiB
Bash
64 lines
1.5 KiB
Bash
|
#!/bin/bash
|
||
|
INPUT_FILE=$1
|
||
|
TEMP_FILE1=${INPUT_FILE}1.tmp
|
||
|
TEMP_FILE2=${INPUT_FILE}2.tmp
|
||
|
TEMP_FILE3=${INPUT_FILE}3.tmp
|
||
|
ERROR_FILE=$2
|
||
|
OUTPUT_FILE=$3
|
||
|
HTML_OUTPUT_FILE=$3.html
|
||
|
TEST_RESULTS=$4
|
||
|
|
||
|
flattenGcovOutput() {
|
||
|
while read line1
|
||
|
do
|
||
|
read line2
|
||
|
echo $line2 " " $line1
|
||
|
read junk
|
||
|
read junk
|
||
|
done < ${INPUT_FILE}
|
||
|
}
|
||
|
|
||
|
getRidOfCruft() {
|
||
|
sed '-e s/^Lines.*://g' \
|
||
|
'-e s/^[0-9]\./ &/g' \
|
||
|
'-e s/^[0-9][0-9]\./ &/g' \
|
||
|
'-e s/of.*File/ /g' \
|
||
|
"-e s/'//g" \
|
||
|
'-e s/^.*\/usr\/.*$//g' \
|
||
|
'-e s/^.*\.$//g'
|
||
|
}
|
||
|
|
||
|
flattenPaths() {
|
||
|
sed \
|
||
|
-e 's/\/[^/][^/]*\/[^/][^/]*\/\.\.\/\.\.\//\//g' \
|
||
|
-e 's/\/[^/][^/]*\/[^/][^/]*\/\.\.\/\.\.\//\//g' \
|
||
|
-e 's/\/[^/][^/]*\/[^/][^/]*\/\.\.\/\.\.\//\//g' \
|
||
|
-e 's/\/[^/][^/]*\/\.\.\//\//g'
|
||
|
}
|
||
|
|
||
|
getFileNameRootFromErrorFile() {
|
||
|
sed '-e s/gc..:cannot open .* file//g' ${ERROR_FILE}
|
||
|
}
|
||
|
|
||
|
writeEachNoTestCoverageFile() {
|
||
|
while read line
|
||
|
do
|
||
|
echo " 0.00% " ${line}
|
||
|
done
|
||
|
}
|
||
|
|
||
|
createHtmlOutput() {
|
||
|
echo "<table border="2" cellspacing="5" cellpadding="5">"
|
||
|
echo "<tr><th>Coverage</th><th>File</th></tr>"
|
||
|
sed "-e s/.*% /<tr><td>&<\/td><td>/" \
|
||
|
"-e s/[a-zA-Z0-9_]*\.[ch][a-z]*/<a href='file:\.\/&.gcov'>&<\/a><\/td><\/tr>/"
|
||
|
echo "</table>"
|
||
|
sed "-e s/.*/&<br>/g" < ${TEST_RESULTS}
|
||
|
}
|
||
|
|
||
|
flattenGcovOutput | getRidOfCruft | flattenPaths > ${TEMP_FILE1}
|
||
|
getFileNameRootFromErrorFile | writeEachNoTestCoverageFile | flattenPaths > ${TEMP_FILE2}
|
||
|
cat ${TEMP_FILE1} ${TEMP_FILE2} | sort | uniq > ${OUTPUT_FILE}
|
||
|
createHtmlOutput < ${OUTPUT_FILE} > ${HTML_OUTPUT_FILE}
|
||
|
rm -f ${TEMP_FILE1} ${TEMP_FILE2}
|