packages feed

haddock 2.17.4 → 2.17.5

raw patch · 2 files changed

+82/−1 lines, 2 files

Files

+ driver-test/ResponseFileSpec.hs view
@@ -0,0 +1,80 @@+module ResponseFileSpec where++import Test.Hspec (context, describe, it, shouldBe, Spec)+import ResponseFile (escapeArgs, unescapeArgs)++-- The first two elements are+--   1) a list of 'args' to encode and+--   2) a single string of the encoded args+-- The 3rd element is just a description for the tests.+testStrs :: [(([String], String), String)]+testStrs =+  [ ((["a simple command line"],+      "a\\ simple\\ command\\ line\n"),+     "the white-space, end with newline")++  , ((["arg 'foo' is single quoted"],+      "arg\\ \\'foo\\'\\ is\\ single\\ quoted\n"),+     "the single quotes as well")++  , ((["arg \"bar\" is double quoted"],+      "arg\\ \\\"bar\\\"\\ is\\ double\\ quoted\n"),+     "the double quotes as well" )++  , ((["arg \"foo bar\" has embedded whitespace"],+      "arg\\ \\\"foo\\ bar\\\"\\ has\\ embedded\\ whitespace\n"),+     "the quote-embedded whitespace")++  , ((["arg 'Jack said \\'hi\\'' has single quotes"],+      "arg\\ \\'Jack\\ said\\ \\\\\\'hi\\\\\\'\\'\\ has\\ single\\ quotes\n"),+     "the escaped single quotes")++  , ((["arg 'Jack said \\\"hi\\\"' has double quotes"],+      "arg\\ \\'Jack\\ said\\ \\\\\\\"hi\\\\\\\"\\'\\ has\\ double\\ quotes\n"),+     "the escaped double quotes")++  , ((["arg 'Jack said\\r\\n\\t \\\"hi\\\"' has other whitespace"],+      "arg\\ \\'Jack\\ said\\\\r\\\\n\\\\t\\ \\\\\\\"hi\\\\\\\"\\'\\ has\\ \+           \other\\ whitespace\n"),+     "the other whitespace")++  , (([ "--prologue=.\\dist\\.\\haddock-prologue3239114604.txt"+      , "--title=HaddockNewline-0.1.0.0: This has a\n\+        \newline yo."+      , "-BC:\\Program Files\\Haskell Platform\\lib"],+      "--prologue=.\\\\dist\\\\.\\\\haddock-prologue3239114604.txt\n\+      \--title=HaddockNewline-0.1.0.0:\\ This\\ has\\ a\\\n\+      \newline\\ yo.\n\+      \-BC:\\\\Program\\ Files\\\\Haskell\\ Platform\\\\lib\n"),+     "an actual haddock response file snippet with embedded newlines")+  ]++spec :: Spec+spec = do+  describe "escapeArgs" $ do+      mapM_ (\((ss1,s2),des) -> do+                  context ("given " ++ (show ss1)) $ do+                      it ("should escape " ++ des) $ do+                          escapeArgs ss1 `shouldBe` s2+            ) testStrs+  describe "unescapeArgs" $ do+      mapM_ (\((ss1,s2),des) -> do+                  context ("given " ++ (show s2)) $ do+                      it ("should unescape " ++ des) $ do+                          unescapeArgs s2 `shouldBe` ss1+            ) testStrs+  describe "unescapeArgs" $ do+      context "given unescaped single quotes" $ do+          it "should pass-through, without escaping, everything inside" $ do+              -- backslash *always* is escaped anywhere it appears+              (filter (not . null) $+                unescapeArgs "this\\ is\\ 'not escape\\d \"inside\"'\\ yo\n")+              `shouldBe`+              ["this is not escaped \"inside\" yo"]+      context "given unescaped double quotes" $ do+          it "should pass-through, without escaping, everything inside" $ do+              -- backslash *always* is escaped anywhere it appears+              (filter (not . null) $+                unescapeArgs "this\\ is\\ \"not escape\\d 'inside'\"\\ yo\n")+              `shouldBe`+              ["this is not escaped 'inside' yo"]
haddock.cabal view
@@ -1,5 +1,5 @@ name:                 haddock-version:              2.17.4+version:              2.17.5 synopsis:             A documentation-generation tool for Haskell libraries description:          Haddock is a documentation-generation tool for Haskell                       libraries@@ -22,6 +22,7 @@   doc/README.md   doc/*.rst   doc/conf.py+  driver-test/*.hs   haddock-api/src/haddock.sh   html-test/src/*.hs   html-test/ref/*.html