Files
telemetry/otelcol/collector_windows_test.go
Tyler HelmuthandGitHub 0f7e07e364 [otelcol] Remove all default providers/converters (#10436)
<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description
Removed deprecated `NewCommand`. Deprecates `NewCommandMustSetProvider`.
Adds `NewCommand` that requires at least one provider be set.

Removes usage of imported providers/converters from otelcol (but they
still live in otelcoltest until
https://github.com/open-telemetry/opentelemetry-collector/pull/10417 is
merged.

<!-- Issue number if applicable -->
#### Link to tracking issue
closes
https://github.com/open-telemetry/opentelemetry-collector/issues/10290.

<!--Describe what testing was performed and which tests were added.-->
#### Testing
Unit tests
2024-06-28 10:33:11 +02:00

46 lines
1.3 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
//go:build windows
package otelcol
import (
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
"golang.org/x/sys/windows/svc"
"go.opentelemetry.io/collector/component"
)
func TestNewSvcHandler(t *testing.T) {
oldArgs := os.Args
defer func() { os.Args = oldArgs }()
filePath := filepath.Join("testdata", "otelcol-nop.yaml")
os.Args = []string{"otelcol", "--config", filePath}
s := NewSvcHandler(CollectorSettings{BuildInfo: component.NewDefaultBuildInfo(), Factories: nopFactories, ConfigProviderSettings: newDefaultConfigProviderSettings(t, []string{filePath})})
colDone := make(chan struct{})
requests := make(chan svc.ChangeRequest)
changes := make(chan svc.Status)
go func() {
defer close(colDone)
ssec, errno := s.Execute([]string{"svc name"}, requests, changes)
assert.Equal(t, uint32(0), errno)
assert.False(t, ssec)
}()
assert.Equal(t, svc.StartPending, (<-changes).State)
assert.Equal(t, svc.Running, (<-changes).State)
requests <- svc.ChangeRequest{Cmd: svc.Interrogate, CurrentStatus: svc.Status{State: svc.Running}}
assert.Equal(t, svc.Running, (<-changes).State)
requests <- svc.ChangeRequest{Cmd: svc.Stop}
assert.Equal(t, svc.StopPending, (<-changes).State)
assert.Equal(t, svc.Stopped, (<-changes).State)
<-colDone
}