packages feed

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 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