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 }