diff options
Diffstat (limited to 'html-test')
| -rw-r--r-- | html-test/ref/Bug253.html (renamed from html-test/ref/Ticket253_1.html) | 54 | ||||
| -rw-r--r-- | html-test/ref/Ticket253_2.html | 111 | ||||
| -rwxr-xr-x | html-test/run.lhs | 24 | ||||
| -rw-r--r-- | html-test/src/Bug253.hs | 10 | ||||
| -rw-r--r-- | html-test/src/Ticket253_1.hs | 6 | ||||
| -rw-r--r-- | html-test/src/Ticket253_2.hs | 6 | 
6 files changed, 58 insertions, 153 deletions
| diff --git a/html-test/ref/Ticket253_1.html b/html-test/ref/Bug253.html index ade128e9..0802d91e 100644 --- a/html-test/ref/Ticket253_1.html +++ b/html-test/ref/Bug253.html @@ -3,13 +3,13 @@  ><head    ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"       /><title -    >Ticket253_1</title +    >Bug253</title      ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"       /><script src="haddock-util.js" type="text/javascript"      ></script      ><script type="text/javascript"      >//<![CDATA[ -window.onload = function () {pageLoad();setSynopsis("mini_Ticket253_1.html");}; +window.onload = function () {pageLoad();setSynopsis("mini_Bug253.html");};  //]]>  </script      ></head @@ -17,11 +17,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket253_1.html");};    ><div id="package-header"      ><ul class="links" id="page-menu"        ><li -	><a href="" +	><a href="index.html"  	  >Contents</a  	  ></li  	><li -	><a href="" +	><a href="doc-index.html"  	  >Index</a  	  ></li  	></ul @@ -39,18 +39,32 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket253_1.html");};  	    ></tr  	  ></table  	><p class="caption" -	>Ticket253_1</p +	>Bug253</p +	></div +      ><div id="description" +      ><p class="caption" +	>Description</p +	><div class="doc" +	><p +	  >This module tests that if we're trying to link to a <em +	    >qualified</em +	    > + identifier that's not in scope, we get an anchor as if it was a + variable. Previous behaviour was to treat it as a type constructor + so issue like #253 arose. Also see <code +	    >rename</code +	    > function comments in + source.</p +	  ></div  	></div        ><div id="synopsis"        ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')"  	>Synopsis</p  	><ul id="section.syn" class="hide" onclick="toggleSection('syn')"  	><li class="src short" -	  ><a href="" +	  ><a href="#v:foo"  	    >foo</a -	    > :: <a href="" -	    >Int</a -	    ></li +	    > :: ()</li  	  ></ul  	></div        ><div id="interface" @@ -60,20 +74,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket253_1.html");};  	><p class="src"  	  ><a name="v:foo" class="def"  	    >foo</a -	    > :: <a href="" -	    >Int</a -	    ></p +	    > :: ()</p  	  ><div class="doc"  	  ><p -	    >See <code -	      ><a href="" -		>bar</a -		></code -	      >.</p -	    ><p -	    >Also see <code -	      ><a href="" -		>Baz</a +	    >This link should generate <code +	      >#v</code +	      > anchor: <code +	      ><a href="DoesNotExist.html#v:fakeFakeFake" +		>fakeFakeFake</a  		></code  	      ></p  	    ></div @@ -82,9 +90,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket253_1.html");};        ></div      ><div id="footer"      ><p -      >Produced by <a href="" +      >Produced by <a href="http://www.haskell.org/haddock/"  	>Haddock</a -	> version 2.15.0</p +	> version 2.16.0</p        ></div      ></body    ></html diff --git a/html-test/ref/Ticket253_2.html b/html-test/ref/Ticket253_2.html deleted file mode 100644 index 0b03a874..00000000 --- a/html-test/ref/Ticket253_2.html +++ /dev/null @@ -1,111 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" -><head -  ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" -     /><title -    >Ticket253_2</title -    ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" -     /><script src="haddock-util.js" type="text/javascript" -    ></script -    ><script type="text/javascript" -    >//<![CDATA[ -window.onload = function () {pageLoad();setSynopsis("mini_Ticket253_2.html");}; -//]]> -</script -    ></head -  ><body -  ><div id="package-header" -    ><ul class="links" id="page-menu" -      ><li -	><a href="" -	  >Contents</a -	  ></li -	><li -	><a href="" -	  >Index</a -	  ></li -	></ul -      ><p class="caption empty" -      > </p -      ></div -    ><div id="content" -    ><div id="module-header" -      ><table class="info" -	><tr -	  ><th -	    >Safe Haskell</th -	    ><td -	    >Safe</td -	    ></tr -	  ></table -	><p class="caption" -	>Ticket253_2</p -	></div -      ><div id="synopsis" -      ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')" -	>Synopsis</p -	><ul id="section.syn" class="hide" onclick="toggleSection('syn')" -	><li class="src short" -	  ><a href="" -	    >bar</a -	    > :: <a href="" -	    >Int</a -	    ></li -	  ><li class="src short" -	  ><span class="keyword" -	    >data</span -	    > <a href="" -	    >Baz</a -	    > = <a href="" -	    >Baz</a -	    ></li -	  ></ul -	></div -      ><div id="interface" -      ><h1 -	>Documentation</h1 -	><div class="top" -	><p class="src" -	  ><a name="v:bar" class="def" -	    >bar</a -	    > :: <a href="" -	    >Int</a -	    ></p -	  ><div class="doc" -	  ><p -	    >Comment</p -	    ></div -	  ></div -	><div class="top" -	><p class="src" -	  ><span class="keyword" -	    >data</span -	    > <a name="t:Baz" class="def" -	    >Baz</a -	    ></p -	  ><div class="subs constructors" -	  ><p class="caption" -	    >Constructors</p -	    ><table -	    ><tr -	      ><td class="src" -		><a name="v:Baz" class="def" -		  >Baz</a -		  ></td -		><td class="doc empty" -		> </td -		></tr -	      ></table -	    ></div -	  ></div -	></div -      ></div -    ><div id="footer" -    ><p -      >Produced by <a href="" -	>Haddock</a -	> version 2.15.0</p -      ></div -    ></body -  ></html -> diff --git a/html-test/run.lhs b/html-test/run.lhs index a80b265e..1f19b723 100755 --- a/html-test/run.lhs +++ b/html-test/run.lhs @@ -21,7 +21,6 @@ import System.Exit  import System.FilePath  import System.Process (ProcessHandle, runProcess, waitForProcess, system) -  packageRoot, dataDir, haddockPath, baseDir, testDir, outDir :: FilePath  baseDir = takeDirectory __FILE__  testDir       = baseDir </> "src" @@ -112,11 +111,11 @@ check modules strict = do        then do          out <- readFile outfile          ref <- readFile reffile -        if not $ haddockEq out ref +        if not $ haddockEq (outfile, out) (reffile, ref)            then do              putStrLn $ "Output for " ++ mod ++ " has changed! Exiting with diff:" -            let ref' = stripLinks ref -                out' = stripLinks out +            let ref' = maybeStripLinks outfile ref +                out' = maybeStripLinks reffile out              let reffile' = outDir </> takeFileName reffile ++ ".nolinks"                  outfile' = outDir </> takeFileName outfile ++ ".ref.nolinks"              writeFile reffile' ref' @@ -134,6 +133,10 @@ check modules strict = do        else do          putStrLn $ "Pass: " ++ mod ++ " (no .ref file)" +-- | List of modules in which we don't 'stripLinks' +preserveLinksModules :: [String] +preserveLinksModules = map (++ ".html") ["Bug253"] +  -- | A rather nasty way to drop the Haddock version string from the  -- end of the generated HTML files so that we don't have to change  -- every single test every time we change versions. We rely on the the @@ -146,9 +149,16 @@ dropVersion = reverse . dropTillP . reverse      dropTillP ('p':'<':xs) = xs      dropTillP (_:xs) = dropTillP xs -haddockEq :: String -> String -> Bool -haddockEq file1 file2 = -  stripLinks (dropVersion file1) == stripLinks (dropVersion file2) +haddockEq :: (FilePath, String) -> (FilePath, String) -> Bool +haddockEq (fn1, file1) (fn2, file2) = +  maybeStripLinks fn1 (dropVersion file1) +  == maybeStripLinks fn2 (dropVersion file2) + +maybeStripLinks :: String -- ^ Module we're considering for stripping +                -> String -> String +maybeStripLinks m = if any (`isSuffixOf` m) preserveLinksModules +                    then id +                    else stripLinks  stripLinks :: String -> String  stripLinks str = diff --git a/html-test/src/Bug253.hs b/html-test/src/Bug253.hs new file mode 100644 index 00000000..499f6cd4 --- /dev/null +++ b/html-test/src/Bug253.hs @@ -0,0 +1,10 @@ +-- | This module tests that if we're trying to link to a /qualified/ +-- identifier that's not in scope, we get an anchor as if it was a +-- variable. Previous behaviour was to treat it as a type constructor +-- so issue like #253 arose. Also see @rename@ function comments in +-- source. +module Bug253 where + +-- | This link should generate @#v@ anchor: 'DoesNotExist.fakeFakeFake' +foo :: () +foo = () diff --git a/html-test/src/Ticket253_1.hs b/html-test/src/Ticket253_1.hs deleted file mode 100644 index 62ab4b17..00000000 --- a/html-test/src/Ticket253_1.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Ticket253_1 where --- | See 'Ticket253_2.bar'. --- --- Also see 'Ticket253_2.Baz' -foo :: Int -foo = 0 diff --git a/html-test/src/Ticket253_2.hs b/html-test/src/Ticket253_2.hs deleted file mode 100644 index a19d4cee..00000000 --- a/html-test/src/Ticket253_2.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Ticket253_2 where --- | Comment -bar :: Int -bar = 0 - -data Baz = Baz | 
