code-intelligence.com/cifuzz@v0.40.0/internal/cmd/coverage/summary/jacoco_test.go (about)

     1  package summary
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestParseJacoco(t *testing.T) {
    11  	reportData := `
    12  <report name="maven-example">
    13      <package name="com/example">
    14          <sourcefile name="ExploreMe.java">
    15              <counter type="LINE" missed="100" covered="100"/>
    16              <counter type="BRANCH" missed="22" covered="1"/>
    17              <counter type="METHOD" missed="19" covered="2"/>
    18          </sourcefile>
    19          <sourcefile name="App.java">
    20              <counter type="LINE" missed="0" covered="50"/>
    21              <counter type="BRANCH" missed="1" covered="9"/>
    22              <counter type="METHOD" missed="0" covered="1"/>
    23          </sourcefile>
    24      </package>
    25  </report>
    26  `
    27  	summary := ParseJacocoXML(strings.NewReader(reportData))
    28  
    29  	assert.Len(t, summary.Files, 2)
    30  	assert.Equal(t, 3, summary.Total.FunctionsHit)
    31  	assert.Equal(t, 22, summary.Total.FunctionsFound)
    32  	assert.Equal(t, 10, summary.Total.BranchesHit)
    33  	assert.Equal(t, 33, summary.Total.BranchesFound)
    34  	assert.Equal(t, 150, summary.Total.LinesHit)
    35  	assert.Equal(t, 250, summary.Total.LinesFound)
    36  
    37  	assert.Equal(t, 2, summary.Files[0].Coverage.FunctionsHit)
    38  	assert.Equal(t, 21, summary.Files[0].Coverage.FunctionsFound)
    39  	assert.Equal(t, 1, summary.Files[0].Coverage.BranchesHit)
    40  	assert.Equal(t, 23, summary.Files[0].Coverage.BranchesFound)
    41  	assert.Equal(t, 100, summary.Files[0].Coverage.LinesHit)
    42  	assert.Equal(t, 200, summary.Files[0].Coverage.LinesFound)
    43  
    44  	assert.Equal(t, 1, summary.Files[1].Coverage.FunctionsHit)
    45  	assert.Equal(t, 1, summary.Files[1].Coverage.FunctionsFound)
    46  	assert.Equal(t, 9, summary.Files[1].Coverage.BranchesHit)
    47  	assert.Equal(t, 10, summary.Files[1].Coverage.BranchesFound)
    48  	assert.Equal(t, 50, summary.Files[1].Coverage.LinesHit)
    49  	assert.Equal(t, 50, summary.Files[1].Coverage.LinesFound)
    50  }
    51  
    52  func TestParseJacoco_Empty(t *testing.T) {
    53  	summary := ParseJacocoXML(strings.NewReader(""))
    54  
    55  	assert.Len(t, summary.Files, 0)
    56  	assert.Empty(t, summary.Total.BranchesFound)
    57  	assert.Empty(t, summary.Total.LinesFound)
    58  	assert.Empty(t, summary.Total.FunctionsFound)
    59  }