Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CCS fails with simplecov & simplecov-cobertura default settings #33

Closed
irongut opened this issue Feb 17, 2022 · 4 comments · Fixed by #37
Closed

CCS fails with simplecov & simplecov-cobertura default settings #33

irongut opened this issue Feb 17, 2022 · 4 comments · Fixed by #37
Assignees
Labels
bug Something isn't working Parsing An issue reletad to parsing the coverage xml.
Projects
Milestone

Comments

@irongut
Copy link
Owner

irongut commented Feb 17, 2022

Bug Report

CCS fails with simplecov & simplecov-cobertura on default settings because branch metrics are not reported.

See posts by @pboling in #17 (comment)

Workflow File

coverage.yml

      - name: Code Coverage Summary Report
        uses: irongut/CodeCoverageSummary@v1.2.0
        with:
          filename: ./coverage/coverage.xml
          badge: true
          fail_below_min: true
          format: markdown
          hide_branch_rate: false
          hide_complexity: true
          indicators: true
          output: both
          thresholds: '95 97'
        continue-on-error: ${{ matrix.experimental != 'false' }}

Workflow Run

Actions Log

Run irongut/CodeCoverageSummary@v1.[2](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:2).0
  with:
    filename: ./coverage/coverage.xml
    badge: true
    fail_below_min: true
    format: markdown
    hide_branch_rate: false
    hide_complexity: true
    indicators: true
    output: both
    thresholds: 95 97
  env:
    CC_TEST_REPORTER_ID: ***
    GIT_COMMIT_SHA: 5e7798ac8bfdc4f[3](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:3)d8537d[4](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:4)23af23be[5](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:5)f33ec[6](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:6)81
    GIT_BRANCH: 1-4-stable
