opentelemetry-collector/semconv/semconv_test.go

53 lines
1.2 KiB
Go

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package semconv
import (
"os"
"path/filepath"
"testing"
version "github.com/hashicorp/go-version"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAllSemConvFilesAreCrated(t *testing.T) {
// Files that have to be present in each semconv package
expectedFiles := []string{"generated_resource.go", "generated_trace.go", "schema.go", "nonstandard.go"}
files, err := os.ReadDir(".")
require.NoError(t, err)
constraints, err := version.NewConstraint("> v1.16.0")
require.NoError(t, err)
attrgroupconstraints, err := version.NewConstraint("> v1.22.0")
require.NoError(t, err)
for _, f := range files {
if !f.IsDir() {
continue
}
ver, err := version.NewVersion(f.Name())
require.NoError(t, err)
expected := make([]string, len(expectedFiles))
copy(expected, expectedFiles)
if constraints.Check(ver) {
expected[len(expected)-1] = "generated_event.go"
}
if attrgroupconstraints.Check(ver) {
assert.FileExists(t, filepath.Join(".", f.Name(), "generated_attribute_group.go"))
}
for _, ef := range expected {
assert.FileExists(t, filepath.Join(".", f.Name(), ef))
}
}
}