fail fast when rolling window size is zero

master
kevin 4 years ago
parent 6f49639f80
commit c824e9e118

@ -22,6 +22,10 @@ type (
) )
func NewRollingWindow(size int, interval time.Duration, opts ...RollingWindowOption) *RollingWindow { func NewRollingWindow(size int, interval time.Duration, opts ...RollingWindowOption) *RollingWindow {
if size < 1 {
panic("size must be greater than 0")
}
w := &RollingWindow{ w := &RollingWindow{
size: size, size: size,
win: newWindow(size), win: newWindow(size),

@ -11,6 +11,13 @@ import (
const duration = time.Millisecond * 50 const duration = time.Millisecond * 50
func TestNewRollingWindow(t *testing.T) {
assert.NotNil(t, NewRollingWindow(10, time.Second))
assert.Panics(t, func() {
NewRollingWindow(0, time.Second)
})
}
func TestRollingWindowAdd(t *testing.T) { func TestRollingWindowAdd(t *testing.T) {
const size = 3 const size = 3
r := NewRollingWindow(size, duration) r := NewRollingWindow(size, duration)

@ -1,21 +0,0 @@
package main
import (
"fmt"
"os"
"github.com/tal-tech/go-zero/core/logx"
"github.com/tal-tech/go-zero/tools/goctl/api/parser"
)
func main() {
if len(os.Args) <= 1 {
return
}
p, err := parser.NewParser(os.Args[1])
logx.Must(err)
api, err := p.Parse()
logx.Must(err)
fmt.Println(api)
}
Loading…
Cancel
Save