Skip to content

Commit

Permalink
Add TestApplicationStartInfo function
Browse files Browse the repository at this point in the history
  • Loading branch information
james-bebbington committed Aug 22, 2020
1 parent f7ee02d commit a509543
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 44 deletions.
29 changes: 29 additions & 0 deletions component/componenttest/application_start_info.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Copyright The OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package componenttest

import (
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/internal/version"
)

func TestApplicationStartInfo() component.ApplicationStartInfo {
return component.ApplicationStartInfo{
ExeName: "otelcol",
LongName: "InProcess Collector",
Version: version.Version,
GitHash: version.GitHash,
}
}
10 changes: 5 additions & 5 deletions service/builder/exporters_builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func TestExportersBuilder_Build(t *testing.T) {
},
}

exporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
exporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()

assert.NoError(t, err)
require.NotNil(t, exporters)
Expand Down Expand Up @@ -88,7 +88,7 @@ func TestExportersBuilder_Build(t *testing.T) {
// This should result in creating an exporter that has none of consumption
// functions set.
delete(cfg.Service.Pipelines, "trace")
exporters, err = NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
exporters, err = NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NotNil(t, exporters)
assert.NoError(t, err)

Expand Down Expand Up @@ -128,7 +128,7 @@ func TestExportersBuilder_BuildLogs(t *testing.T) {
},
}

exporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
exporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()

assert.NoError(t, err)
require.NotNil(t, exporters)
Expand All @@ -153,7 +153,7 @@ func TestExportersBuilder_BuildLogs(t *testing.T) {
// This should result in creating an exporter that has none of consumption
// functions set.
delete(cfg.Service.Pipelines, "logs")
exporters, err = NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
exporters, err = NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NotNil(t, exporters)
assert.Nil(t, err)

Expand Down Expand Up @@ -240,7 +240,7 @@ func TestExportersBuilder_ErrorOnNilExporter(t *testing.T) {
},
}

exporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, fm).Build()
exporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, fm).Build()
assert.Error(t, err)
assert.Zero(t, len(exporters))
})
Expand Down
18 changes: 9 additions & 9 deletions service/builder/pipelines_builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,15 +133,15 @@ func TestPipelinesBuilder_BuildVarious(t *testing.T) {
cfg := createExampleConfig(dataType)

// BuildProcessors the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
if test.shouldFail {
assert.Error(t, err)
return
}

require.NoError(t, err)
require.EqualValues(t, 1, len(allExporters))
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()

assert.NoError(t, err)
require.NotNil(t, pipelineProcessors)
Expand Down Expand Up @@ -216,9 +216,9 @@ func testPipeline(t *testing.T, pipelineName string, exporterNames []string) {
require.Nil(t, err)

// BuildProcessors the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()

assert.NoError(t, err)
require.NotNil(t, pipelineProcessors)
Expand Down Expand Up @@ -280,12 +280,12 @@ func TestPipelinesBuilder_Error(t *testing.T) {
pipeline := cfg.Service.Pipelines["traces"]
pipeline.InputType = configmodels.MetricsDataType

exporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
exporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)

// This should fail because "attributes" processor defined in the config does
// not support metrics data type.
_, err = NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, exporters, factories.Processors).Build()
_, err = NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, exporters, factories.Processors).Build()

assert.NotNil(t, err)
}
Expand All @@ -300,15 +300,15 @@ func TestProcessorsBuilder_ErrorOnNilProcessor(t *testing.T) {
cfg, err := configtest.LoadConfigFile(t, "testdata/bad_processor_factory.yaml", factories)
require.Nil(t, err)

allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)

// First test only trace receivers by removing the metrics pipeline.
metricsPipeline := cfg.Service.Pipelines["metrics"]
delete(cfg.Service.Pipelines, "metrics")
require.Equal(t, 1, len(cfg.Service.Pipelines))

pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.Error(t, err)
assert.Zero(t, len(pipelineProcessors))

