mirror of
https://github.com/hanzoai/telemetry.git
synced 2026-10-30 20:01:49 +00:00
<!--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
46 lines
1.3 KiB
Go
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
|
|
}
|