2 * Copyright (c) 2019 AT&T Intellectual Property.
3 * Copyright (c) 2018-2019 Nokia.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
24 "github.com/stretchr/testify/assert"
25 "github.com/stretchr/testify/suite"
28 type ConfMakerTestSuite struct {
33 func (suite *ConfMakerTestSuite) SetupTest() {
34 suite.cm = confMaker{"foo"}
37 func (suite *ConfMakerTestSuite) TearDownTest() {
38 os.Unsetenv(tracingEnabledEnv)
39 os.Unsetenv(jaegerSamplerTypeEnv)
40 os.Unsetenv(jaegerSamplerParamEnv)
41 os.Unsetenv(jaegerAgentAddrEnv)
42 os.Unsetenv(jaegerLogLevelEnv)
45 func (suite *ConfMakerTestSuite) TestTracingIsDisabledByDefault() {
46 suite.False(suite.cm.IsTracingEnabled())
49 func (suite *ConfMakerTestSuite) TestTracingCanBeEnabledWithEnvVar() {
50 os.Setenv(tracingEnabledEnv, "1")
51 suite.True(suite.cm.IsTracingEnabled())
52 os.Setenv(tracingEnabledEnv, "true")
53 suite.True(suite.cm.IsTracingEnabled())
56 func (suite *ConfMakerTestSuite) TestTracingEnabledWithUnknownValueResultsDisabled() {
57 os.Setenv(tracingEnabledEnv, "0")
58 suite.False(suite.cm.IsTracingEnabled())
59 os.Setenv(tracingEnabledEnv, "foo")
60 suite.False(suite.cm.IsTracingEnabled())
63 func (suite *ConfMakerTestSuite) TestSamplerTypeDefaultIsConst() {
64 suite.Equal("const", suite.cm.getSamplerConfig().Type)
67 func (suite *ConfMakerTestSuite) TestSamplerTypeParamDefault() {
68 suite.Equal(0.001, suite.cm.getSamplerConfig().Param)
71 func (suite *ConfMakerTestSuite) TestSamplerTypeCanBeDefined() {
72 os.Setenv(jaegerSamplerTypeEnv, "probabilistic")
73 suite.Equal("probabilistic", suite.cm.getSamplerConfig().Type)
76 func (suite *ConfMakerTestSuite) TestIfSamplerParamIsInvalidZeroValueIsUsed() {
77 os.Setenv(jaegerSamplerParamEnv, "foo")
78 suite.Equal(0.0, suite.cm.getSamplerConfig().Param)
81 func (suite *ConfMakerTestSuite) TestAgentAddrCanBeDefined() {
82 os.Setenv(jaegerAgentAddrEnv, "1.1.1.1:1111")
83 suite.Equal("1.1.1.1:1111", suite.cm.getReporterConfig().LocalAgentHostPort)
86 func (suite *ConfMakerTestSuite) TestAgentAddressPortIsOptional() {
87 os.Setenv(jaegerAgentAddrEnv, "1.1.1.1")
88 suite.Equal("1.1.1.1:6831", suite.cm.getReporterConfig().LocalAgentHostPort)
91 func (suite *ConfMakerTestSuite) TestLoggingLevelDefaultIsErr() {
92 suite.Equal(logErr, suite.cm.getLoggingLevel())
95 func (suite *ConfMakerTestSuite) TestLoggingLevelCanBeConfigured() {
96 os.Setenv(jaegerLogLevelEnv, "error")
97 suite.Equal(logErr, suite.cm.getLoggingLevel())
98 os.Setenv(jaegerLogLevelEnv, "all")
99 suite.Equal(logAll, suite.cm.getLoggingLevel())
100 os.Setenv(jaegerLogLevelEnv, "none")
101 suite.Equal(logNone, suite.cm.getLoggingLevel())
104 func (suite *ConfMakerTestSuite) TestConfiguredTracerCreate() {
105 os.Setenv(tracingEnabledEnv, "1")
106 os.Setenv(jaegerSamplerParamEnv, "const")
107 os.Setenv(jaegerSamplerParamEnv, "1")
108 os.Setenv(jaegerAgentAddrEnv, "127.0.0.1:6831")
109 tracer, closer := CreateTracer("foo")
114 func (suite *ConfMakerTestSuite) TestIfTracerCreationFailsDisabledTracerIsReturned() {
115 os.Setenv(tracingEnabledEnv, "1")
116 tracer, closer := CreateTracer("") // Empty name is an error
121 func TestConfMakerSuite(t *testing.T) {
122 suite.Run(t, new(ConfMakerTestSuite))
125 func TestDefaultTracerCreate(t *testing.T) {
126 tracer, closer := CreateTracer("foo")
127 assert.NotNil(t, tracer)
128 assert.NotNil(t, closer)
129 err := closer.Close()