Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions prometheus/desc.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,11 @@ func NewInvalidDesc(err error) *Desc {
}
}

// Err returns an error that occurred during construction, if any.
func (d *Desc) Err() error {
return d.err
}

func (d *Desc) String() string {
lpStrings := make([]string, 0, len(d.constLabelPairs))
for _, lp := range d.constLabelPairs {
Expand Down
26 changes: 20 additions & 6 deletions prometheus/desc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,29 @@ import (
"testing"
)

func TestNewDescInvalidLabelValues(t *testing.T) {
func TestNewDescInvalidConstLabelValues(t *testing.T) {
labelValue := "\xFF"
desc := NewDesc(
"sample_label",
"sample label",
nil,
Labels{"a": "\xFF"},
Labels{"a": labelValue},
)
if desc.err == nil {
t.Errorf("NewDesc: expected error because: %s", desc.err)
if desc.Err() == nil {
t.Errorf("NewDesc: expected error because const label value is invalid: %s", labelValue)
}
}

func TestNewDescInvalidVariableLabelName(t *testing.T) {
labelValue := "__label__"
desc := NewDesc(
"sample_label",
"sample label",
[]string{labelValue},
Labels{"a": "b"},
)
if desc.Err() == nil {
t.Errorf("NewDesc: expected error because variable label name is invalid: %s", labelValue)
}
}

Expand All @@ -36,8 +50,8 @@ func TestNewDescNilLabelValues(t *testing.T) {
nil,
nil,
)
if desc.err != nil {
t.Errorf("NewDesc: unexpected error: %s", desc.err)
if desc.Err() != nil {
t.Errorf("NewDesc: unexpected error: %s", desc.Err())
}
}

Expand Down
Loading