Issues uploading code coverage to sonar cloud

I’m working on a rust project and want to upload the code coverage to sonarcloud, I have set up a GitHub action for transforming the coverage result to comply with sonar requirements, but when I run the pipeline, the sonar scanner throws an error when parsing the format. I have no clue what to do next.

GitHub repository with changes:

Error received

ERROR Error during parsing of the generic coverage report ‘/home/runner/work/photo-statistics/photo-statistics/cobertura.xml’. Look at SonarQube documentation to know the expected XML format.

latest job execution:

I’m using grcov for generating the coverage file in Cobertura XML format.

Cobertura XML file

<?xml version="1.0"?><!DOCTYPE  coverage SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-04.dtd'><coverage lines-covered="342" lines-valid="368" line-rate="0.9293478260869565" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0" version="1.9" timestamp="1739797131"><sources><source>/home/runner/work/photo-statistics/photo-statistics</source></sources><packages><package name="src/main.rs" line-rate="0.7" branch-rate="0" complexity="0"><classes><class name="main" filename="src/main.rs" line-rate="0.7" branch-rate="0" complexity="0"><methods><method name="photo_statistics::main::{closure#0}" signature="" line-rate="0.6538461538461539" branch-rate="0" complexity="0"><lines><line number="21" hits="4"/><line number="22" hits="3"/><line number="23" hits="3"/><line number="24" hits="3"/><line number="25" hits="3"/><line number="26" hits="3"/><line number="27" hits="3"/><line number="28" hits="3"/><line number="29" hits="3"/><line number="30" hits="3"/><line number="31" hits="3"/><line number="32" hits="3"/><line number="33" hits="3"/><line number="34" hits="3"/><line number="35" hits="3"/><line number="36" hits="3"/><line number="37" hits="0"/><line number="38" hits="0"/><line number="39" hits="0"/><line number="40" hits="0"/><line number="41" hits="0"/><line number="42" hits="0"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="0"/><line number="46" hits="3"/></lines></method><method name="photo_statistics::main" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="17" hits="3"/><line number="18" hits="3"/><line number="19" hits="3"/><line number="20" hits="3"/></lines></method><method name="photo_statistics::main::{closure#0}" signature="" line-rate="0.6538461538461539" branch-rate="0" complexity="0"><lines><line number="21" hits="4"/><line number="22" hits="3"/><line number="23" hits="3"/><line number="24" hits="3"/><line number="25" hits="3"/><line number="26" hits="3"/><line number="27" hits="3"/><line number="28" hits="3"/><line number="29" hits="3"/><line number="30" hits="3"/><line number="31" hits="3"/><line number="32" hits="3"/><line number="33" hits="3"/><line number="34" hits="3"/><line number="35" hits="3"/><line number="36" hits="3"/><line number="37" hits="0"/><line number="38" hits="0"/><line number="39" hits="0"/><line number="40" hits="0"/><line number="41" hits="0"/><line number="42" hits="0"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="0"/><line number="46" hits="3"/></lines></method><method name="photo_statistics::main" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="17" hits="3"/><line number="18" hits="3"/><line number="19" hits="3"/><line number="20" hits="3"/></lines></method></methods><lines><line number="17" hits="3"/><line number="18" hits="3"/><line number="19" hits="3"/><line number="20" hits="3"/><line number="21" hits="4"/><line number="22" hits="3"/><line number="23" hits="3"/><line number="24" hits="3"/><line number="25" hits="3"/><line number="26" hits="3"/><line number="27" hits="3"/><line number="28" hits="3"/><line number="29" hits="3"/><line number="30" hits="3"/><line number="31" hits="3"/><line number="32" hits="3"/><line number="33" hits="3"/><line number="34" hits="3"/><line number="35" hits="3"/><line number="36" hits="3"/><line number="37" hits="0"/><line number="38" hits="0"/><line number="39" hits="0"/><line number="40" hits="0"/><line number="41" hits="0"/><line number="42" hits="0"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="0"/><line number="46" hits="3"/></lines></class></classes></package><package name="src/utils.rs" line-rate="1" branch-rate="0" complexity="0"><classes><class name="utils" filename="src/utils.rs" line-rate="1" branch-rate="0" complexity="0"><methods><method name="photo_statistics::utils::normalize_focal_length" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="1" hits="24"/><line number="2" hits="24"/><line number="3" hits="10"/><line number="4" hits="10"/><line number="5" hits="10"/><line number="6" hits="10"/><line number="7" hits="10"/><line number="8" hits="10"/><line number="9" hits="10"/><line number="10" hits="8"/><line number="11" hits="6"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="14"/><line number="17" hits="16"/><line number="18" hits="24"/></lines></method><method name="photo_statistics::utils::normalize_white_balance" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="20" hits="24"/><line number="21" hits="24"/><line number="22" hits="24"/><line number="23" hits="24"/><line number="24" hits="20"/><line number="25" hits="18"/><line number="26" hits="18"/><line number="27" hits="18"/><line number="28" hits="18"/><line number="29" hits="18"/><line number="31" hits="24"/></lines></method><method name="photo_statistics::utils::normalize_focal_length" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="1" hits="24"/><line number="2" hits="24"/><line number="3" hits="10"/><line number="4" hits="10"/><line number="5" hits="10"/><line number="6" hits="10"/><line number="7" hits="10"/><line number="8" hits="10"/><line number="9" hits="10"/><line number="10" hits="8"/><line number="11" hits="6"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="14"/><line number="17" hits="16"/><line number="18" hits="24"/></lines></method><method name="photo_statistics::utils::normalize_white_balance" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="20" hits="24"/><line number="21" hits="24"/><line number="22" hits="24"/><line number="23" hits="24"/><line number="24" hits="20"/><line number="25" hits="18"/><line number="26" hits="18"/><line number="27" hits="18"/><line number="28" hits="18"/><line number="29" hits="18"/><line number="31" hits="24"/></lines></method><method name="photo_statistics::utils::tests::test_normalize_focal_length" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/></lines></method><method name="photo_statistics::utils::tests::test_normalize_white_balance" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/><line number="52" hits="2"/><line number="53" hits="2"/></lines></method></methods><lines><line number="1" hits="24"/><line number="2" hits="24"/><line number="3" hits="10"/><line number="4" hits="10"/><line number="5" hits="10"/><line number="6" hits="10"/><line number="7" hits="10"/><line number="8" hits="10"/><line number="9" hits="10"/><line number="10" hits="8"/><line number="11" hits="6"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="14"/><line number="17" hits="16"/><line number="18" hits="24"/><line number="20" hits="24"/><line number="21" hits="24"/><line number="22" hits="24"/><line number="23" hits="24"/><line number="24" hits="20"/><line number="25" hits="18"/><line number="26" hits="18"/><line number="27" hits="18"/><line number="28" hits="18"/><line number="29" hits="18"/><line number="31" hits="24"/><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/><line number="52" hits="2"/><line number="53" hits="2"/></lines></class></classes></package><package name="src/worker.rs" line-rate="0.631578947368421" branch-rate="0" complexity="0"><classes><class name="worker" filename="src/worker.rs" line-rate="0.631578947368421" branch-rate="0" complexity="0"><methods><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="12" hits="3"/><line number="13" hits="2"/><line number="15" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}::{closure#0}" signature="" line-rate="0.2222222222222222" branch-rate="0" complexity="0"><lines><line number="16" hits="0"/><line number="17" hits="0"/><line number="18" hits="0"/><line number="19" hits="0"/><line number="20" hits="0"/><line number="21" hits="0"/><line number="22" hits="0"/><line number="24" hits="3"/><line number="25" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/></lines></method><method name="photo_statistics::worker::test_worker_parallel_processing" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="28" hits="2"/><line number="29" hits="2"/><line number="30" hits="2"/><line number="31" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}::{closure#0}" signature="" line-rate="0.2222222222222222" branch-rate="0" complexity="0"><lines><line number="16" hits="0"/><line number="17" hits="0"/><line number="18" hits="0"/><line number="19" hits="0"/><line number="20" hits="0"/><line number="21" hits="0"/><line number="22" hits="0"/><line number="24" hits="3"/><line number="25" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="12" hits="3"/><line number="13" hits="2"/><line number="15" hits="2"/></lines></method><method name="photo_statistics::worker::process_files_in_parallel" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/></lines></method></methods><lines><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="3"/><line number="13" hits="2"/><line number="15" hits="2"/><line number="16" hits="0"/><line number="17" hits="0"/><line number="18" hits="0"/><line number="19" hits="0"/><line number="20" hits="0"/><line number="21" hits="0"/><line number="22" hits="0"/><line number="24" hits="3"/><line number="25" hits="2"/><line number="28" hits="2"/><line number="29" hits="2"/><line number="30" hits="2"/><line number="31" hits="2"/></lines></class></classes></package><package name="src/statistics.rs" line-rate="0.9764705882352941" branch-rate="0" complexity="0"><classes><class name="statistics" filename="src/statistics.rs" line-rate="0.9764705882352941" branch-rate="0" complexity="0"><methods><method name="photo_statistics::statistics::tests::test_handle_null_dates::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="95" hits="3"/><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_handle_null_dates" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="87" hits="2"/><line number="88" hits="2"/><line number="89" hits="2"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/><line number="94" hits="2"/></lines></method><method name="photo_statistics::statistics::generate_statistics" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="2"/><line number="27" hits="2"/><line number="29" hits="20"/><line number="30" hits="18"/><line number="31" hits="18"/></lines></method><method name="photo_statistics::statistics::generate_statistics::{closure#0}" signature="" line-rate="0.8571428571428571" branch-rate="0" complexity="0"><lines><line number="32" hits="18"/><line number="33" hits="18"/><line number="34" hits="18"/><line number="35" hits="18"/><line number="36" hits="18"/><line number="37" hits="18"/><line number="38" hits="18"/><line number="40" hits="20"/><line number="41" hits="18"/><line number="42" hits="18"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="18"/><line number="47" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_photo_count_by_year::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="77" hits="5"/><line number="78" hits="2"/><line number="79" hits="2"/><line number="80" hits="2"/><line number="81" hits="2"/><line number="82" hits="2"/><line number="83" hits="2"/><line number="84" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_photo_count_by_year" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="65" hits="2"/><line number="66" hits="2"/><line number="67" hits="2"/><line number="68" hits="2"/><line number="69" hits="2"/><line number="70" hits="2"/><line number="71" hits="2"/><line number="72" hits="2"/><line number="73" hits="2"/><line number="74" hits="2"/><line number="75" hits="2"/><line number="76" hits="2"/></lines></method><method name="photo_statistics::statistics::generate_statistics" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="2"/><line number="27" hits="2"/><line number="29" hits="20"/><line number="30" hits="18"/><line number="31" hits="18"/></lines></method><method name="photo_statistics::statistics::tests::setup_test_db" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="58" hits="6"/><line number="59" hits="6"/><line number="60" hits="6"/><line number="61" hits="6"/><line number="62" hits="6"/></lines></method><method name="photo_statistics::statistics::generate_statistics::{closure#0}" signature="" line-rate="0.8571428571428571" branch-rate="0" complexity="0"><lines><line number="32" hits="18"/><line number="33" hits="18"/><line number="34" hits="18"/><line number="35" hits="18"/><line number="36" hits="18"/><line number="37" hits="18"/><line number="38" hits="18"/><line number="40" hits="20"/><line number="41" hits="18"/><line number="42" hits="18"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="18"/><line number="47" hits="2"/></lines></method><method name="photo_statistics::statistics::tests::test_empty_statistics" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/></lines></method></methods><lines><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="2"/><line number="27" hits="2"/><line number="29" hits="20"/><line number="30" hits="18"/><line number="31" hits="18"/><line number="32" hits="18"/><line number="33" hits="18"/><line number="34" hits="18"/><line number="35" hits="18"/><line number="36" hits="18"/><line number="37" hits="18"/><line number="38" hits="18"/><line number="40" hits="20"/><line number="41" hits="18"/><line number="42" hits="18"/><line number="43" hits="0"/><line number="44" hits="0"/><line number="45" hits="18"/><line number="47" hits="2"/><line number="58" hits="6"/><line number="59" hits="6"/><line number="60" hits="6"/><line number="61" hits="6"/><line number="62" hits="6"/><line number="65" hits="2"/><line number="66" hits="2"/><line number="67" hits="2"/><line number="68" hits="2"/><line number="69" hits="2"/><line number="70" hits="2"/><line number="71" hits="2"/><line number="72" hits="2"/><line number="73" hits="2"/><line number="74" hits="2"/><line number="75" hits="2"/><line number="76" hits="2"/><line number="77" hits="5"/><line number="78" hits="2"/><line number="79" hits="2"/><line number="80" hits="2"/><line number="81" hits="2"/><line number="82" hits="2"/><line number="83" hits="2"/><line number="84" hits="2"/><line number="87" hits="2"/><line number="88" hits="2"/><line number="89" hits="2"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/><line number="94" hits="2"/><line number="95" hits="3"/><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/></lines></class></classes></package><package name="src/database.rs" line-rate="0.984375" branch-rate="0" complexity="0"><classes><class name="database" filename="src/database.rs" line-rate="0.984375" branch-rate="0" complexity="0"><methods><method name="photo_statistics::database::format_date" signature="" line-rate="0.6666666666666666" branch-rate="0" complexity="0"><lines><line number="63" hits="8"/><line number="64" hits="8"/><line number="65" hits="8"/><line number="66" hits="0"/><line number="67" hits="0"/><line number="68" hits="8"/></lines></method><method name="photo_statistics::database::tests::setup_test_db" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="76" hits="6"/><line number="77" hits="6"/><line number="78" hits="6"/><line number="79" hits="6"/><line number="80" hits="6"/></lines></method><method name="photo_statistics::database::tests::test_insert_null_metadata::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="136" hits="3"/><line number="137" hits="2"/><line number="138" hits="2"/><line number="139" hits="2"/><line number="140" hits="2"/></lines></method><method name="photo_statistics::database::tests::test_insert_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/><line number="102" hits="2"/><line number="103" hits="2"/><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/><line number="109" hits="2"/><line number="110" hits="2"/><line number="111" hits="2"/><line number="112" hits="2"/><line number="113" hits="2"/><line number="114" hits="2"/><line number="115" hits="2"/><line number="116" hits="2"/><line number="117" hits="2"/><line number="118" hits="2"/></lines></method><method name="photo_statistics::database::tests::test_insert_null_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="126" hits="2"/><line number="127" hits="2"/><line number="128" hits="2"/><line number="129" hits="2"/><line number="130" hits="2"/><line number="131" hits="2"/><line number="132" hits="2"/><line number="133" hits="2"/><line number="134" hits="2"/><line number="135" hits="2"/></lines></method><method name="photo_statistics::database::tests::test_create_tables::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="89" hits="3"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/></lines></method><method name="photo_statistics::database::format_date" signature="" line-rate="0.6666666666666666" branch-rate="0" complexity="0"><lines><line number="63" hits="8"/><line number="64" hits="8"/><line number="65" hits="8"/><line number="66" hits="0"/><line number="67" hits="0"/><line number="68" hits="8"/></lines></method><method name="photo_statistics::database::create_tables_if_needed" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="6" hits="17"/><line number="7" hits="17"/><line number="8" hits="17"/><line number="9" hits="17"/><line number="10" hits="17"/><line number="11" hits="17"/><line number="12" hits="17"/><line number="13" hits="17"/><line number="14" hits="17"/><line number="15" hits="17"/><line number="16" hits="17"/><line number="17" hits="17"/><line number="18" hits="17"/><line number="19" hits="17"/><line number="20" hits="17"/><line number="21" hits="17"/><line number="22" hits="17"/><line number="23" hits="17"/><line number="24" hits="17"/><line number="25" hits="17"/><line number="26" hits="17"/><line number="27" hits="17"/><line number="28" hits="17"/><line number="29" hits="17"/></lines></method><method name="photo_statistics::database::tests::test_create_tables" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="83" hits="2"/><line number="84" hits="2"/><line number="85" hits="2"/><line number="86" hits="2"/><line number="87" hits="2"/><line number="88" hits="2"/></lines></method><method name="photo_statistics::database::insert_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="31" hits="14"/><line number="32" hits="14"/><line number="33" hits="14"/><line number="34" hits="14"/><line number="35" hits="14"/><line number="36" hits="14"/><line number="37" hits="14"/><line number="38" hits="14"/><line number="39" hits="14"/><line number="40" hits="14"/><line number="41" hits="14"/><line number="42" hits="14"/><line number="43" hits="14"/><line number="44" hits="14"/><line number="45" hits="14"/><line number="46" hits="14"/><line number="47" hits="14"/><line number="48" hits="14"/><line number="49" hits="14"/><line number="50" hits="14"/><line number="51" hits="14"/><line number="52" hits="14"/><line number="53" hits="14"/><line number="54" hits="14"/><line number="55" hits="14"/><line number="56" hits="14"/><line number="57" hits="14"/><line number="58" hits="14"/><line number="59" hits="14"/><line number="60" hits="12"/><line number="61" hits="14"/></lines></method><method name="photo_statistics::database::tests::test_insert_metadata::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="119" hits="3"/><line number="120" hits="2"/><line number="121" hits="2"/><line number="122" hits="2"/><line number="123" hits="2"/></lines></method><method name="photo_statistics::database::insert_metadata" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="31" hits="14"/><line number="32" hits="14"/><line number="33" hits="14"/><line number="34" hits="14"/><line number="35" hits="14"/><line number="36" hits="14"/><line number="37" hits="14"/><line number="38" hits="14"/><line number="39" hits="14"/><line number="40" hits="14"/><line number="41" hits="14"/><line number="42" hits="14"/><line number="43" hits="14"/><line number="44" hits="14"/><line number="45" hits="14"/><line number="46" hits="14"/><line number="47" hits="14"/><line number="48" hits="14"/><line number="49" hits="14"/><line number="50" hits="14"/><line number="51" hits="14"/><line number="52" hits="14"/><line number="53" hits="14"/><line number="54" hits="14"/><line number="55" hits="14"/><line number="56" hits="14"/><line number="57" hits="14"/><line number="58" hits="14"/><line number="59" hits="14"/><line number="60" hits="12"/><line number="61" hits="14"/></lines></method><method name="photo_statistics::database::tests::test_db_error_handling" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="143" hits="2"/><line number="144" hits="2"/><line number="145" hits="2"/><line number="146" hits="2"/><line number="147" hits="2"/><line number="148" hits="2"/><line number="149" hits="2"/><line number="150" hits="2"/></lines></method><method name="photo_statistics::database::create_tables_if_needed" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="6" hits="17"/><line number="7" hits="17"/><line number="8" hits="17"/><line number="9" hits="17"/><line number="10" hits="17"/><line number="11" hits="17"/><line number="12" hits="17"/><line number="13" hits="17"/><line number="14" hits="17"/><line number="15" hits="17"/><line number="16" hits="17"/><line number="17" hits="17"/><line number="18" hits="17"/><line number="19" hits="17"/><line number="20" hits="17"/><line number="21" hits="17"/><line number="22" hits="17"/><line number="23" hits="17"/><line number="24" hits="17"/><line number="25" hits="17"/><line number="26" hits="17"/><line number="27" hits="17"/><line number="28" hits="17"/><line number="29" hits="17"/></lines></method></methods><lines><line number="6" hits="17"/><line number="7" hits="17"/><line number="8" hits="17"/><line number="9" hits="17"/><line number="10" hits="17"/><line number="11" hits="17"/><line number="12" hits="17"/><line number="13" hits="17"/><line number="14" hits="17"/><line number="15" hits="17"/><line number="16" hits="17"/><line number="17" hits="17"/><line number="18" hits="17"/><line number="19" hits="17"/><line number="20" hits="17"/><line number="21" hits="17"/><line number="22" hits="17"/><line number="23" hits="17"/><line number="24" hits="17"/><line number="25" hits="17"/><line number="26" hits="17"/><line number="27" hits="17"/><line number="28" hits="17"/><line number="29" hits="17"/><line number="31" hits="14"/><line number="32" hits="14"/><line number="33" hits="14"/><line number="34" hits="14"/><line number="35" hits="14"/><line number="36" hits="14"/><line number="37" hits="14"/><line number="38" hits="14"/><line number="39" hits="14"/><line number="40" hits="14"/><line number="41" hits="14"/><line number="42" hits="14"/><line number="43" hits="14"/><line number="44" hits="14"/><line number="45" hits="14"/><line number="46" hits="14"/><line number="47" hits="14"/><line number="48" hits="14"/><line number="49" hits="14"/><line number="50" hits="14"/><line number="51" hits="14"/><line number="52" hits="14"/><line number="53" hits="14"/><line number="54" hits="14"/><line number="55" hits="14"/><line number="56" hits="14"/><line number="57" hits="14"/><line number="58" hits="14"/><line number="59" hits="14"/><line number="60" hits="12"/><line number="61" hits="14"/><line number="63" hits="8"/><line number="64" hits="8"/><line number="65" hits="8"/><line number="66" hits="0"/><line number="67" hits="0"/><line number="68" hits="8"/><line number="76" hits="6"/><line number="77" hits="6"/><line number="78" hits="6"/><line number="79" hits="6"/><line number="80" hits="6"/><line number="83" hits="2"/><line number="84" hits="2"/><line number="85" hits="2"/><line number="86" hits="2"/><line number="87" hits="2"/><line number="88" hits="2"/><line number="89" hits="3"/><line number="90" hits="2"/><line number="91" hits="2"/><line number="92" hits="2"/><line number="93" hits="2"/><line number="96" hits="2"/><line number="97" hits="2"/><line number="98" hits="2"/><line number="99" hits="2"/><line number="100" hits="2"/><line number="101" hits="2"/><line number="102" hits="2"/><line number="103" hits="2"/><line number="104" hits="2"/><line number="105" hits="2"/><line number="106" hits="2"/><line number="107" hits="2"/><line number="108" hits="2"/><line number="109" hits="2"/><line number="110" hits="2"/><line number="111" hits="2"/><line number="112" hits="2"/><line number="113" hits="2"/><line number="114" hits="2"/><line number="115" hits="2"/><line number="116" hits="2"/><line number="117" hits="2"/><line number="118" hits="2"/><line number="119" hits="3"/><line number="120" hits="2"/><line number="121" hits="2"/><line number="122" hits="2"/><line number="123" hits="2"/><line number="126" hits="2"/><line number="127" hits="2"/><line number="128" hits="2"/><line number="129" hits="2"/><line number="130" hits="2"/><line number="131" hits="2"/><line number="132" hits="2"/><line number="133" hits="2"/><line number="134" hits="2"/><line number="135" hits="2"/><line number="136" hits="3"/><line number="137" hits="2"/><line number="138" hits="2"/><line number="139" hits="2"/><line number="140" hits="2"/><line number="143" hits="2"/><line number="144" hits="2"/><line number="145" hits="2"/><line number="146" hits="2"/><line number="147" hits="2"/><line number="148" hits="2"/><line number="149" hits="2"/><line number="150" hits="2"/></lines></class></classes></package><package name="src/exiftool.rs" line-rate="0.8421052631578947" branch-rate="0" complexity="0"><classes><class name="exiftool" filename="src/exiftool.rs" line-rate="0.8421052631578947" branch-rate="0" complexity="0"><methods><method name="photo_statistics::exiftool::run_exiftool" signature="" line-rate="0.3333333333333333" branch-rate="0" complexity="0"><lines><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="0"/><line number="28" hits="0"/><line number="29" hits="0"/><line number="30" hits="0"/><line number="31" hits="0"/><line number="33" hits="0"/><line number="34" hits="2"/></lines></method><method name="photo_statistics::exiftool::execute_exiftool" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="4" hits="2"/><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/></lines></method><method name="photo_statistics::exiftool::tests::test_run_exiftool_success" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/></lines></method><method name="photo_statistics::exiftool::tests::test_run_exiftool_fail" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/></lines></method><method name="photo_statistics::exiftool::execute_exiftool" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="4" hits="2"/><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/></lines></method><method name="photo_statistics::exiftool::run_exiftool" signature="" line-rate="0.3333333333333333" branch-rate="0" complexity="0"><lines><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="0"/><line number="28" hits="0"/><line number="29" hits="0"/><line number="30" hits="0"/><line number="31" hits="0"/><line number="33" hits="0"/><line number="34" hits="2"/></lines></method></methods><lines><line number="4" hits="2"/><line number="5" hits="2"/><line number="6" hits="2"/><line number="7" hits="2"/><line number="8" hits="2"/><line number="9" hits="2"/><line number="10" hits="2"/><line number="11" hits="2"/><line number="12" hits="2"/><line number="13" hits="2"/><line number="14" hits="2"/><line number="15" hits="2"/><line number="16" hits="2"/><line number="17" hits="2"/><line number="18" hits="2"/><line number="19" hits="2"/><line number="20" hits="2"/><line number="21" hits="2"/><line number="22" hits="2"/><line number="23" hits="2"/><line number="24" hits="2"/><line number="25" hits="2"/><line number="26" hits="0"/><line number="28" hits="0"/><line number="29" hits="0"/><line number="30" hits="0"/><line number="31" hits="0"/><line number="33" hits="0"/><line number="34" hits="2"/><line number="41" hits="2"/><line number="42" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/><line number="47" hits="2"/><line number="48" hits="2"/><line number="49" hits="2"/><line number="50" hits="2"/><line number="51" hits="2"/></lines></class></classes></package><package name="src/files.rs" line-rate="1" branch-rate="0" complexity="0"><classes><class name="files" filename="src/files.rs" line-rate="1" branch-rate="0" complexity="0"><methods><method name="photo_statistics::files::scan_directory" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="7" hits="7"/><line number="8" hits="7"/><line number="9" hits="7"/><line number="11" hits="3936"/><line number="13" hits="3936"/></lines></method><method name="photo_statistics::files::tests::test_scan_directory" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="32" hits="2"/><line number="33" hits="2"/><line number="34" hits="2"/><line number="35" hits="2"/><line number="36" hits="2"/><line number="37" hits="2"/><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/></lines></method><method name="photo_statistics::files::scan_directory" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="7" hits="7"/><line number="8" hits="7"/><line number="9" hits="7"/><line number="11" hits="3936"/><line number="13" hits="3936"/></lines></method><method name="photo_statistics::files::scan_directory::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="15" hits="4148"/><line number="16" hits="2465"/><line number="17" hits="2"/><line number="18" hits="2465"/><line number="19" hits="861"/><line number="20" hits="610"/><line number="22" hits="7"/><line number="23" hits="7"/></lines></method><method name="photo_statistics::files::scan_directory::{closure#0}" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="15" hits="4148"/><line number="16" hits="2465"/><line number="17" hits="2"/><line number="18" hits="2465"/><line number="19" hits="861"/><line number="20" hits="610"/><line number="22" hits="7"/><line number="23" hits="7"/></lines></method><method name="photo_statistics::files::tests::test_scan_directory_no_images" signature="" line-rate="1" branch-rate="0" complexity="0"><lines><line number="43" hits="2"/><line number="44" hits="2"/><line number="45" hits="2"/><line number="46" hits="2"/><line number="47" hits="2"/></lines></method></methods><lines><line number="7" hits="7"/><line number="8" hits="7"/><line number="9" hits="7"/><line number="11" hits="3936"/><line number="13" hits="3936"/><line number="15" hits="4148"/><line number="16" hits="2465"/><line number="17" hits="2"/><line number="18" hits="2465"/><line number="19" hits="861"/><line number="20" hits="610"/><line number="22" hits="7"/><line number="23" hits="7"/><line number="32" hits="2"/><line number="33" hits="2"/><line number="34" hits="2"/><line number="35" hits="2"/><line number="36" hits="2"/><line number="37" hits="2"/><line number="38" hits="2"/><line number="39" hits="2"/><line number="40" hits="2"/><line number="43" hits="2"/><line number="44" hits="2"/><line number="45" hits="2"/><line number="46" hits="2"/><line number="47" hits="2"/></lines></class></classes></package></packages></coverage>

