HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Moduletree-diff-0.3.4Haskell2010

Data.TreeDiff.Golden

"Golden tests" using ediff comparison.

  • 2 values
  • Packagetree-diff-0.3.4
  • Exports2
  • LanguageHaskell2010
  • LicenceGPL-2.0-or-later
  • SourceGolden.hs
valueediffGolden
  1. :: ToExpr a
  2. => (testName -> IO Expr -> IO Expr -> (Expr -> Expr -> IO (Maybe String)) -> (Expr -> IO ()) -> testTree)

    goldenTest

  3. -> testName

    test name

  4. -> FilePath

    path to "golden file"

  5. -> IO a

    result value

  6. -> testTree
#

Make a golden tests.

ediffGolden is testing framework agnostic, thus the type looks intimidating.

An example using tasty-golden, goldenTest is imported from Test.Tasty.Golden.Advanced

exTest :: TestTree
exTest = ediffGolden goldenTest "golden test" "fixtures/ex.expr" $
   action constructing actual value

The ediffGolden will read an Expr from provided path to golden file, and compare it with a toExpr of a result. If values differ, the (compact) diff of two will be printed.

See https://github.com/phadej/tree-diff/blob/master/tests/Tests.hs for a proper example.