2023-03-01 11:16:03 -08:00
|
|
|
// Copyright The OpenTelemetry Authors
|
2024-02-29 07:05:28 +01:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
2023-03-01 11:16:03 -08:00
|
|
|
|
|
|
|
package global
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"errors"
|
|
|
|
"log"
|
2024-04-04 13:36:34 -07:00
|
|
|
"os"
|
|
|
|
"strings"
|
2023-03-01 11:16:03 -08:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2024-04-04 13:36:34 -07:00
|
|
|
func TestErrDelegator(t *testing.T) {
|
|
|
|
buf := new(bytes.Buffer)
|
|
|
|
log.Default().SetOutput(buf)
|
|
|
|
t.Cleanup(func() { log.Default().SetOutput(os.Stderr) })
|
2023-03-01 11:16:03 -08:00
|
|
|
|
2024-04-04 13:36:34 -07:00
|
|
|
e := &ErrDelegator{}
|
2023-03-01 11:16:03 -08:00
|
|
|
|
2024-04-04 13:36:34 -07:00
|
|
|
err := errors.New("testing")
|
|
|
|
e.Handle(err)
|
2023-03-01 11:16:03 -08:00
|
|
|
|
2024-04-04 13:36:34 -07:00
|
|
|
got := buf.String()
|
|
|
|
if !strings.Contains(got, err.Error()) {
|
|
|
|
t.Error("default handler did not log")
|
2023-03-01 11:16:03 -08:00
|
|
|
}
|
2024-04-04 13:36:34 -07:00
|
|
|
buf.Reset()
|
2023-03-01 11:16:03 -08:00
|
|
|
|
2024-04-04 13:36:34 -07:00
|
|
|
var gotErr error
|
|
|
|
e.setDelegate(fnErrHandler(func(e error) { gotErr = e }))
|
|
|
|
e.Handle(err)
|
2023-03-01 11:16:03 -08:00
|
|
|
|
2024-04-04 13:36:34 -07:00
|
|
|
if buf.String() != "" {
|
|
|
|
t.Error("delegate not set")
|
|
|
|
} else if !errors.Is(gotErr, err) {
|
|
|
|
t.Error("error not passed to delegate")
|
2023-03-01 11:16:03 -08:00
|
|
|
}
|
|
|
|
}
|