github.com/grafana/pyroscope@v1.18.0/pkg/validation/symbolizer_test.go (about)

     1  package validation
     2  
     3  import (
     4  	"bytes"
     5  	"flag"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  const symbolizerOverrideConfig = `
    13  overrides:
    14    symbolizer-disabled:
    15      symbolizer:
    16        enabled: false
    17    symbolizer-enabled:
    18      symbolizer:
    19        enabled: true
    20    mixed-config:
    21      symbolizer:
    22        enabled: true
    23      ingestion_rate_mb: 100
    24  `
    25  
    26  func Test_SymbolizerEnabled(t *testing.T) {
    27  	rc, err := LoadRuntimeConfig(bytes.NewReader([]byte(symbolizerOverrideConfig)))
    28  	require.NoError(t, err)
    29  
    30  	var defaultCfg Limits
    31  	fs := flag.NewFlagSet("test", flag.PanicOnError)
    32  	defaultCfg.RegisterFlags(fs)
    33  	defaultCfg.Symbolizer.RegisterFlags(fs)
    34  
    35  	err = fs.Parse([]string{})
    36  	require.NoError(t, err)
    37  
    38  	o, err := NewOverrides(defaultCfg, &wrappedRuntimeConfig{rc})
    39  	require.NoError(t, err)
    40  
    41  	assert.False(t, o.SymbolizerEnabled("empty-overrides"))
    42  	assert.False(t, o.SymbolizerEnabled("symbolizer-disabled"))
    43  	assert.True(t, o.SymbolizerEnabled("symbolizer-enabled"))
    44  	assert.True(t, o.SymbolizerEnabled("mixed-config"))
    45  }
    46  
    47  func Test_SymbolizerMockOverrides(t *testing.T) {
    48  	overrides := MockOverrides(func(defaults *Limits, tenantLimits map[string]*Limits) {
    49  		defaults.Symbolizer.Enabled = false
    50  
    51  		l := MockDefaultLimits()
    52  		l.Symbolizer.Enabled = true
    53  		tenantLimits["enabled-tenant"] = l
    54  	})
    55  
    56  	assert.False(t, overrides.SymbolizerEnabled("default-tenant"))
    57  	assert.True(t, overrides.SymbolizerEnabled("enabled-tenant"))
    58  }