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

     1  package summary
     2  
     3  import (
     4  	"io"
     5  	"os"
     6  	"strings"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestCoverage_PrintTable(t *testing.T) {
    14  	rPipe, wPipe, err := os.Pipe()
    15  	require.NoError(t, err)
    16  
    17  	report := `SF:bar.cpp
    18  FNH:2
    19  FNF:21
    20  end_of_record
    21  SF:foo.cpp
    22  FNH:1
    23  FNF:1
    24  end_of_record
    25  `
    26  	ParseLcov(strings.NewReader(report)).PrintTable(wPipe)
    27  
    28  	wPipe.Close()
    29  	pipeOut, err := io.ReadAll(rPipe)
    30  	require.NoError(t, err)
    31  	out := string(pipeOut)
    32  
    33  	assert.Contains(t, out, "bar.cpp")
    34  	assert.Contains(t, out, "foo.cpp")
    35  	assert.Contains(t, out, "2 / 21   (9.5%)")
    36  	assert.Contains(t, out, "0 / 0 (100.0%)")
    37  	assert.Contains(t, out, "3 / 22")
    38  }