github.com/secure-build/gitlab-runner@v12.5.0+incompatible/helpers/trace/buffer_test.go (about)

     1  package trace
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestVariablesMasking(t *testing.T) {
    11  	traceMessage := "This is the secret message cont@ining :secret duplicateValues"
    12  	maskedValues := []string{
    13  		"is",
    14  		"duplicateValue",
    15  		"duplicateValue",
    16  		":secret",
    17  		"cont@ining",
    18  	}
    19  
    20  	buffer, err := New()
    21  	require.NoError(t, err)
    22  	defer buffer.Close()
    23  
    24  	buffer.SetMasked(maskedValues)
    25  
    26  	_, err = buffer.Write([]byte(traceMessage))
    27  	require.NoError(t, err)
    28  
    29  	buffer.Finish()
    30  
    31  	content, err := buffer.Bytes(0, 1000)
    32  	require.NoError(t, err)
    33  
    34  	assert.Equal(t, "Th[MASKED] [MASKED] the secret message [MASKED] [MASKED] [MASKED]s", string(content))
    35  }
    36  
    37  func TestTraceLimit(t *testing.T) {
    38  	traceMessage := "This is the long message"
    39  
    40  	buffer, err := New()
    41  	require.NoError(t, err)
    42  	defer buffer.Close()
    43  
    44  	buffer.SetLimit(10)
    45  
    46  	for i := 0; i < 100; i++ {
    47  		_, err = buffer.Write([]byte(traceMessage))
    48  		require.NoError(t, err)
    49  	}
    50  
    51  	buffer.Finish()
    52  
    53  	content, err := buffer.Bytes(0, 1000)
    54  	require.NoError(t, err)
    55  
    56  	assert.Equal(t, "This is the\n\x1b[31;1mJob's log exceeded limit of 10 bytes.\x1b[0;m\n",
    57  		string(content))
    58  }