/usr/bin/docker run --name ghcrioirongutcodecoveragesummaryv120_db1[7](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:7)64 --label 7db2d7 --workdir /github/workspace --rm -e CC_TEST_REPORTER_ID -e GIT_COMMIT_SHA -e GIT_BRANCH -e INPUT_FILENAME -e INPUT_BADGE -e INPUT_FAIL_BELOW_MIN -e INPUT_FORMAT -e INPUT_HIDE_BRANCH_RATE -e INPUT_HIDE_COMPLEXITY -e INPUT_INDICATORS -e INPUT_OUTPUT -e INPUT_THRESHOLDS -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/oauth2/oauth2":"/github/workspace" ghcr.io/irongut/codecoveragesummary:v1.2.0  "--files" "./coverage/coverage.xml" "--badge" "true" "--fail" "true" "--format" "markdown" "--hidebranch" "false" "--hidecomplexity" "true" "--indicators" "true" "--output" "both" "--thresholds" "[9](https://github.com/oauth-xx/oauth2/runs/5226726966?check_suite_focus=true#step:9:9)5 97"
Code Coverage File: ./coverage/coverage.xml
Parse Error: Sequence contains no elements
Error: System.NullReferenceException - Object reference not set to an instance of an object.

Expected Behavior

CCS should report the metrics which are present and fail more gracefully if any required part of the coverage file is missing.

Workaround

Enable Branch coverage.
Primary Coverage should be set to 'line' (the default).

See simplecov docs.

Linked To

#17 Test compatibility with other tools

@irongut irongut added the bug Something isn't working label Feb 17, 2022
@irongut irongut self-assigned this Feb 17, 2022
@github-actions github-actions bot added this to Needs triage in Bug Hunt Feb 17, 2022
@irongut
Copy link
Owner Author

irongut commented Feb 17, 2022

Simplecov Sample (Ruby, branch coverage not enabled)

<?xml version='1.0'?> 
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<!-- Generated by simplecov-cobertura version 2.1.0 (https://github.com/dashingrocket/simplecov-cobertura) -->
<coverage line-rate="0.97" lines-covered="350" lines-valid="362" complexity="0" version="0" timestamp="1645060052">
  <sources>
    <source>/Users/pboling/src/my/oauth2</source>
  </sources>
  <packages>
    <package name="oauth2" line-rate="0.97" complexity="0">
      <classes>
        <class name="oauth2" filename="lib/oauth2.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="3" hits="1"/>
            <line number="4" hits="1"/>
            <line number="5" hits="1"/>
            <line number="6" hits="1"/>
            <line number="7" hits="1"/>
            <line number="8" hits="1"/>
            <line number="9" hits="1"/>
            <line number="10" hits="1"/>
            <line number="11" hits="1"/>
            <line number="12" hits="1"/>
          </lines>
        </class>
        <class name="access_token" filename="lib/oauth2/access_token.rb" line-rate="0.96" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="3" hits="1"/>
            <line number="4" hits="1"/>
            <line number="7" hits="1"/>
            <line number="13" hits="1"/>
            <line number="14" hits="7"/>
            <line number="15" hits="7"/>
            <line number="23" hits="1"/>
            <line number="24" hits="1"/>
            <line number="41" hits="1"/>
            <line number="42" hits="151"/>
            <line number="43" hits="151"/>
            <line number="44" hits="151"/>
            <line number="45" hits="151"/>
            <line number="46" hits="453"/>
            <line number="48" hits="151"/>
            <line number="49" hits="151"/>
            <line number="50" hits="151"/>
            <line number="51" hits="151"/>
            <line number="52" hits="151"/>
            <line number="55" hits="151"/>
            <line number="61" hits="1"/>
            <line number="62" hits="6"/>
            <line number="68" hits="1"/>
            <line number="69" hits="11"/>
            <line number="75" hits="1"/>
            <line number="76" hits="3"/>
            <line number="83" hits="1"/>
            <line number="84" hits="2"/>
            <line number="86" 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="97" hits="1"/>
            <line number="98" hits="1"/>
            <line number="107" hits="1"/>
            <line number="108" hits="20"/>
            <line number="109" hits="20"/>
            <line number="115" hits="1"/>
            <line number="116" hits="2"/>
            <line number="122" hits="1"/>
            <line number="123" hits="18"/>
            <line number="129" hits="1"/>
            <line number="130" hits="2"/>
            <line number="136" hits="1"/>
            <line number="137" hits="0"/>
            <line number="143" hits="1"/>
            <line number="144" hits="2"/>
            <line number="148" hits="1"/>
            <line number="149" hits="8"/>
            <line number="152" hits="1"/>
            <line number="154" hits="1"/>
            <line number="155" hits="20"/>
            <line number="157" hits="8"/>
            <line number="158" hits="8"/>
            <line number="160" hits="8"/>
            <line number="161" hits="8"/>
            <line number="163" hits="4"/>
            <line number="164" hits="4"/>
            <line number="165" hits="4"/>
            <line number="167" hits="0"/>
            <line number="171" hits="0"/>
            <line number="175" hits="1"/>
            <line number="176" hits="13"/>
            <line number="178" hits="12"/>
          </lines>
        </class>
        <class name="authenticator" filename="lib/oauth2/authenticator.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="3" hits="1"/>
            <line number="4" hits="1"/>
            <line number="5" hits="1"/>
            <line number="7" hits="1"/>
            <line number="8" hits="106"/>
            <line number="9" hits="106"/>
            <line number="10" hits="106"/>
            <line number="22" hits="1"/>
            <line number="23" hits="106"/>
            <line number="25" hits="14"/>
            <line number="27" hits="89"/>
            <line number="29" hits="1"/>
            <line number="31" hits="1"/>
            <line number="33" hits="1"/>
            <line number="37" hits="1"/>
            <line number="38" hits="15"/>
            <line number="41" hits="1"/>
            <line number="45" hits="1"/>
            <line number="46" hits="89"/>
            <line number="51" hits="1"/>
            <line number="52" hits="1"/>
            <line number="57" hits="1"/>
            <line number="58" hits="14"/>
            <line number="59" hits="14"/>
            <line number="60" hits="14"/>
            <line number="64" hits="1"/>
            <line number="65" hits="14"/>
          </lines>
        </class>
        <class name="client" filename="lib/oauth2/client.rb" line-rate="0.95" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="4" hits="1"/>
            <line number="6" hits="1"/>
            <line number="7" hits="1"/>
            <line number="9" hits="1"/>
            <line number="10" hits="1"/>
            <line number="11" hits="1"/>
            <line number="31" hits="1"/>
            <line number="32" hits="204"/>
            <line number="33" hits="204"/>
            <line number="34" hits="204"/>
            <line number="35" hits="204"/>
            <line number="36" hits="204"/>
            <line number="39" hits="204"/>
            <line number="49" hits="204"/>
            <line number="55" hits="1"/>
            <line number="56" hits="0"/>
            <line number="57" hits="0"/>
            <line number="61" hits="1"/>
            <line number="62" hits="423"/>
            <line number="63" hits="158"/>
            <line number="64" hits="158"/>
            <line number="65" hits="134"/>
            <line number="66" hits="134"/>
            <line number="69" hits="158"/>
            <line number="76" hits="1"/>
            <line number="77" hits="11"/>
            <line number="78" hits="11"/>
            <line number="84" hits="1"/>
            <line number="85" hits="100"/>
            <line number="100" hits="1"/>
            <line number="101" hits="141"/>
            <line number="103" hits="141"/>
            <line number="105" hits="141"/>
            <line number="106" hits="141"/>
            <line number="107" hits="141"/>
            <line number="109" hits="141"/>
            <line number="111" hits="141"/>
            <line number="113" hits="3"/>
            <line number="114" hits="3"/>
            <line number="115" hits="3"/>
            <line number="117" hits="2"/>
            <line number="118" hits="1"/>
            <line number="119" hits="1"/>
            <line number="121" hits="2"/>
            <line number="124" hits="127"/>
            <line number="126" hits="11"/>
            <line number="127" hits="11"/>
            <line number="129" hits="2"/>
            <line number="130" hits="2"/>
            <line number="132" hits="0"/>
            <line number="133" hits="0"/>
            <line number="143" hits="1"/>
            <line number="144" hits="97"/>
            <line number="145" hits="182"/>
            <line number="146" hits="2"/>
            <line number="148" hits="180"/>
            <line number="151" hits="97"/>
            <line number="153" hits="97"/>
            <line number="154" hits="97"/>
            <line number="155" hits="97"/>
            <line number="156" hits="97"/>
            <line number="157" hits="79"/>
            <line number="158" hits="79"/>
            <line number="160" hits="18"/>
            <line number="161" hits="18"/>
            <line number="163" hits="97"/>
            <line number="164" hits="97"/>
            <line number="167" hits="97"/>
            <line number="169" hits="0"/>
            <line number="172" hits="97"/>
            <line number="173" hits="3"/>
            <line number="174" hits="3"/>
            <line number="176" hits="94"/>
            <line number="182" hits="1"/>
            <line number="183" hits="48"/>
            <line number="189" hits="1"/>
            <line number="190" hits="5"/>
            <line number="196" hits="1"/>
            <line number="197" hits="11"/>
            <line number="203" hits="1"/>
            <line number="204" hits="21"/>
            <line number="207" hits="1"/>
            <line number="208" hits="9"/>
            <line number="227" hits="1"/>
            <line number="228" hits="55"/>
            <line number="229" hits="2"/>
            <line number="231" hits="53"/>
            <line number="235" hits="1"/>
            <line number="236" hits="91"/>
            <line number="237" hits="91"/>
            <line number="240" hits="1"/>
            <line number="242" hits="1"/>
            <line number="243" hits="97"/>
            <line number="244" hits="97"/>
            <line number="246" hits="93"/>
            <line number="250" hits="93"/>
            <line number="251" hits="1"/>
            <line number="253" hits="92"/>
          </lines>
        </class>
        <class name="error" filename="lib/oauth2/error.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="3" hits="1"/>
            <line number="7" hits="1"/>
            <line number="8" hits="14"/>
            <line number="9" hits="14"/>
            <line number="11" hits="14"/>
            <line number="12" hits="7"/>
            <line number="13" hits="7"/>
            <line number="14" hits="7"/>
            <line number="17" hits="14"/>
            <line number="23" hits="1"/>
            <line number="24" hits="14"/>
            <line number="26" hits="14"/>
            <line number="28" hits="14"/>
            <line number="29" hits="7"/>
            <line number="30" hits="7"/>
            <line number="32" hits="7"/>
            <line number="35" hits="14"/>
            <line number="37" hits="14"/>
          </lines>
        </class>
        <class name="mac_token" filename="lib/oauth2/mac_token.rb" line-rate="0.95" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="3" hits="1"/>
            <line number="4" hits="1"/>
            <line number="6" hits="1"/>
            <line number="7" hits="1"/>
            <line number="14" hits="1"/>
            <line number="15" hits="3"/>
            <line number="18" hits="1"/>
            <line number="30" hits="1"/>
            <line number="31" hits="19"/>
            <line number="32" hits="19"/>
            <line number="34" hits="18"/>
            <line number="43" hits="1"/>
            <line number="44" hits="4"/>
            <line number="46" hits="4"/>
            <line number="47" hits="4"/>
            <line number="49" hits="4"/>
            <line number="53" hits="1"/>
            <line number="54" hits="1"/>
            <line number="61" hits="1"/>
            <line number="62" hits="9"/>
            <line number="63" hits="9"/>
            <line number="65" hits="9"/>
            <line number="67" hits="8"/>
            <line number="69" hits="7"/>
            <line number="71" hits="7"/>
            <line number="80" hits="1"/>
            <line number="82" hits="8"/>
            <line number="91" hits="8"/>
            <line number="97" hits="1"/>
            <line number="98" hits="19"/>
            <line number="101" hits="1"/>
            <line number="103" hits="0"/>
            <line number="107" hits="17"/>
            <line number="109" hits="0"/>
            <line number="112" hits="1"/>
            <line number="116" hits="1"/>
            <line number="120" hits="1"/>
            <line number="124" hits="1"/>
            <line number="125" hits="8"/>
          </lines>
        </class>
        <class name="response" filename="lib/oauth2/response.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="3" hits="1"/>
            <line number="5" hits="1"/>
            <line number="7" hits="1"/>
            <line number="8" hits="1"/>
            <line number="9" hits="1"/>
            <line number="14" hits="62"/>
            <line number="15" hits="44"/>
            <line number="16" hits="3"/>
            <line number="20" hits="1"/>
            <line number="32" hits="1"/>
            <line number="33" hits="3"/>
            <line number="34" hits="3"/>
            <line number="35" hits="3"/>
            <line number="36" hits="6"/>
            <line number="46" hits="1"/>
            <line number="47" hits="147"/>
            <line number="48" hits="147"/>
            <line number="52" hits="1"/>
            <line number="53" hits="6"/>
            <line number="57" hits="1"/>
            <line number="58" hits="150"/>
            <line number="62" hits="1"/>
            <line number="63" hits="154"/>
            <line number="69" hits="1"/>
            <line number="70" hits="134"/>
            <line number="72" hits="131"/>
            <line number="76" hits="1"/>
            <line number="77" hits="244"/>
            <line number="81" hits="1"/>
            <line number="82" hits="244"/>
            <line number="84" hits="244"/>
            <line number="89" hits="1"/>
            <line number="90" hits="1"/>
          </lines>
        </class>
        <class name="assertion" filename="lib/oauth2/strategy/assertion.rb" line-rate="0.89" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="3" hits="1"/>
            <line number="4" hits="1"/>
            <line number="23" hits="1"/>
            <line number="27" hits="1"/>
            <line number="28" hits="1"/>
            <line number="45" hits="1"/>
            <line number="46" hits="8"/>
            <line number="47" hits="8"/>
            <line number="50" hits="1"/>
            <line number="51" hits="8"/>
            <line number="53" hits="8"/>
            <line number="60" hits="1"/>
            <line number="62" hits="8"/>
            <line number="67" hits="8"/>
            <line number="68" hits="8"/>
            <line number="69" hits="0"/>
            <line number="70" hits="0"/>
          </lines>
        </class>
        <class name="auth_code" filename="lib/oauth2/strategy/auth_code.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="6" hits="1"/>
            <line number="10" hits="1"/>
            <line number="11" hits="3"/>
            <line number="17" hits="1"/>
            <line number="18" hits="3"/>
            <line number="27" hits="1"/>
            <line number="28" hits="44"/>
            <line number="30" hits="44"/>
          </lines>
        </class>
        <class name="base" filename="lib/oauth2/strategy/base.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="3" hits="1"/>
            <line number="4" hits="1"/>
            <line number="5" hits="95"/>
          </lines>
        </class>
        <class name="client_credentials" filename="lib/oauth2/strategy/client_credentials.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="6" hits="1"/>
            <line number="10" hits="1"/>
            <line number="11" hits="1"/>
            <line number="18" hits="1"/>
            <line number="19" hits="20"/>
            <line number="20" hits="20"/>
          </lines>
        </class>
        <class name="implicit" filename="lib/oauth2/strategy/implicit.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="6" hits="1"/>
            <line number="10" hits="1"/>
            <line number="11" hits="3"/>
            <line number="17" hits="1"/>
            <line number="18" hits="3"/>
            <line number="24" hits="1"/>
            <line number="25" hits="1"/>
          </lines>
        </class>
        <class name="password" filename="lib/oauth2/strategy/password.rb" line-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1"/>
            <line number="2" hits="1"/>
            <line number="6" hits="1"/>
            <line number="10" hits="1"/>
            <line number="11" hits="1"/>
            <line number="19" hits="1"/>
            <line number="20" hits="10"/>
            <line number="23" hits="10"/>
          </lines>
        </class>
      </classes>
    </package>
  </packages>
</coverage>

Originally posted by @pboling in #17 (comment)

@irongut irongut added the Parsing An issue reletad to parsing the coverage xml. label Feb 17, 2022
@irongut irongut moved this from Needs triage to High priority in Bug Hunt Feb 17, 2022
@irongut irongut added this to the vNext milestone Feb 17, 2022
@pboling
Copy link

pboling commented Feb 18, 2022

Config (branch enabled)

SimpleCov.start do
  enable_coverage :branch
  primary_coverage :branch
  # ...
end

Output

<?xml version='1.0'?> 
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<!-- Generated by simplecov-cobertura version 2.1.0 (https://github.com/dashingrocket/simplecov-cobertura) -->
<coverage line-rate="0.97" lines-covered="347" lines-valid="359" branches-covered="57" branches-valid="66" branch-rate="0.86" complexity="0" version="0" timestamp="1645165717">
  <sources>
    <source>/Users/pboling/src/my/oauth2</source>
  </sources>
  <packages>
    <package name="oauth2" line-rate="0.97" branch-rate="0.86" complexity="0">
      <classes>
        <class name="oauth2" filename="lib/oauth2.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="5" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="8" hits="1" branch="false"/>
            <line number="9" hits="1" branch="false"/>
            <line number="10" hits="1" branch="false"/>
            <line number="11" hits="1" branch="false"/>
            <line number="12" hits="1" branch="false"/>
          </lines>
        </class>
        <class name="access_token" filename="lib/oauth2/access_token.rb" line-rate="0.96" branch-rate="0.75" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="13" hits="1" branch="false"/>
            <line number="14" hits="7" branch="false"/>
            <line number="15" hits="7" branch="false"/>
            <line number="23" hits="1" branch="false"/>
            <line number="24" hits="1" branch="false"/>
            <line number="41" hits="1" branch="false"/>
            <line number="42" hits="151" branch="false"/>
            <line number="43" hits="151" branch="false"/>
            <line number="44" hits="151" branch="false"/>
            <line number="45" hits="151" branch="false"/>
            <line number="46" hits="453" branch="false"/>
            <line number="48" hits="151" branch="false"/>
            <line number="49" hits="151" branch="false"/>
            <line number="50" hits="151" branch="false"/>
            <line number="51" hits="151" branch="true" condition-coverage="100% (1/1)"/>
            <line number="52" hits="151" branch="false"/>
            <line number="55" hits="151" branch="false"/>
            <line number="61" hits="1" branch="false"/>
            <line number="62" hits="6" branch="false"/>
            <line number="68" hits="1" branch="false"/>
            <line number="69" hits="11" branch="false"/>
            <line number="75" hits="1" branch="false"/>
            <line number="76" hits="3" branch="false"/>
            <line number="83" hits="1" branch="false"/>
            <line number="84" hits="2" branch="true" condition-coverage="100% (1/1)"/>
            <line number="86" hits="2" branch="false"/>
            <line number="87" hits="2" branch="false"/>
            <line number="88" hits="2" branch="false"/>
            <line number="89" hits="2" branch="false"/>
            <line number="90" hits="2" branch="true" condition-coverage="100% (1/1)"/>
            <line number="91" hits="2" branch="false"/>
            <line number="97" hits="1" branch="false"/>
            <line number="98" hits="1" branch="false"/>
            <line number="107" hits="1" branch="false"/>
            <line number="108" hits="20" branch="false"/>
            <line number="109" hits="20" branch="false"/>
            <line number="115" hits="1" branch="false"/>
            <line number="116" hits="2" branch="false"/>
            <line number="122" hits="1" branch="false"/>
            <line number="123" hits="18" branch="false"/>
            <line number="129" hits="1" branch="false"/>
            <line number="130" hits="2" branch="false"/>
            <line number="136" hits="1" branch="false"/>
            <line number="137" hits="0" branch="false"/>
            <line number="143" hits="1" branch="false"/>
            <line number="144" hits="2" branch="false"/>
            <line number="148" hits="1" branch="false"/>
            <line number="149" hits="8" branch="false"/>
            <line number="152" hits="1" branch="false"/>
            <line number="154" hits="1" branch="false"/>
            <line number="155" hits="20" branch="false"/>
            <line number="157" hits="8" branch="true" condition-coverage="100% (1/1)"/>
            <line number="158" hits="8" branch="false"/>
            <line number="160" hits="8" branch="true" condition-coverage="100% (1/1)"/>
            <line number="161" hits="8" branch="false"/>
            <line number="163" hits="4" branch="true" condition-coverage="100% (1/1)"/>
            <line number="164" hits="4" branch="false"/>
            <line number="165" hits="4" branch="true" condition-coverage="100% (1/1)"/>
            <line number="167" hits="0" branch="true" condition-coverage="0% (0/1)"/>
            <line number="171" hits="0" branch="true" condition-coverage="0% (0/1)"/>
            <line number="175" hits="1" branch="false"/>
            <line number="176" hits="13" branch="false"/>
            <line number="178" hits="12" branch="false"/>
          </lines>
        </class>
        <class name="authenticator" filename="lib/oauth2/authenticator.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="5" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="8" hits="106" branch="false"/>
            <line number="9" hits="106" branch="false"/>
            <line number="10" hits="106" branch="false"/>
            <line number="22" hits="1" branch="false"/>
            <line number="23" hits="106" branch="false"/>
            <line number="25" hits="14" branch="true" condition-coverage="100% (1/1)"/>
            <line number="27" hits="89" branch="true" condition-coverage="100% (1/1)"/>
            <line number="29" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="31" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="33" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="37" hits="1" branch="false"/>
            <line number="38" hits="15" branch="false"/>
            <line number="41" hits="1" branch="false"/>
            <line number="45" hits="1" branch="false"/>
            <line number="46" hits="89" branch="false"/>
            <line number="51" hits="1" branch="false"/>
            <line number="52" hits="1" branch="false"/>
            <line number="57" hits="1" branch="false"/>
            <line number="58" hits="14" branch="false"/>
            <line number="59" hits="14" branch="false"/>
            <line number="60" hits="14" branch="false"/>
            <line number="64" hits="1" branch="false"/>
            <line number="65" hits="14" branch="false"/>
          </lines>
        </class>
        <class name="client" filename="lib/oauth2/client.rb" line-rate="0.95" branch-rate="0.94" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="9" hits="1" branch="false"/>
            <line number="10" hits="1" branch="false"/>
            <line number="11" hits="1" branch="false"/>
            <line number="31" hits="1" branch="false"/>
            <line number="32" hits="204" branch="false"/>
            <line number="33" hits="204" branch="false"/>
            <line number="34" hits="204" branch="false"/>
            <line number="35" hits="204" branch="false"/>
            <line number="36" hits="204" branch="false"/>
            <line number="39" hits="204" branch="false"/>
            <line number="49" hits="204" branch="true" condition-coverage="100% (1/1)"/>
            <line number="55" hits="1" branch="false"/>
            <line number="56" hits="0" branch="false"/>
            <line number="57" hits="0" branch="false"/>
            <line number="61" hits="1" branch="false"/>
            <line number="62" hits="402" branch="false"/>
            <line number="64" hits="137" branch="true" condition-coverage="100% (1/1)"/>
            <line number="65" hits="134" branch="true" condition-coverage="100% (1/1)"/>
            <line number="73" hits="1" branch="false"/>
            <line number="74" hits="11" branch="false"/>
            <line number="75" hits="11" branch="false"/>
            <line number="81" hits="1" branch="false"/>
            <line number="82" hits="100" branch="false"/>
            <line number="97" hits="1" branch="false"/>
            <line number="98" hits="141" branch="true" condition-coverage="100% (1/1)"/>
            <line number="100" hits="141" branch="false"/>
            <line number="102" hits="141" branch="false"/>
            <line number="103" hits="141" branch="true" condition-coverage="100% (1/1)"/>
            <line number="104" hits="141" branch="true" condition-coverage="100% (1/1)"/>
            <line number="106" hits="141" branch="false"/>
            <line number="108" hits="141" branch="false"/>
            <line number="110" hits="3" branch="true" condition-coverage="100% (1/1)"/>
            <line number="111" hits="3" branch="false"/>
            <line number="112" hits="3" branch="true" condition-coverage="100% (1/1)"/>
            <line number="114" hits="2" branch="true" condition-coverage="100% (1/1)"/>
            <line number="115" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="116" hits="1" branch="false"/>
            <line number="118" hits="2" branch="false"/>
            <line number="121" hits="127" branch="true" condition-coverage="100% (1/1)"/>
            <line number="123" hits="11" branch="true" condition-coverage="100% (1/1)"/>
            <line number="124" hits="11" branch="true" condition-coverage="100% (1/1)"/>
            <line number="126" hits="2" branch="false"/>
            <line number="127" hits="2" branch="false"/>
            <line number="129" hits="0" branch="true" condition-coverage="0% (0/1)"/>
            <line number="130" hits="0" branch="false"/>
            <line number="140" hits="1" branch="false"/>
            <line number="141" hits="97" branch="false"/>
            <line number="142" hits="182" branch="false"/>
            <line number="143" hits="2" branch="true" condition-coverage="100% (1/1)"/>
            <line number="145" hits="180" branch="true" condition-coverage="100% (1/1)"/>
            <line number="148" hits="97" branch="false"/>
            <line number="150" hits="97" branch="false"/>
            <line number="151" hits="97" branch="false"/>
            <line number="152" hits="97" branch="false"/>
            <line number="153" hits="97" branch="false"/>
            <line number="154" hits="79" branch="true" condition-coverage="100% (1/1)"/>
            <line number="155" hits="79" branch="false"/>
            <line number="157" hits="18" branch="true" condition-coverage="100% (1/1)"/>
            <line number="158" hits="18" branch="false"/>
            <line number="160" hits="97" branch="false"/>
            <line number="161" hits="97" branch="false"/>
            <line number="164" hits="97" branch="false"/>
            <line number="166" hits="0" branch="false"/>
            <line number="169" hits="97" branch="true" condition-coverage="100% (1/1)"/>
            <line number="170" hits="3" branch="true" condition-coverage="100% (1/1)"/>
            <line number="171" hits="3" branch="false"/>
            <line number="173" hits="94" branch="false"/>
            <line number="179" hits="1" branch="false"/>
            <line number="180" hits="48" branch="false"/>
            <line number="186" hits="1" branch="false"/>
            <line number="187" hits="5" branch="false"/>
            <line number="193" hits="1" branch="false"/>
            <line number="194" hits="11" branch="false"/>
            <line number="200" hits="1" branch="false"/>
            <line number="201" hits="21" branch="false"/>
            <line number="204" hits="1" branch="false"/>
            <line number="205" hits="9" branch="false"/>
            <line number="224" hits="1" branch="false"/>
            <line number="225" hits="55" branch="false"/>
            <line number="226" hits="2" branch="true" condition-coverage="100% (1/1)"/>
            <line number="228" hits="53" branch="true" condition-coverage="100% (1/1)"/>
            <line number="232" hits="1" branch="false"/>
            <line number="233" hits="91" branch="false"/>
            <line number="234" hits="91" branch="false"/>
            <line number="237" hits="1" branch="false"/>
            <line number="239" hits="1" branch="false"/>
            <line number="240" hits="97" branch="false"/>
            <line number="241" hits="97" branch="true" condition-coverage="100% (1/1)"/>
            <line number="243" hits="93" branch="false"/>
            <line number="247" hits="93" branch="false"/>
            <line number="248" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="250" hits="92" branch="true" condition-coverage="100% (1/1)"/>
          </lines>
        </class>
        <class name="error" filename="lib/oauth2/error.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="8" hits="14" branch="false"/>
            <line number="9" hits="14" branch="false"/>
            <line number="11" hits="14" branch="true" condition-coverage="100% (1/1)"/>
            <line number="12" hits="7" branch="true" condition-coverage="100% (1/1)"/>
            <line number="13" hits="7" branch="false"/>
            <line number="14" hits="7" branch="false"/>
            <line number="17" hits="14" branch="false"/>
            <line number="23" hits="1" branch="false"/>
            <line number="24" hits="14" branch="false"/>
            <line number="26" hits="14" branch="false"/>
            <line number="28" hits="14" branch="false"/>
            <line number="29" hits="7" branch="true" condition-coverage="100% (1/1)"/>
            <line number="30" hits="7" branch="false"/>
            <line number="32" hits="7" branch="true" condition-coverage="100% (1/1)"/>
            <line number="35" hits="14" branch="false"/>
            <line number="37" hits="14" branch="false"/>
          </lines>
        </class>
        <class name="mac_token" filename="lib/oauth2/mac_token.rb" line-rate="0.95" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="14" hits="1" branch="false"/>
            <line number="15" hits="3" branch="false"/>
            <line number="18" hits="1" branch="false"/>
            <line number="30" hits="1" branch="false"/>
            <line number="31" hits="19" branch="false"/>
            <line number="32" hits="19" branch="false"/>
            <line number="34" hits="18" branch="false"/>
            <line number="43" hits="1" branch="false"/>
            <line number="44" hits="4" branch="false"/>
            <line number="46" hits="4" branch="false"/>
            <line number="47" hits="4" branch="false"/>
            <line number="49" hits="4" branch="false"/>
            <line number="53" hits="1" branch="false"/>
            <line number="54" hits="1" branch="false"/>
            <line number="61" hits="1" branch="false"/>
            <line number="62" hits="9" branch="false"/>
            <line number="63" hits="9" branch="false"/>
            <line number="65" hits="9" branch="false"/>
            <line number="67" hits="8" branch="true" condition-coverage="100% (1/1)"/>
            <line number="69" hits="7" branch="false"/>
            <line number="71" hits="7" branch="false"/>
            <line number="80" hits="1" branch="false"/>
            <line number="82" hits="8" branch="false"/>
            <line number="91" hits="8" branch="false"/>
            <line number="97" hits="1" branch="false"/>
            <line number="98" hits="19" branch="false"/>
            <line number="101" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="103" hits="0" branch="false"/>
            <line number="107" hits="17" branch="true" condition-coverage="100% (1/1)"/>
            <line number="109" hits="0" branch="false"/>
            <line number="112" hits="1" branch="true" condition-coverage="100% (1/1)"/>
            <line number="116" hits="1" branch="false"/>
            <line number="120" hits="1" branch="false"/>
            <line number="124" hits="1" branch="false"/>
            <line number="125" hits="8" branch="false"/>
          </lines>
        </class>
        <class name="response" filename="lib/oauth2/response.rb" line-rate="1.0" branch-rate="0.75" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="5" hits="1" branch="false"/>
            <line number="7" hits="1" branch="false"/>
            <line number="8" hits="1" branch="false"/>
            <line number="9" hits="1" branch="false"/>
            <line number="14" hits="62" branch="false"/>
            <line number="15" hits="44" branch="false"/>
            <line number="16" hits="3" branch="false"/>
            <line number="20" hits="1" branch="false"/>
            <line number="32" hits="1" branch="false"/>
            <line number="33" hits="3" branch="false"/>
            <line number="34" hits="3" branch="false"/>
            <line number="35" hits="3" branch="false"/>
            <line number="36" hits="6" branch="false"/>
            <line number="46" hits="1" branch="false"/>
            <line number="47" hits="147" branch="false"/>
            <line number="48" hits="147" branch="false"/>
            <line number="52" hits="1" branch="false"/>
            <line number="53" hits="6" branch="false"/>
            <line number="57" hits="1" branch="false"/>
            <line number="58" hits="150" branch="false"/>
            <line number="62" hits="1" branch="false"/>
            <line number="63" hits="154" branch="false"/>
            <line number="69" hits="1" branch="false"/>
            <line number="70" hits="134" branch="true" condition-coverage="100% (1/1)"/>
            <line number="72" hits="131" branch="false"/>
            <line number="76" hits="1" branch="false"/>
            <line number="77" hits="244" branch="false"/>
            <line number="81" hits="1" branch="false"/>
            <line number="82" hits="244" branch="true" condition-coverage="100% (1/1)"/>
            <line number="84" hits="244" branch="false"/>
            <line number="89" hits="1" branch="false"/>
            <line number="90" hits="1" branch="false"/>
          </lines>
        </class>
        <class name="assertion" filename="lib/oauth2/strategy/assertion.rb" line-rate="0.89" branch-rate="0.25" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="23" hits="1" branch="false"/>
            <line number="27" hits="1" branch="false"/>
            <line number="28" hits="1" branch="false"/>
            <line number="45" hits="1" branch="false"/>
            <line number="46" hits="8" branch="false"/>
            <line number="47" hits="8" branch="false"/>
            <line number="50" hits="1" branch="false"/>
            <line number="51" hits="8" branch="false"/>
            <line number="53" hits="8" branch="false"/>
            <line number="60" hits="1" branch="false"/>
            <line number="62" hits="8" branch="false"/>
            <line number="67" hits="8" branch="false"/>
            <line number="68" hits="8" branch="true" condition-coverage="100% (1/1)"/>
            <line number="69" hits="0" branch="true" condition-coverage="0% (0/1)"/>
            <line number="70" hits="0" branch="true" condition-coverage="0% (0/1)"/>
          </lines>
        </class>
        <class name="auth_code" filename="lib/oauth2/strategy/auth_code.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="10" hits="1" branch="false"/>
            <line number="11" hits="3" branch="false"/>
            <line number="17" hits="1" branch="false"/>
            <line number="18" hits="3" branch="false"/>
            <line number="27" hits="1" branch="false"/>
            <line number="28" hits="44" branch="false"/>
            <line number="30" hits="44" branch="false"/>
          </lines>
        </class>
        <class name="base" filename="lib/oauth2/strategy/base.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="3" hits="1" branch="false"/>
            <line number="4" hits="1" branch="false"/>
            <line number="5" hits="95" branch="false"/>
          </lines>
        </class>
        <class name="client_credentials" filename="lib/oauth2/strategy/client_credentials.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="10" hits="1" branch="false"/>
            <line number="11" hits="1" branch="false"/>
            <line number="18" hits="1" branch="false"/>
            <line number="19" hits="20" branch="false"/>
            <line number="20" hits="20" branch="false"/>
          </lines>
        </class>
        <class name="implicit" filename="lib/oauth2/strategy/implicit.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="10" hits="1" branch="false"/>
            <line number="11" hits="3" branch="false"/>
            <line number="17" hits="1" branch="false"/>
            <line number="18" hits="3" branch="false"/>
            <line number="24" hits="1" branch="false"/>
            <line number="25" hits="1" branch="false"/>
          </lines>
        </class>
        <class name="password" filename="lib/oauth2/strategy/password.rb" line-rate="1.0" branch-rate="1.0" complexity="0">
          <methods/>
          <lines>
            <line number="1" hits="1" branch="false"/>
            <line number="2" hits="1" branch="false"/>
            <line number="6" hits="1" branch="false"/>
            <line number="10" hits="1" branch="false"/>
            <line number="11" hits="1" branch="false"/>
            <line number="19" hits="1" branch="false"/>
            <line number="20" hits="10" branch="false"/>
            <line number="23" hits="10" branch="false"/>
          </lines>
        </class>
      </classes>
    </package>
  </packages>
</coverage>

@irongut irongut moved this from High priority to In Progress in Bug Hunt Feb 19, 2022
irongut added a commit that referenced this issue Feb 19, 2022
irongut added a commit that referenced this issue Feb 19, 2022
Bug Hunt automation moved this from In Progress to Closed Feb 19, 2022
@pboling
Copy link

pboling commented Feb 20, 2022

@irongut You saw that I provided the branch enabled output above?

@irongut
Copy link
Owner Author

irongut commented Feb 20, 2022

You saw that I provided the branch enabled output above?

Yes, that looks as expected.

I've got a couple of other things I want to include in the next version and I'm hoping to release it by the end of the week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Parsing An issue reletad to parsing the coverage xml.
Projects
Bug Hunt
Closed
Development

Successfully merging a pull request may close this issue.

2 participants