![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
test
aws-iot/filterGcov.sh
- Committer:
- peyo
- Date:
- 2017-04-12
- Revision:
- 0:cd5404401c2f
File content as of revision 0:cd5404401c2f:
#!/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}