mirror of
https://github.com/pine64/bl_iot_sdk.git
synced 2024-09-04 05:59:19 +00:00
64 lines
1.5 KiB
Bash
Executable File
64 lines
1.5 KiB
Bash
Executable File
#!/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}
|