Index: src/test/OTAppDelegate.m ================================================================== --- src/test/OTAppDelegate.m +++ src/test/OTAppDelegate.m @@ -251,23 +251,27 @@ [OFStdOut writeFormat: @"-[%@ %s]: ", class, sel_getName(test)]; break; case StatusOk: if (OFStdOut.hasTerminal) { + [OFStdOut setCursorColumn: 0]; + [OFStdOut eraseLine]; [OFStdOut setForegroundColor: [OFColor green]]; - [OFStdOut writeFormat: @"\r-[%@ ", class]; + [OFStdOut writeFormat: @"-[%@ ", class]; [OFStdOut setForegroundColor: [OFColor lime]]; [OFStdOut writeFormat: @"%s", sel_getName(test)]; [OFStdOut setForegroundColor: [OFColor green]]; [OFStdOut writeLine: @"]: ok"]; } else [OFStdOut writeLine: @"ok"]; break; case StatusFailed: if (OFStdOut.hasTerminal) { + [OFStdOut setCursorColumn: 0]; + [OFStdOut eraseLine]; [OFStdOut setForegroundColor: [OFColor maroon]]; - [OFStdOut writeFormat: @"\r-[%@ ", class]; + [OFStdOut writeFormat: @"-[%@ ", class]; [OFStdOut setForegroundColor: [OFColor red]]; [OFStdOut writeFormat: @"%s", sel_getName(test)]; [OFStdOut setForegroundColor: [OFColor maroon]]; [OFStdOut writeLine: @"]: failed"]; [OFStdOut writeLine: description]; @@ -274,12 +278,14 @@ } else [OFStdOut writeLine: @"failed"]; break; case StatusSkipped: if (OFStdOut.hasTerminal) { + [OFStdOut setCursorColumn: 0]; + [OFStdOut eraseLine]; [OFStdOut setForegroundColor: [OFColor gray]]; - [OFStdOut writeFormat: @"\r-[%@ ", class]; + [OFStdOut writeFormat: @"-[%@ ", class]; [OFStdOut setForegroundColor: [OFColor silver]]; [OFStdOut writeFormat: @"%s", sel_getName(test)]; [OFStdOut setForegroundColor: [OFColor gray]]; [OFStdOut writeLine: @"]: skipped"]; } else