elvish/pkg/testutil/scaled_test.go

43 lines
1.0 KiB
Go

package testutil
import (
"os"
"testing"
"time"
"src.elv.sh/pkg/env"
)
var scaledMsTests = []struct {
name string
env string
d time.Duration
want time.Duration
}{
{"default 10ms", "", 10 * time.Millisecond, 10 * time.Millisecond},
{"2x 10ms", "2", 10 * time.Millisecond, 20 * time.Millisecond},
{"2x 3s", "2", 3 * time.Second, 6 * time.Second},
{"0.5x 10ms", "0.5", 10 * time.Millisecond, 5 * time.Millisecond},
{"invalid treated as 1", "a", 10 * time.Millisecond, 10 * time.Millisecond},
{"0 treated as 1", "0", 10 * time.Millisecond, 10 * time.Millisecond},
{"negative treated as 1", "-1", 10 * time.Millisecond, 10 * time.Millisecond},
}
func TestScaled(t *testing.T) {
envSave := os.Getenv(env.ELVISH_TEST_TIME_SCALE)
defer os.Setenv(env.ELVISH_TEST_TIME_SCALE, envSave)
for _, test := range scaledMsTests {
t.Run(test.name, func(t *testing.T) {
os.Setenv(env.ELVISH_TEST_TIME_SCALE, test.env)
got := Scaled(test.d)
if got != test.want {
t.Errorf("got %v, want %v", got, test.want)
}
})
}
}