mirror of
https://github.com/prometheus/prometheus.git
synced 2025-01-11 05:47:27 -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) {
|
func TestTemplateExpansion(t *testing.T) {
|
||||||
scenarios := []struct {
|
testTemplateExpansion(t, []scenario{
|
||||||
text string
|
|
||||||
output string
|
|
||||||
input interface{}
|
|
||||||
options []string
|
|
||||||
queryResult promql.Vector
|
|
||||||
shouldFail bool
|
|
||||||
html bool
|
|
||||||
errorMsg string
|
|
||||||
}{
|
|
||||||
{
|
{
|
||||||
// No template.
|
// No template.
|
||||||
text: "plain text",
|
text: "plain text",
|
||||||
|
@ -353,14 +344,14 @@ func TestTemplateExpansion(t *testing.T) {
|
||||||
{
|
{
|
||||||
// HumanizeDuration - int.
|
// HumanizeDuration - int.
|
||||||
text: "{{ range . }}{{ humanizeDuration . }}:{{ end }}",
|
text: "{{ range . }}{{ humanizeDuration . }}:{{ end }}",
|
||||||
input: []int{0, -1, 1, 1234567, math.MaxInt64},
|
input: []int{0, -1, 1, 1234567},
|
||||||
output: "0s:-1s:1s:14d 6h 56m 7s:-106751991167300d -15h -30m -8s:",
|
output: "0s:-1s:1s:14d 6h 56m 7s:",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// HumanizeDuration - uint.
|
// HumanizeDuration - uint.
|
||||||
text: "{{ range . }}{{ humanizeDuration . }}:{{ end }}",
|
text: "{{ range . }}{{ humanizeDuration . }}:{{ end }}",
|
||||||
input: []uint{0, 1, 1234567, math.MaxUint64},
|
input: []uint{0, 1, 1234567},
|
||||||
output: "0s:1s:14d 6h 56m 7s:-106751991167300d -15h -30m -8s:",
|
output: "0s:1s:14d 6h 56m 7s:",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// Humanize* Inf and NaN - float64.
|
// Humanize* Inf and NaN - float64.
|
||||||
|
@ -489,8 +480,21 @@ func TestTemplateExpansion(t *testing.T) {
|
||||||
text: "{{ printf \"%0.2f\" (parseDuration \"1h2m10ms\") }}",
|
text: "{{ printf \"%0.2f\" (parseDuration \"1h2m10ms\") }}",
|
||||||
output: "3720.01",
|
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")
|
extURL, err := url.Parse("http://testhost:9090/path/prefix")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
Loading…
Reference in a new issue