mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-09 23:24:05 -08:00
template: Fix failing tests on non-amd64 architectures (#10196)
This commit is contained in:
parent
9bdd2d0ffd
commit
71a0f42331
40
template/template_amd64_test.go
Normal file
40
template/template_amd64_test.go
Normal file
|
@ -0,0 +1,40 @@
|
|||
// Copyright 2021 The Prometheus Authors
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package template
|
||||
|
||||
import (
|
||||
"math"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// Some test cases rely upon architecture-specific behaviors with respect
|
||||
// to numerical conversions. The logic remains the same across architectures,
|
||||
// but outputs can vary, so the cases are only run on amd64.
|
||||
// See https://github.com/prometheus/prometheus/issues/10185 for more details.
|
||||
func TestTemplateExpansionAMD64(t *testing.T) {
|
||||
testTemplateExpansion(t, []scenario{
|
||||
{
|
||||
// HumanizeDuration - MaxInt64.
|
||||
text: "{{ humanizeDuration . }}",
|
||||
input: math.MaxInt64,
|
||||
output: "-106751991167300d -15h -30m -8s",
|
||||
},
|
||||
{
|
||||
// HumanizeDuration - MaxUint64.
|
||||
text: "{{ humanizeDuration . }}",
|
||||
input: uint(math.MaxUint64),
|
||||
output: "-106751991167300d -15h -30m -8s",
|
||||
},
|
||||
})
|
||||
}
|
|
@ -27,16 +27,7 @@ import (
|
|||
)
|
||||
|
||||
func TestTemplateExpansion(t *testing.T) {
|
||||
scenarios := []struct {
|
||||
text string
|
||||
output string
|
||||
input interface{}
|
||||
options []string
|
||||
queryResult promql.Vector
|
||||
shouldFail bool
|
||||
html bool
|
||||
errorMsg string
|
||||
}{
|
||||
testTemplateExpansion(t, []scenario{
|
||||
{
|
||||
// No template.
|
||||
text: "plain text",
|
||||
|
@ -353,14 +344,14 @@ func TestTemplateExpansion(t *testing.T) {
|
|||
{
|
||||
// HumanizeDuration - int.
|
||||
text: "{{ range . }}{{ humanizeDuration . }}:{{ end }}",
|
||||
input: []int{0, -1, 1, 1234567, math.MaxInt64},
|
||||
output: "0s:-1s:1s:14d 6h 56m 7s:-106751991167300d -15h -30m -8s:",
|
||||
input: []int{0, -1, 1, 1234567},
|
||||
output: "0s:-1s:1s:14d 6h 56m 7s:",
|
||||
},
|
||||
{
|
||||
// HumanizeDuration - uint.
|
||||
text: "{{ range . }}{{ humanizeDuration . }}:{{ end }}",
|
||||
input: []uint{0, 1, 1234567, math.MaxUint64},
|
||||
output: "0s:1s:14d 6h 56m 7s:-106751991167300d -15h -30m -8s:",
|
||||
input: []uint{0, 1, 1234567},
|
||||
output: "0s:1s:14d 6h 56m 7s:",
|
||||
},
|
||||
{
|
||||
// Humanize* Inf and NaN - float64.
|
||||
|
@ -489,8 +480,21 @@ func TestTemplateExpansion(t *testing.T) {
|
|||
text: "{{ printf \"%0.2f\" (parseDuration \"1h2m10ms\") }}",
|
||||
output: "3720.01",
|
||||
},
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
type scenario struct {
|
||||
text string
|
||||
output string
|
||||
input interface{}
|
||||
options []string
|
||||
queryResult promql.Vector
|
||||
shouldFail bool
|
||||
html bool
|
||||
errorMsg string
|
||||
}
|
||||
|
||||
func testTemplateExpansion(t *testing.T, scenarios []scenario) {
|
||||
extURL, err := url.Parse("http://testhost:9090/path/prefix")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
|
Loading…
Reference in a new issue