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.
17 * This source code is part of the near-RT RIC (RAN Intelligent Controller)
18 * platform project (RICP).
27 "github.com/stretchr/testify/assert"
28 "github.com/stretchr/testify/suite"
31 type ConfMakerTestSuite struct {
36 func (suite *ConfMakerTestSuite) SetupTest() {
37 suite.cm = confMaker{"foo"}
40 func (suite *ConfMakerTestSuite) TearDownTest() {
41 os.Unsetenv(tracingEnabledEnv)
42 os.Unsetenv(jaegerSamplerTypeEnv)
43 os.Unsetenv(jaegerSamplerParamEnv)
44 os.Unsetenv(jaegerAgentAddrEnv)
45 os.Unsetenv(jaegerLogLevelEnv)
48 func (suite *ConfMakerTestSuite) TestTracingIsDisabledByDefault() {
49 suite.False(suite.cm.IsTracingEnabled())
52 func (suite *ConfMakerTestSuite) TestTracingCanBeEnabledWithEnvVar() {
53 os.Setenv(tracingEnabledEnv, "1")
54 suite.True(suite.cm.IsTracingEnabled())
55 os.Setenv(tracingEnabledEnv, "true")
56 suite.True(suite.cm.IsTracingEnabled())
59 func (suite *ConfMakerTestSuite) TestTracingEnabledWithUnknownValueResultsDisabled() {
60 os.Setenv(tracingEnabledEnv, "0")
61 suite.False(suite.cm.IsTracingEnabled())
62 os.Setenv(tracingEnabledEnv, "foo")
63 suite.False(suite.cm.IsTracingEnabled())
66 func (suite *ConfMakerTestSuite) TestSamplerTypeDefaultIsConst() {
67 suite.Equal("const", suite.cm.getSamplerConfig().Type)
70 func (suite *ConfMakerTestSuite) TestSamplerTypeParamDefault() {
71 suite.Equal(0.001, suite.cm.getSamplerConfig().Param)
74 func (suite *ConfMakerTestSuite) TestSamplerTypeCanBeDefined() {
75 os.Setenv(jaegerSamplerTypeEnv, "probabilistic")
76 suite.Equal("probabilistic", suite.cm.getSamplerConfig().Type)
79 func (suite *ConfMakerTestSuite) TestIfSamplerParamIsInvalidZeroValueIsUsed() {
80 os.Setenv(jaegerSamplerParamEnv, "foo")
81 suite.Equal(0.0, suite.cm.getSamplerConfig().Param)
84 func (suite *ConfMakerTestSuite) TestAgentAddrCanBeDefined() {
85 os.Setenv(jaegerAgentAddrEnv, "1.1.1.1:1111")
86 suite.Equal("1.1.1.1:1111", suite.cm.getReporterConfig().LocalAgentHostPort)
89 func (suite *ConfMakerTestSuite) TestAgentAddressPortIsOptional() {
90 os.Setenv(jaegerAgentAddrEnv, "1.1.1.1")
91 suite.Equal("1.1.1.1:6831", suite.cm.getReporterConfig().LocalAgentHostPort)
94 func (suite *ConfMakerTestSuite) TestLoggingLevelDefaultIsErr() {
95 suite.Equal(logErr, suite.cm.getLoggingLevel())
98 func (suite *ConfMakerTestSuite) TestLoggingLevelCanBeConfigured() {
99 os.Setenv(jaegerLogLevelEnv, "error")
100 suite.Equal(logErr, suite.cm.getLoggingLevel())
101 os.Setenv(jaegerLogLevelEnv, "all")
102 suite.Equal(logAll, suite.cm.getLoggingLevel())
103 os.Setenv(jaegerLogLevelEnv, "none")
104 suite.Equal(logNone, suite.cm.getLoggingLevel())
107 func (suite *ConfMakerTestSuite) TestConfiguredTracerCreate() {
108 os.Setenv(tracingEnabledEnv, "1")
109 os.Setenv(jaegerSamplerParamEnv, "const")
110 os.Setenv(jaegerSamplerParamEnv, "1")
111 os.Setenv(jaegerAgentAddrEnv, "127.0.0.1:6831")
112 tracer, closer := CreateTracer("foo")
117 func (suite *ConfMakerTestSuite) TestIfTracerCreationFailsDisabledTracerIsReturned() {
118 os.Setenv(tracingEnabledEnv, "1")
119 tracer, closer := CreateTracer("") // Empty name is an error
124 func TestConfMakerSuite(t *testing.T) {
125 suite.Run(t, new(ConfMakerTestSuite))
128 func TestDefaultTracerCreate(t *testing.T) {
129 tracer, closer := CreateTracer("foo")
130 assert.NotNil(t, tracer)
131 assert.NotNil(t, closer)
132 err := closer.Close()