tasty 1.5.2 → 1.5.3
raw patch · 3 files changed
+36/−11 lines, 3 filesdep ~containersdep ~optparse-applicative
Dependency ranges changed: containers, optparse-applicative
Files
- CHANGELOG.md +10/−0
- Test/Tasty/Ingredients/ConsoleReporter.hs +25/−10
- tasty.cabal +1/−1
CHANGELOG.md view
@@ -1,6 +1,16 @@ Changes ======= +Version 1.5.3+--------------++_2025-01-05_++* Console reporter: disable line wrapping+ ([#433](https://github.com/UnkindPartition/tasty/pull/433)).+* Console reporter: force flushing of stdout after `showCursor`+ ([#436](https://github.com/UnkindPartition/tasty/pull/436)).+ Version 1.5.2 --------------
Test/Tasty/Ingredients/ConsoleReporter.hs view
@@ -135,7 +135,6 @@ !alignment = computeAlignment opts tree MinDurationToReport{minDurationMicros} = lookupOption opts- AnsiTricks{getAnsiTricks} = lookupOption opts runSingleTest :: (IsTest t, ?colors :: Bool)@@ -153,7 +152,7 @@ (replicate postNamePadding ' ') printTestName = do- putStr testNamePadded+ withoutLineWrap $ putStr testNamePadded hFlush stdout printTestProgress progress@@ -173,8 +172,9 @@ -- A new progress message may be shorter than the previous one -- so we must clean whole line and print anew. clearLine- putStr testNamePadded- infoOk msg+ withoutLineWrap $ do+ putStr testNamePadded+ infoOk msg hFlush stdout printTestResult result = do@@ -189,10 +189,11 @@ _ -> fail time = resultTime result - when getAnsiTricks $ do- putChar '\r'- clearLine- putStr testNamePadded+ withoutLineWrap $ do+ when getAnsiTricks $ do+ putChar '\r'+ clearLine+ putStr testNamePadded printFn (resultShortDescription result) when (floor (time * 1e6) >= minDurationMicros) $@@ -211,7 +212,7 @@ runGroup _opts name grp = Ap $ do level <- ask let- printHeading = printf "%s%s\n" (indent level) name+ printHeading = withoutLineWrap $ printf "%s%s\n" (indent level) name printBody = runReader (getApp (mconcat grp)) (level + 1) return $ PrintHeading name printHeading printBody @@ -223,7 +224,19 @@ , foldGroup = runGroup } opts tree+ where+ AnsiTricks{getAnsiTricks} = lookupOption opts+ -- We must ensure these lines don't wrap, otherwise the wrong+ -- line will be cleared later or the test tree printing will+ -- itself wrap.+ withoutLineWrap :: IO () -> IO ()+#if MIN_VERSION_ansi_terminal(1,1,2)+ withoutLineWrap m | getAnsiTricks =+ bracket_ disableLineWrap enableLineWrap m+#endif+ withoutLineWrap m = m + -- | Make sure the progress text does not contain any newlines or line feeds, -- lest our ANSI magic breaks. Since the progress text is expected to be short, -- we simply drop anything after a newline.@@ -550,7 +563,9 @@ isTermColor <- hSupportsANSIColor stdout (\k -> if isTerm- then (do hideCursor; k) `finally` showCursor+ -- When killing with Ctrl+C 'showCursor' can fail+ -- to restore terminal cursor if not flushed explicitly+ then (do hideCursor; k) `finally` (do showCursor; hFlush stdout) else k) $ do hSetBuffering stdout LineBuffering
tasty.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: tasty-version: 1.5.2+version: 1.5.3 synopsis: Modern and extensible testing framework description: Tasty is a modern testing framework for Haskell. It lets you combine your unit tests, golden