summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/generate/typesgo.go4
-rw-r--r--internal/generate/typesgo_test.go2
-rw-r--r--internal/types/generated_types.go4
-rw-r--r--internal/types/types_test.go9
4 files changed, 14 insertions, 5 deletions
diff --git a/internal/generate/typesgo.go b/internal/generate/typesgo.go
index ee24845..06ed49a 100644
--- a/internal/generate/typesgo.go
+++ b/internal/generate/typesgo.go
@@ -186,7 +186,7 @@ func writeTraceIdStringMethod(b *strings.Builder) {
b.WriteString(`func (s TraceId) String() string {
str, ok := traceId2String[s]
if !ok {
- panic(fmt.Sprintf("no string representation for trace ID %d found", s))
+ return fmt.Sprintf("unknown_trace_id_%d", s)
}
return str
}
@@ -198,7 +198,7 @@ func writeTraceIdNameMethod(b *strings.Builder) {
b.WriteString(`func (s TraceId) Name() string {
str, ok := traceId2Name[s]
if !ok {
- panic(fmt.Sprintf("no name for trace ID %d found", s))
+ return fmt.Sprintf("unknown_trace_id_%d", s)
}
return str
}
diff --git a/internal/generate/typesgo_test.go b/internal/generate/typesgo_test.go
index 89dafa8..f600582 100644
--- a/internal/generate/typesgo_test.go
+++ b/internal/generate/typesgo_test.go
@@ -240,7 +240,7 @@ func TestGenerateTypesGoTraceIdMethods(t *testing.T) {
requireContains(t, output, "func (s TraceId) String() string")
requireContains(t, output, "func (s TraceId) Name() string")
- requireContains(t, output, `panic(fmt.Sprintf("no string representation for trace ID %d found", s))`)
+ requireContains(t, output, `return fmt.Sprintf("unknown_trace_id_%d", s)`)
}
func TestGenerateTypesGoPackageDecl(t *testing.T) {
diff --git a/internal/types/generated_types.go b/internal/types/generated_types.go
index 9cdcc5b..1f4b9d8 100644
--- a/internal/types/generated_types.go
+++ b/internal/types/generated_types.go
@@ -22,7 +22,7 @@ var traceId2Name = map[TraceId]string{
func (s TraceId) String() string {
str, ok := traceId2String[s]
if !ok {
- panic(fmt.Sprintf("no string representation for trace ID %d found", s))
+ return fmt.Sprintf("unknown_trace_id_%d", s)
}
return str
}
@@ -30,7 +30,7 @@ func (s TraceId) String() string {
func (s TraceId) Name() string {
str, ok := traceId2Name[s]
if !ok {
- panic(fmt.Sprintf("no name for trace ID %d found", s))
+ return fmt.Sprintf("unknown_trace_id_%d", s)
}
return str
}
diff --git a/internal/types/types_test.go b/internal/types/types_test.go
index 6abebdb..8ba7367 100644
--- a/internal/types/types_test.go
+++ b/internal/types/types_test.go
@@ -1,6 +1,7 @@
package types
import (
+ "fmt"
"syscall"
"testing"
)
@@ -156,6 +157,14 @@ func TestEqualsDifferentValues(t *testing.T) {
t.Log("Equals returns false for same type but different values")
}
+func TestTraceIdUnknownFallback(t *testing.T) {
+ unknown := TraceId(0xFFFFFFFF)
+ want := fmt.Sprintf("unknown_trace_id_%d", unknown)
+
+ assertEquals(t, want, unknown.String())
+ assertEquals(t, want, unknown.Name())
+}
+
func assertEquals[T comparable](t *testing.T, a, b T) {
if a != b {
t.Errorf("Expected %v, got %v", a, b)