blob: 076ad94173438b69d7021bbf1b4314150bfc321f [file] [log] [blame]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
//go:build go1.16 && (linux || darwin)
// +build go1.16
// +build linux darwin
package main
import (
"testing"
"time"
)
func TestHumanDuration(t *testing.T) {
cases := []struct {
desc string
duration string
want string
}{
{
desc: "format days",
duration: "99h2m1s",
want: "4d3h2m1s",
},
{
desc: "handle tiny durations",
duration: "1ns",
want: "0s",
},
{
desc: "handle seconds",
duration: "3s",
want: "3s",
},
}
for _, c := range cases {
t.Run(c.duration, func(t *testing.T) {
d, err := time.ParseDuration(c.duration)
if err != nil {
t.Fatalf("time.ParseDuration(%q) = %q, %q, wanted no error", c.duration, d, err)
}
if got := humanDuration(d); got != c.want {
t.Errorf("humanDuration(%v) = %q, wanted %q", d, got, c.want)
}
})
}
}