blob: fedab89f3dc1ba67fd0994fd9ae6899f4e29bda7 [file] [log] [blame]
// Copyright 2026 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package otel
import (
"errors"
"testing"
"golang.org/x/tools/internal/event/keys"
)
func TestLabelToAttribute_String(t *testing.T) {
key := keys.NewString("mykey", "")
l := key.Of("myvalue")
attr, ok := labelToAttribute(l)
if !ok {
t.Fatal("expected ok=true")
}
if attr.Key != "mykey" {
t.Errorf("expected key 'mykey', got %q", attr.Key)
}
if attr.Value.StringValue == nil || *attr.Value.StringValue != "myvalue" {
t.Errorf("expected stringValue 'myvalue', got %v", attr.Value.StringValue)
}
}
func TestLabelToAttribute_Int(t *testing.T) {
key := keys.NewInt("count", "")
l := key.Of(42)
attr, ok := labelToAttribute(l)
if !ok {
t.Fatal("expected ok=true")
}
if attr.Key != "count" {
t.Errorf("expected key 'count', got %q", attr.Key)
}
if attr.Value.IntValue == nil || *attr.Value.IntValue != 42 {
t.Errorf("expected intValue 42, got %v", attr.Value.IntValue)
}
}
func TestLabelToAttribute_Float(t *testing.T) {
key := keys.NewFloat("ratio", "")
l := key.Of(3.14)
attr, ok := labelToAttribute(l)
if !ok {
t.Fatal("expected ok=true")
}
if attr.Key != "ratio" {
t.Errorf("expected key 'ratio', got %q", attr.Key)
}
if attr.Value.DoubleValue == nil || *attr.Value.DoubleValue != 3.14 {
t.Errorf("expected doubleValue 3.14, got %v", attr.Value.DoubleValue)
}
}
func TestLabelToAttribute_Error(t *testing.T) {
key := keys.NewError("err", "")
l := key.Of(errors.New("something failed"))
attr, ok := labelToAttribute(l)
if !ok {
t.Fatal("expected ok=true")
}
if attr.Key != "err" {
t.Errorf("expected key 'err', got %q", attr.Key)
}
if attr.Value.StringValue == nil || *attr.Value.StringValue != "something failed" {
t.Errorf("expected stringValue 'something failed', got %v", attr.Value.StringValue)
}
}
func TestLabelToAttribute_NilError(t *testing.T) {
key := keys.NewError("err", "")
l := key.Of(nil)
_, ok := labelToAttribute(l)
if ok {
t.Error("expected ok=false for nil error")
}
}