mirror of
https://github.com/go-sylixos/elvish.git
synced 2024-12-14 02:57:52 +08:00
43 lines
1.0 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|