Team, how can i get rid of 't' in the insertion that am performing? and is there a better way?
my usecase is am generating a bazel coverage report and that report is test.dat which am converting to dat.xml using the lcov_cobertura
enter link description here
after conversion xml fiel is missing a node for which am using sed to insert it back in manually because i don't know why it is missed.
I have no clue why it is not inserting that line or missing to insert. so i need help in inserting it but i see an extra t
being inserted which is used for tab space.
raw bazel output test.dat is
DA:931,0
LH:129
LF:693
end_of_record
TN:
SF:src/common/test.go
DA:10,0
DA:11,0
DA:12,0
DA:13,0
DA:14,0
DA:15,0
DA:17,0
DA:18,0
DA:19,0
DA:20,0
DA:22,0
LH:0
LF:11
end_of_record
TN:
SF:src/common/test.go
DA:9,1
below is the xml file generated after using lcov_cobertura
convert using lcov_cobertura test.dat -o coverage.xml
cat coverage.xml
< missing the src/common/test.go on line 8. so for now am manually inserting it with sed and it is showing char t
in begining of line. please advise
<?xml version="1.0" ?>
<!DOCTYPE coverage
SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-04.dtd'>
<coverage branch-rate="0.0" branches-covered="0" branches-valid="0" complexity="0" line-rate="0.5423496311641774" lines-covered="77492" lines-valid="142882" timestamp="1677260258" version="1">
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.0" name="src.common.test.go">
<lineToCover branch="false" covered="false" lineNumber="15"/>
<lineToCover branch="false" covered="false" lineNumber="445"/>
<lineToCover branch="false" covered="false" lineNumber="446"/>
</file>
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.18614718614718614" name="src.common.test.go">
<lineToCover branch="false" covered="true" lineNumber="68"/>
<lineToCover branch="false" covered="false" lineNumber="929"/>
<lineToCover branch="false" covered="false" lineNumber="931"/>
</file>
<lineToCover branch="false" covered="false" lineNumber="10"/>
<lineToCover branch="false" covered="false" lineNumber="11"/>
<lineToCover branch="false" covered="false" lineNumber="22"/>
</file>
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.8055555555555556" name="src.common.test.go">
<lineToCover branch="false" covered="true" lineNumber="9"/>
<lineToCover branch="false" covered="true" lineNumber="10"/>
<lineToCover branch="false" covered="true" lineNumber="45"/>
<lineToCover branch="false" covered="true" lineNumber="46"/>
</file>
<file branch-rate="0.0"
<lineToCover branch="false" covered="true" lineNumber="121"/>
<lineToCover branch="false" covered="true" lineNumber="122"/>
</file>
</coverage>
expected output
see the insertion at line 8 below <file branch-rate=0.0 complexity=0 path=src/common/test.go....
this insertion i did with sed but it is also inserting t
. how to avoid that?
<?xml version="1.0" ?>
<!DOCTYPE coverage
SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-04.dtd'>
<coverage branch-rate="0.0" branches-covered="0" branches-valid="0" complexity="0" line-rate="0.5423496311641774" lines-covered="77492" lines-valid="142882" timestamp="1677260258" version="1">
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.0" name="src.common.test.go">
<lineToCover branch="false" covered="false" lineNumber="15"/>
<lineToCover branch="false" covered="false" lineNumber="445"/>
<lineToCover branch="false" covered="false" lineNumber="446"/>
</file>
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.18614718614718614" name="src.common.test.go">
<lineToCover branch="false" covered="false" lineNumber="445"/>
<lineToCover branch="false" covered="false" lineNumber="446"/>
</file>
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.18614718614718614" name="src.common.test.go">
<lineToCover branch="false" covered="true" lineNumber="68"/>
<lineToCover branch="false" covered="false" lineNumber="929"/>
<lineToCover branch="false" covered="false" lineNumber="931"/>
t <file branch-rate=0.0 complexity=0 path=src/common/test.go line-rate=0.8055555555555556 name=src.common.test.go>
</file>
<lineToCover branch="false" covered="false" lineNumber="10"/>
<lineToCover branch="false" covered="false" lineNumber="11"/>
<lineToCover branch="false" covered="false" lineNumber="22"/>
</file>
<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.8055555555555556" name="src.common.test.go">
<lineToCover branch="false" covered="true" lineNumber="9"/>
<lineToCover branch="false" covered="true" lineNumber="10"/>
<lineToCover branch="false" covered="true" lineNumber="45"/>
<lineToCover branch="false" covered="true" lineNumber="46"/>
</file>
<file branch-rate="0.0"
<lineToCover branch="false" covered="true" lineNumber="121"/>
<lineToCover branch="false" covered="true" lineNumber="122"/>
</file>
</coverage>
my commands are
var=$(grep -e "</file>" test.xml -A 1 -n | grep "<lineToCover" -A 1 -B 1 | sed -n '1p' | cut -d':' -f 1)
sed -i "${var} i \t\t\t\t\tNEWS" test.xml
string_me="<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.8055555555555556" name="src.common.test.go">"
sed -i "${var} i \t\t\t\t\t${string_me}" c.xml && cat c.xml