Expand All @@ -317,7 +317,7 @@ func TestProcessorsBuilder_ErrorOnNilProcessor(t *testing.T) {
cfg.Service.Pipelines["metrics"] = metricsPipeline
require.Equal(t, 1, len(cfg.Service.Pipelines))

pipelineProcessors, err = NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err = NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.Error(t, err)
assert.Zero(t, len(pipelineProcessors))
}
Expand Down
38 changes: 19 additions & 19 deletions service/builder/receivers_builder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,11 @@ func testReceivers(
require.Nil(t, err)

// Build the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.NoError(t, err)
receivers, err := NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err := NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()

assert.NoError(t, err)
require.NotNil(t, receivers)
Expand Down Expand Up @@ -201,16 +201,16 @@ func TestReceiversBuilder_BuildCustom(t *testing.T) {
cfg := createExampleConfig(dataType)

// Build the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
if test.shouldFail {
assert.Error(t, err)
return
}

assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.NoError(t, err)
receivers, err := NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err := NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()

assert.NoError(t, err)
require.NotNil(t, receivers)
Expand Down Expand Up @@ -273,11 +273,11 @@ func TestReceiversBuilder_DataTypeError(t *testing.T) {
receiver.(*componenttest.ExampleReceiver).FailTraceCreation = true

// Build the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.NoError(t, err)
receivers, err := NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err := NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()

// This should fail because "examplereceiver" is attached to "traces" pipeline
// which is a configuration error.
Expand Down Expand Up @@ -333,17 +333,17 @@ func TestReceiversBuilder_ErrorOnNilReceiver(t *testing.T) {
require.Nil(t, err)

// Build the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.NoError(t, err)

// First test only trace receivers by removing the metrics pipeline.
metricsPipeline := cfg.Service.Pipelines["metrics"]
delete(cfg.Service.Pipelines, "metrics")
require.Equal(t, 1, len(cfg.Service.Pipelines))

receivers, err := NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err := NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()
assert.Error(t, err)
assert.Zero(t, len(receivers))

Expand All @@ -352,7 +352,7 @@ func TestReceiversBuilder_ErrorOnNilReceiver(t *testing.T) {
cfg.Service.Pipelines["metrics"] = metricsPipeline
require.Equal(t, 1, len(cfg.Service.Pipelines))

receivers, err = NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err = NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()
assert.Error(t, err)
assert.Zero(t, len(receivers))
}
Expand All @@ -370,11 +370,11 @@ func TestReceiversBuilder_Unused(t *testing.T) {
assert.NoError(t, err)

// Build the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.NoError(t, err)
receivers, err := NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err := NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()
assert.NoError(t, err)
assert.NotNil(t, receivers)

Expand All @@ -393,11 +393,11 @@ func TestReceiversBuilder_InternalToOcTraceConverter(t *testing.T) {
require.Nil(t, err)

// Build the pipeline
allExporters, err := NewExportersBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, factories.Exporters).Build()
allExporters, err := NewExportersBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, factories.Exporters).Build()
assert.NoError(t, err)
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, allExporters, factories.Processors).Build()
pipelineProcessors, err := NewPipelinesBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, allExporters, factories.Processors).Build()
assert.NoError(t, err)
receivers, err := NewReceiversBuilder(zap.NewNop(), component.ApplicationStartInfo{}, cfg, pipelineProcessors, factories.Receivers).Build()
receivers, err := NewReceiversBuilder(zap.NewNop(), componenttest.TestApplicationStartInfo(), cfg, pipelineProcessors, factories.Receivers).Build()
assert.NoError(t, err)
assert.NotNil(t, receivers)

Expand Down
12 changes: 3 additions & 9 deletions service/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ import (
"go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/config"
"go.opentelemetry.io/collector/config/configmodels"
"go.opentelemetry.io/collector/internal/version"
"go.opentelemetry.io/collector/service/defaultcomponents"
"go.opentelemetry.io/collector/testutil"
)
Expand All @@ -53,7 +52,7 @@ func TestApplication_Start(t *testing.T) {
return nil
}

app, err := New(Parameters{Factories: factories, ApplicationStartInfo: component.ApplicationStartInfo{}, LoggingHooks: []func(entry zapcore.Entry) error{hook}})
app, err := New(Parameters{Factories: factories, ApplicationStartInfo: componenttest.TestApplicationStartInfo(), LoggingHooks: []func(entry zapcore.Entry) error{hook}})
require.NoError(t, err)
assert.Equal(t, app.rootCmd, app.Command())

Expand Down Expand Up @@ -113,7 +112,7 @@ func TestApplication_ReportError(t *testing.T) {
factories, err := defaultcomponents.Components()
require.NoError(t, err)

app, err := New(Parameters{Factories: factories, ApplicationStartInfo: component.ApplicationStartInfo{}})
app, err := New(Parameters{Factories: factories, ApplicationStartInfo: componenttest.TestApplicationStartInfo()})
require.NoError(t, err)

app.rootCmd.SetArgs([]string{"--config=testdata/otelcol-config-minimal.yaml"})
Expand All @@ -137,12 +136,7 @@ func TestApplication_StartAsGoRoutine(t *testing.T) {
require.NoError(t, err)

params := Parameters{
ApplicationStartInfo: component.ApplicationStartInfo{
ExeName: "otelcol",
LongName: "InProcess Collector",
Version: version.Version,
GitHash: version.GitHash,
},
ApplicationStartInfo: componenttest.TestApplicationStartInfo(),
ConfigFactory: func(v *viper.Viper, factories component.Factories) (*configmodels.Config, error) {
return constructMimumalOpConfig(t, factories), nil
},
Expand Down
4 changes: 2 additions & 2 deletions service/service_windows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (
"github.com/stretchr/testify/require"
"golang.org/x/sys/windows/svc"

"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/service/defaultcomponents"
)

Expand All @@ -34,7 +34,7 @@ func TestWindowsService_Execute(t *testing.T) {
factories, err := defaultcomponents.Components()
require.NoError(t, err)

s := NewWindowsService(Parameters{Factories: factories, ApplicationStartInfo: component.ApplicationStartInfo{}})
s := NewWindowsService(Parameters{Factories: factories, ApplicationStartInfo: componenttest.TestApplicationStartInfo()})

appDone := make(chan struct{})
requests := make(chan svc.ChangeRequest)
Expand Down

0 comments on commit a509543

Please sign in to comment.