Hey there.

It looks like you’re trying to analyze Rust code. Rust isn’t supported by SonarQube (Server or Cloud). It’s coming soon though, so please keep an eye on our roadmap and Sonar Updates!

Even if you were able to generate a coverage report in the right format, you wouldn’t be able to attach coverage data to files that SonarQube can’t analyze.

What coverage tools do you use? It would be great to know as we develop our Rust support!

Hi Colin, thanks for your comment. I thought that I could be able to skip code analysis until it’s supported and have the code coverage report there.

I’m using grcov, which is a rust tool for generating diverse coverage formats, cobertura among them

Hi there, @anyulled

You will be happy to learn that SonarQube Cloud now supports Rust!

You will be able to analyze your code and upload your code coverage files in Cobertura or LCOV formats.

Let us know if you have any feedback!

Denis

1 Like

Hi, I just saw the news, great!

I tried again, and it’s throwing the same error, both with cobertura and lcov format

Do I need to do something else from y side?

Hi, @anyulled

It looks like you are passing the LCOV report using the wrong property. Your workflow file uses sonar.coverageReportPaths, which is for sonar’s generic coverage format.

As per the documentation, to pass in an LCOV report to the rust analyzer you should use the sonar.rust.lcov.reportPaths property.

Denis

Thank you!

Now it works, I did a mess when playing around with both cobertura and lcov formats.

https://github.com/anyulled/photo-statistics/actions/runs/14658570353/job/41137965713?pr=23

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.