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":
 | 
			
		||||
		perc := e.Fields.Get("percentage").(float64) * 100
 | 
			
		||||
		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),
 | 
			
		||||
			e.Message,
 | 
			
		||||
			bold.Sprintf("%.2f", eta))
 | 
			
		||||
			e.Message, etaMessage)
 | 
			
		||||
		fmt.Fprint(h.Writer, s)
 | 
			
		||||
		fmt.Fprintln(h.Writer)
 | 
			
		||||
		return nil
 | 
			
		||||
 | 
			
		||||
@ -192,12 +192,14 @@ func (c *Controller) OnProgress(perc float64, msg string) {
 | 
			
		||||
	log.Debugf("OnProgress: %f - %s", perc, msg)
 | 
			
		||||
	var eta float64
 | 
			
		||||
	eta = -1.0
 | 
			
		||||
	if c.numInputs >= 1 {
 | 
			
		||||
	if c.numInputs > 1 {
 | 
			
		||||
		// make the percentage relative to the current input over all inputs
 | 
			
		||||
		floor := (float64(c.curInputIdx) / float64(c.numInputs))
 | 
			
		||||
		step := 1.0 / float64(c.numInputs)
 | 
			
		||||
		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 {
 | 
			
		||||
		// make the percentage relative to the current nettest over all nettests
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user