@@ -125,7 +125,7 @@ func main() {
125125
126126 db .logger .Infof ("replay started on %s" , time .Now ().Format ("Mon Jan 2 15:04:05" ))
127127 db .logger .Infof ("estimated time of end: %s" , time .Now ().
128- Add (realExec / time .Duration (db .speedFactor )).Format ("Mon Jan 2 15:04:05" ))
128+ Add (time .Duration (float64 ( realExec ) / db .speedFactor )).Format ("Mon Jan 2 15:04:05" ))
129129
130130 r , err := db .replay (f )
131131 if err != nil {
@@ -154,6 +154,12 @@ func (o *options) parse() []error {
154154 errs = append (errs , errors .New ("no database provided" ))
155155 } else if o .workers <= 0 {
156156 errs = append (errs , errors .New ("cannot create negative number or zero workers" ))
157+ } else if o .factor <= 0 {
158+ errs = append (errs , errors .New ("cannot use a speed factor inferior or equal to 0" ))
159+ }
160+
161+ if len (errs ) != 0 {
162+ return errs
157163 }
158164
159165 if o .usePass {
@@ -285,14 +291,7 @@ func (db *database) replay(f io.Reader) (results, error) {
285291
286292 var j job
287293 delta := q .Time .Sub (reference )
288- diviser := time .Duration (db .speedFactor )
289- if diviser >= 1.0 {
290- j .idle = start .Add (delta / diviser )
291- } else if diviser > 0.0 {
292- j .idle = start .Add (delta * (1 / diviser ))
293- } else {
294- j .idle = start .Add (delta )
295- }
294+ j .idle = start .Add (time .Duration (float64 (delta ) / db .speedFactor ))
296295 j .query = q .Query
297296 db .logger .Tracef ("next sleeping time: %s" , j .idle )
298297
0 commit comments