@@ -377,43 +377,40 @@ func (r *DefaultReporter) humanReadableState(state types.SpecState) string {
377377
378378func (r * DefaultReporter ) emitTimeline (indent uint , report types.SpecReport , timeline types.Timeline ) {
379379 isVeryVerbose := r .conf .Verbosity ().Is (types .VerbosityLevelVeryVerbose )
380- gw := report .CapturedGinkgoWriterOutput
381- cursor := 0
382- for _ , entry := range timeline {
383- tl := entry .GetTimelineLocation ()
384- if tl .Offset < len (gw ) {
385- r .emit (r .fi (indent , "%s" , gw [cursor :tl .Offset ]))
386- cursor = tl .Offset
387- } else if cursor < len (gw ) {
388- r .emit (r .fi (indent , "%s" , gw [cursor :]))
389- cursor = len (gw )
390- }
391- switch x := entry .(type ) {
392- case types.Failure :
393- if isVeryVerbose {
394- r .emitFailure (indent , report .State , x , false )
395- } else {
396- r .emitShortFailure (indent , report .State , x )
397- }
398- case types.AdditionalFailure :
399- if isVeryVerbose {
400- r .emitFailure (indent , x .State , x .Failure , true )
401- } else {
402- r .emitShortFailure (indent , x .State , x .Failure )
403- }
404- case types.ReportEntry :
405- r .emitReportEntry (indent , x )
406- case types.ProgressReport :
407- r .emitProgressReport (indent , false , false , x )
408- case types.SpecEvent :
409- if isVeryVerbose || ! x .IsOnlyVisibleAtVeryVerbose () || r .conf .ShowNodeEvents {
410- r .emitSpecEvent (indent , x , isVeryVerbose )
411- }
412- }
413- }
414- if cursor < len (gw ) {
415- r .emit (r .fi (indent , "%s" , gw [cursor :]))
416- }
380+ gw := report .CapturedGinkgoWriterOutput
381+ cursor := 0
382+ for _ , entry := range timeline {
383+ tl := entry .GetTimelineLocation ()
384+
385+ end := tl .Offset
386+ if end > len (gw ) { end = len (gw ) }
387+ if end < cursor { end = cursor }
388+ if cursor < end {
389+ r .emit (r .fi (indent , "%s" , gw [cursor :end ]))
390+ cursor = end
391+ } else if cursor < len (gw ) && end == len (gw ) {
392+ r .emit (r .fi (indent , "%s" , gw [cursor :]))
393+ cursor = len (gw )
394+ }
395+
396+ switch x := entry .(type ) {
397+ case types.Failure :
398+ if isVeryVerbose { r .emitFailure (indent , report .State , x , false ) } else { r .emitShortFailure (indent , report .State , x ) }
399+ case types.AdditionalFailure :
400+ if isVeryVerbose { r .emitFailure (indent , x .State , x .Failure , true ) } else { r .emitShortFailure (indent , x .State , x .Failure ) }
401+ case types.ReportEntry :
402+ r .emitReportEntry (indent , x )
403+ case types.ProgressReport :
404+ r .emitProgressReport (indent , false , isVeryVerbose , x )
405+ case types.SpecEvent :
406+ if isVeryVerbose || ! x .IsOnlyVisibleAtVeryVerbose () || r .conf .ShowNodeEvents {
407+ r .emitSpecEvent (indent , x , isVeryVerbose )
408+ }
409+ }
410+ }
411+ if cursor < len (gw ) {
412+ r .emit (r .fi (indent , "%s" , gw [cursor :]))
413+ }
417414}
418415
419416func (r * DefaultReporter ) EmitFailure (state types.SpecState , failure types.Failure ) {
0 commit comments