nettests: don't say ETA is infinite
1. only print time left if ETA is positive 2. skip ETA calculation with a single input 3. don't compute ETA for first entry[*] [*] this is actually what avoids emitting infinite but the other parts of this diff felt useful yak shaving as well. Closes #91
This commit is contained in:
parent
991b875bd9
commit
955509e6f8
|
@ -110,10 +110,13 @@ func (h *Handler) TypedLog(t string, e *log.Entry) error {
|
||||||
case "progress":
|
case "progress":
|
||||||
perc := e.Fields.Get("percentage").(float64) * 100
|
perc := e.Fields.Get("percentage").(float64) * 100
|
||||||
eta := e.Fields.Get("eta").(float64)
|
eta := e.Fields.Get("eta").(float64)
|
||||||
s := fmt.Sprintf(" %s %-25s (%ss left)",
|
var etaMessage string
|
||||||
|
if eta >= 0 {
|
||||||
|
etaMessage = fmt.Sprintf("(%ss left)", bold.Sprintf("%.2f", eta))
|
||||||
|
}
|
||||||
|
s := fmt.Sprintf(" %s %-25s %s",
|
||||||
bold.Sprintf("%.2f%%", perc),
|
bold.Sprintf("%.2f%%", perc),
|
||||||
e.Message,
|
e.Message, etaMessage)
|
||||||
bold.Sprintf("%.2f", eta))
|
|
||||||
fmt.Fprint(h.Writer, s)
|
fmt.Fprint(h.Writer, s)
|
||||||
fmt.Fprintln(h.Writer)
|
fmt.Fprintln(h.Writer)
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -192,12 +192,14 @@ func (c *Controller) OnProgress(perc float64, msg string) {
|
||||||
log.Debugf("OnProgress: %f - %s", perc, msg)
|
log.Debugf("OnProgress: %f - %s", perc, msg)
|
||||||
var eta float64
|
var eta float64
|
||||||
eta = -1.0
|
eta = -1.0
|
||||||
if c.numInputs >= 1 {
|
if c.numInputs > 1 {
|
||||||
// make the percentage relative to the current input over all inputs
|
// make the percentage relative to the current input over all inputs
|
||||||
floor := (float64(c.curInputIdx) / float64(c.numInputs))
|
floor := (float64(c.curInputIdx) / float64(c.numInputs))
|
||||||
step := 1.0 / float64(c.numInputs)
|
step := 1.0 / float64(c.numInputs)
|
||||||
perc = floor + perc*step
|
perc = floor + perc*step
|
||||||
eta = (float64(time.Now().Sub(c.ntStartTime).Seconds()) / float64(c.curInputIdx)) * float64(c.numInputs-c.curInputIdx)
|
if c.curInputIdx > 0 {
|
||||||
|
eta = (time.Now().Sub(c.ntStartTime).Seconds() / float64(c.curInputIdx)) * float64(c.numInputs-c.curInputIdx)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if c.ntCount > 0 {
|
if c.ntCount > 0 {
|
||||||
// make the percentage relative to the current nettest over all nettests
|
// make the percentage relative to the current nettest over all nettests
|
||||||
|
|
Loading…
Reference in New Issue
Block a user