/usr/share/doc/libghc-cabal-doc/html/src/Distribution-Simple-Test-Log.html is in libghc-cabal-doc 1.20.0.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://code.haskell.org/~malcolm/hscolour/ -->
<title>Distribution/Simple/Test/Log.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span><span class='hs-varop'>.</span><span class='hs-conid'>Test</span><span class='hs-varop'>.</span><span class='hs-conid'>Log</span>
<a name="line-2"></a> <span class='hs-layout'>(</span> <span class='hs-conid'>PackageLog</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
<a name="line-3"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>TestLogs</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
<a name="line-4"></a> <span class='hs-layout'>,</span> <span class='hs-conid'>TestSuiteLog</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
<a name="line-5"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>countTestResults</span>
<a name="line-6"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>localPackageLog</span>
<a name="line-7"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>summarizePackage</span>
<a name="line-8"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>summarizeSuiteFinish</span><span class='hs-layout'>,</span> <span class='hs-varid'>summarizeSuiteStart</span>
<a name="line-9"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>summarizeTest</span>
<a name="line-10"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>suiteError</span><span class='hs-layout'>,</span> <span class='hs-varid'>suiteFailed</span><span class='hs-layout'>,</span> <span class='hs-varid'>suitePassed</span>
<a name="line-11"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>testSuiteLogPath</span>
<a name="line-12"></a> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-13"></a>
<a name="line-14"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Package</span> <span class='hs-layout'>(</span> <span class='hs-conid'>PackageId</span> <span class='hs-layout'>)</span>
<a name="line-15"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>PackageDescription</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>PD</span>
<a name="line-16"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span><span class='hs-varop'>.</span><span class='hs-conid'>Compiler</span> <span class='hs-layout'>(</span> <span class='hs-conid'>Compiler</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-conid'>CompilerId</span> <span class='hs-layout'>)</span>
<a name="line-17"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span><span class='hs-varop'>.</span><span class='hs-conid'>InstallDirs</span>
<a name="line-18"></a> <span class='hs-layout'>(</span> <span class='hs-varid'>fromPathTemplate</span><span class='hs-layout'>,</span> <span class='hs-varid'>initialPathTemplateEnv</span><span class='hs-layout'>,</span> <span class='hs-conid'>PathTemplateVariable</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span>
<a name="line-19"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>substPathTemplate</span> <span class='hs-layout'>,</span> <span class='hs-varid'>toPathTemplate</span><span class='hs-layout'>,</span> <span class='hs-conid'>PathTemplate</span> <span class='hs-layout'>)</span>
<a name="line-20"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span><span class='hs-varop'>.</span><span class='hs-conid'>LocalBuildInfo</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>LBI</span>
<a name="line-21"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span><span class='hs-varop'>.</span><span class='hs-conid'>Setup</span> <span class='hs-layout'>(</span> <span class='hs-conid'>TestShowDetails</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span> <span class='hs-layout'>)</span>
<a name="line-22"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Simple</span><span class='hs-varop'>.</span><span class='hs-conid'>Utils</span> <span class='hs-layout'>(</span> <span class='hs-varid'>notice</span> <span class='hs-layout'>)</span>
<a name="line-23"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>System</span> <span class='hs-layout'>(</span> <span class='hs-conid'>Platform</span> <span class='hs-layout'>)</span>
<a name="line-24"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>TestSuite</span> <span class='hs-layout'>(</span> <span class='hs-conid'>Options</span><span class='hs-layout'>,</span> <span class='hs-conid'>Result</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span> <span class='hs-layout'>)</span>
<a name="line-25"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Distribution</span><span class='hs-varop'>.</span><span class='hs-conid'>Verbosity</span> <span class='hs-layout'>(</span> <span class='hs-conid'>Verbosity</span> <span class='hs-layout'>)</span>
<a name="line-26"></a>
<a name="line-27"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span> <span class='hs-varid'>when</span> <span class='hs-layout'>)</span>
<a name="line-28"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Char</span> <span class='hs-layout'>(</span> <span class='hs-varid'>toUpper</span> <span class='hs-layout'>)</span>
<a name="line-29"></a>
<a name="line-30"></a><a name="PackageLog"></a><span class='hs-comment'>-- | Logs all test results for a package, broken down first by test suite and</span>
<a name="line-31"></a><a name="PackageLog"></a><span class='hs-comment'>-- then by test case.</span>
<a name="line-32"></a><a name="PackageLog"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>PackageLog</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PackageLog</span>
<a name="line-33"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>package</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>PackageId</span>
<a name="line-34"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compiler</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>CompilerId</span>
<a name="line-35"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>platform</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Platform</span>
<a name="line-36"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>testSuites</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>TestSuiteLog</span><span class='hs-keyglyph'>]</span>
<a name="line-37"></a> <span class='hs-layout'>}</span>
<a name="line-38"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Read</span><span class='hs-layout'>,</span> <span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
<a name="line-39"></a>
<a name="line-40"></a><a name="localPackageLog"></a><span class='hs-comment'>-- | A 'PackageLog' with package and platform information specified.</span>
<a name="line-41"></a><span class='hs-definition'>localPackageLog</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>PD</span><span class='hs-varop'>.</span><span class='hs-conid'>PackageDescription</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>LBI</span><span class='hs-varop'>.</span><span class='hs-conid'>LocalBuildInfo</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>PackageLog</span>
<a name="line-42"></a><span class='hs-definition'>localPackageLog</span> <span class='hs-varid'>pkg_descr</span> <span class='hs-varid'>lbi</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PackageLog</span>
<a name="line-43"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>package</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>PD</span><span class='hs-varop'>.</span><span class='hs-varid'>package</span> <span class='hs-varid'>pkg_descr</span>
<a name="line-44"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>compiler</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compilerId</span> <span class='hs-varop'>$</span> <span class='hs-conid'>LBI</span><span class='hs-varop'>.</span><span class='hs-varid'>compiler</span> <span class='hs-varid'>lbi</span>
<a name="line-45"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>platform</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>LBI</span><span class='hs-varop'>.</span><span class='hs-varid'>hostPlatform</span> <span class='hs-varid'>lbi</span>
<a name="line-46"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>testSuites</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>[]</span>
<a name="line-47"></a> <span class='hs-layout'>}</span>
<a name="line-48"></a>
<a name="line-49"></a><a name="TestSuiteLog"></a><span class='hs-comment'>-- | Logs test suite results, itemized by test case.</span>
<a name="line-50"></a><a name="TestSuiteLog"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>TestSuiteLog</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>TestSuiteLog</span>
<a name="line-51"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>testSuiteName</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span>
<a name="line-52"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>testLogs</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestLogs</span>
<a name="line-53"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>logFile</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FilePath</span> <span class='hs-comment'>-- path to human-readable log file</span>
<a name="line-54"></a> <span class='hs-layout'>}</span>
<a name="line-55"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Read</span><span class='hs-layout'>,</span> <span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
<a name="line-56"></a>
<a name="line-57"></a><a name="TestLogs"></a><span class='hs-keyword'>data</span> <span class='hs-conid'>TestLogs</span>
<a name="line-58"></a> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>TestLog</span>
<a name="line-59"></a> <span class='hs-layout'>{</span> <span class='hs-varid'>testName</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span>
<a name="line-60"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>testOptionsReturned</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Options</span>
<a name="line-61"></a> <span class='hs-layout'>,</span> <span class='hs-varid'>testResult</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Result</span>
<a name="line-62"></a> <span class='hs-layout'>}</span>
<a name="line-63"></a> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>GroupLogs</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>TestLogs</span><span class='hs-keyglyph'>]</span>
<a name="line-64"></a> <span class='hs-keyword'>deriving</span> <span class='hs-layout'>(</span><span class='hs-conid'>Read</span><span class='hs-layout'>,</span> <span class='hs-conid'>Show</span><span class='hs-layout'>,</span> <span class='hs-conid'>Eq</span><span class='hs-layout'>)</span>
<a name="line-65"></a>
<a name="line-66"></a><a name="countTestResults"></a><span class='hs-comment'>-- | Count the number of pass, fail, and error test results in a 'TestLogs'</span>
<a name="line-67"></a><span class='hs-comment'>-- tree.</span>
<a name="line-68"></a><span class='hs-definition'>countTestResults</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestLogs</span>
<a name="line-69"></a> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>)</span> <span class='hs-comment'>-- ^ Passes, fails, and errors,</span>
<a name="line-70"></a> <span class='hs-comment'>-- respectively.</span>
<a name="line-71"></a><span class='hs-definition'>countTestResults</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-num'>0</span><span class='hs-layout'>,</span> <span class='hs-num'>0</span><span class='hs-layout'>,</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span>
<a name="line-72"></a> <span class='hs-keyword'>where</span>
<a name="line-73"></a> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>p</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>,</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>TestLog</span> <span class='hs-layout'>{</span> <span class='hs-varid'>testResult</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>r</span> <span class='hs-layout'>}</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-74"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>r</span> <span class='hs-keyword'>of</span>
<a name="line-75"></a> <span class='hs-conid'>Pass</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-varid'>p</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>,</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span>
<a name="line-76"></a> <span class='hs-conid'>Fail</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-varid'>p</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>,</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span>
<a name="line-77"></a> <span class='hs-conid'>Error</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-layout'>(</span><span class='hs-varid'>p</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>,</span> <span class='hs-varid'>e</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
<a name="line-78"></a> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>p</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>,</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>GroupLogs</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>ts</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldl</span> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>p</span><span class='hs-layout'>,</span> <span class='hs-varid'>f</span><span class='hs-layout'>,</span> <span class='hs-varid'>e</span><span class='hs-layout'>)</span> <span class='hs-varid'>ts</span>
<a name="line-79"></a>
<a name="line-80"></a><a name="suitePassed"></a><span class='hs-comment'>-- | From a 'TestSuiteLog', determine if the test suite passed.</span>
<a name="line-81"></a><span class='hs-definition'>suitePassed</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestLogs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span>
<a name="line-82"></a><span class='hs-definition'>suitePassed</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
<a name="line-83"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>countTestResults</span> <span class='hs-varid'>l</span> <span class='hs-keyword'>of</span>
<a name="line-84"></a> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-num'>0</span><span class='hs-layout'>,</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>True</span>
<a name="line-85"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>False</span>
<a name="line-86"></a>
<a name="line-87"></a><a name="suiteFailed"></a><span class='hs-comment'>-- | From a 'TestSuiteLog', determine if the test suite failed.</span>
<a name="line-88"></a><span class='hs-definition'>suiteFailed</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestLogs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span>
<a name="line-89"></a><span class='hs-definition'>suiteFailed</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
<a name="line-90"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>countTestResults</span> <span class='hs-varid'>l</span> <span class='hs-keyword'>of</span>
<a name="line-91"></a> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-num'>0</span><span class='hs-layout'>,</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>False</span>
<a name="line-92"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>True</span>
<a name="line-93"></a>
<a name="line-94"></a><a name="suiteError"></a><span class='hs-comment'>-- | From a 'TestSuiteLog', determine if the test suite encountered errors.</span>
<a name="line-95"></a><span class='hs-definition'>suiteError</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestLogs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>Bool</span>
<a name="line-96"></a><span class='hs-definition'>suiteError</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span>
<a name="line-97"></a> <span class='hs-keyword'>case</span> <span class='hs-varid'>countTestResults</span> <span class='hs-varid'>l</span> <span class='hs-keyword'>of</span>
<a name="line-98"></a> <span class='hs-layout'>(</span><span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-keyword'>_</span><span class='hs-layout'>,</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>False</span>
<a name="line-99"></a> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>True</span>
<a name="line-100"></a>
<a name="line-101"></a><a name="resultString"></a><span class='hs-definition'>resultString</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestLogs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>String</span>
<a name="line-102"></a><span class='hs-definition'>resultString</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>suiteError</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"error"</span>
<a name="line-103"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>suiteFailed</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"fail"</span>
<a name="line-104"></a> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"pass"</span>
<a name="line-105"></a>
<a name="line-106"></a><a name="testSuiteLogPath"></a><span class='hs-definition'>testSuiteLogPath</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>PathTemplate</span>
<a name="line-107"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>PD</span><span class='hs-varop'>.</span><span class='hs-conid'>PackageDescription</span>
<a name="line-108"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>LBI</span><span class='hs-varop'>.</span><span class='hs-conid'>LocalBuildInfo</span>
<a name="line-109"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>String</span> <span class='hs-comment'>-- ^ test suite name</span>
<a name="line-110"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TestLogs</span> <span class='hs-comment'>-- ^ test suite results</span>
<a name="line-111"></a> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>FilePath</span>
<a name="line-112"></a><span class='hs-definition'>testSuiteLogPath</span> <span class='hs-varid'>template</span> <span class='hs-varid'>pkg_descr</span> <span class='hs-varid'>lbi</span> <span class='hs-varid'>name</span> <span class='hs-varid'>result</span> <span class='hs-keyglyph'>=</span>
<a name="line-113"></a> <span class='hs-varid'>fromPathTemplate</span> <span class='hs-varop'>$</span> <span class='hs-varid'>substPathTemplate</span> <span class='hs-varid'>env</span> <span class='hs-varid'>template</span>
<a name="line-114"></a> <span class='hs-keyword'>where</span>
<a name="line-115"></a> <span class='hs-varid'>env</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>initialPathTemplateEnv</span>
<a name="line-116"></a> <span class='hs-layout'>(</span><span class='hs-conid'>PD</span><span class='hs-varop'>.</span><span class='hs-varid'>package</span> <span class='hs-varid'>pkg_descr</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>compilerId</span> <span class='hs-varop'>$</span> <span class='hs-conid'>LBI</span><span class='hs-varop'>.</span><span class='hs-varid'>compiler</span> <span class='hs-varid'>lbi</span><span class='hs-layout'>)</span>
<a name="line-117"></a> <span class='hs-layout'>(</span><span class='hs-conid'>LBI</span><span class='hs-varop'>.</span><span class='hs-varid'>hostPlatform</span> <span class='hs-varid'>lbi</span><span class='hs-layout'>)</span>
<a name="line-118"></a> <span class='hs-varop'>++</span> <span class='hs-keyglyph'>[</span> <span class='hs-layout'>(</span><span class='hs-conid'>TestSuiteNameVar</span><span class='hs-layout'>,</span> <span class='hs-varid'>toPathTemplate</span> <span class='hs-varid'>name</span><span class='hs-layout'>)</span>
<a name="line-119"></a> <span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-conid'>TestSuiteResultVar</span><span class='hs-layout'>,</span> <span class='hs-varid'>toPathTemplate</span> <span class='hs-varop'>$</span> <span class='hs-varid'>resultString</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-120"></a> <span class='hs-keyglyph'>]</span>
<a name="line-121"></a>
<a name="line-122"></a><a name="summarizePackage"></a><span class='hs-comment'>-- | Print a summary to the console after all test suites have been run</span>
<a name="line-123"></a><span class='hs-comment'>-- indicating the number of successful test suites and cases. Returns 'True' if</span>
<a name="line-124"></a><span class='hs-comment'>-- all test suites passed and 'False' otherwise.</span>
<a name="line-125"></a><span class='hs-definition'>summarizePackage</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Verbosity</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>PackageLog</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span>
<a name="line-126"></a><span class='hs-definition'>summarizePackage</span> <span class='hs-varid'>verbosity</span> <span class='hs-varid'>packageLog</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-127"></a> <span class='hs-keyword'>let</span> <span class='hs-varid'>counts</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>map</span> <span class='hs-layout'>(</span><span class='hs-varid'>countTestResults</span> <span class='hs-varop'>.</span> <span class='hs-varid'>testLogs</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>testSuites</span> <span class='hs-varid'>packageLog</span>
<a name="line-128"></a> <span class='hs-layout'>(</span><span class='hs-varid'>passed</span><span class='hs-layout'>,</span> <span class='hs-varid'>failed</span><span class='hs-layout'>,</span> <span class='hs-varid'>errors</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldl1</span> <span class='hs-varid'>addTriple</span> <span class='hs-varid'>counts</span>
<a name="line-129"></a> <span class='hs-varid'>totalCases</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>passed</span> <span class='hs-varop'>+</span> <span class='hs-varid'>failed</span> <span class='hs-varop'>+</span> <span class='hs-varid'>errors</span>
<a name="line-130"></a> <span class='hs-varid'>passedSuites</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>length</span>
<a name="line-131"></a> <span class='hs-varop'>$</span> <span class='hs-varid'>filter</span> <span class='hs-layout'>(</span><span class='hs-varid'>suitePassed</span> <span class='hs-varop'>.</span> <span class='hs-varid'>testLogs</span><span class='hs-layout'>)</span>
<a name="line-132"></a> <span class='hs-varop'>$</span> <span class='hs-varid'>testSuites</span> <span class='hs-varid'>packageLog</span>
<a name="line-133"></a> <span class='hs-varid'>totalSuites</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>length</span> <span class='hs-varop'>$</span> <span class='hs-varid'>testSuites</span> <span class='hs-varid'>packageLog</span>
<a name="line-134"></a> <span class='hs-varid'>notice</span> <span class='hs-varid'>verbosity</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>passedSuites</span> <span class='hs-varop'>++</span> <span class='hs-str'>" of "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>totalSuites</span>
<a name="line-135"></a> <span class='hs-varop'>++</span> <span class='hs-str'>" test suites ("</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>passed</span> <span class='hs-varop'>++</span> <span class='hs-str'>" of "</span>
<a name="line-136"></a> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-varid'>totalCases</span> <span class='hs-varop'>++</span> <span class='hs-str'>" test cases) passed."</span>
<a name="line-137"></a> <span class='hs-varid'>return</span> <span class='hs-varop'>$!</span> <span class='hs-varid'>passedSuites</span> <span class='hs-varop'>==</span> <span class='hs-varid'>totalSuites</span>
<a name="line-138"></a> <span class='hs-keyword'>where</span>
<a name="line-139"></a> <span class='hs-varid'>addTriple</span> <span class='hs-layout'>(</span><span class='hs-varid'>p1</span><span class='hs-layout'>,</span> <span class='hs-varid'>f1</span><span class='hs-layout'>,</span> <span class='hs-varid'>e1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>p2</span><span class='hs-layout'>,</span> <span class='hs-varid'>f2</span><span class='hs-layout'>,</span> <span class='hs-varid'>e2</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>p1</span> <span class='hs-varop'>+</span> <span class='hs-varid'>p2</span><span class='hs-layout'>,</span> <span class='hs-varid'>f1</span> <span class='hs-varop'>+</span> <span class='hs-varid'>f2</span><span class='hs-layout'>,</span> <span class='hs-varid'>e1</span> <span class='hs-varop'>+</span> <span class='hs-varid'>e2</span><span class='hs-layout'>)</span>
<a name="line-140"></a>
<a name="line-141"></a><a name="summarizeTest"></a><span class='hs-comment'>-- | Print a summary of a single test case's result to the console, supressing</span>
<a name="line-142"></a><span class='hs-comment'>-- output for certain verbosity or test filter levels.</span>
<a name="line-143"></a><span class='hs-definition'>summarizeTest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Verbosity</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TestShowDetails</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>TestLogs</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-144"></a><span class='hs-definition'>summarizeTest</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-layout'>(</span><span class='hs-conid'>GroupLogs</span> <span class='hs-layout'>{</span><span class='hs-layout'>}</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span>
<a name="line-145"></a><span class='hs-definition'>summarizeTest</span> <span class='hs-varid'>verbosity</span> <span class='hs-varid'>details</span> <span class='hs-varid'>t</span> <span class='hs-keyglyph'>=</span>
<a name="line-146"></a> <span class='hs-varid'>when</span> <span class='hs-varid'>shouldPrint</span> <span class='hs-varop'>$</span> <span class='hs-varid'>notice</span> <span class='hs-varid'>verbosity</span> <span class='hs-varop'>$</span> <span class='hs-str'>"Test case "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>testName</span> <span class='hs-varid'>t</span>
<a name="line-147"></a> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-varid'>testResult</span> <span class='hs-varid'>t</span><span class='hs-layout'>)</span>
<a name="line-148"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>shouldPrint</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>details</span> <span class='hs-varop'>></span> <span class='hs-conid'>Never</span><span class='hs-layout'>)</span> <span class='hs-varop'>&&</span> <span class='hs-layout'>(</span><span class='hs-varid'>notPassed</span> <span class='hs-varop'>||</span> <span class='hs-varid'>details</span> <span class='hs-varop'>==</span> <span class='hs-conid'>Always</span><span class='hs-layout'>)</span>
<a name="line-149"></a> <span class='hs-varid'>notPassed</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>testResult</span> <span class='hs-varid'>t</span> <span class='hs-varop'>/=</span> <span class='hs-conid'>Pass</span>
<a name="line-150"></a>
<a name="line-151"></a><a name="summarizeSuiteFinish"></a><span class='hs-comment'>-- | Print a summary of the test suite's results on the console, suppressing</span>
<a name="line-152"></a><span class='hs-comment'>-- output for certain verbosity or test filter levels.</span>
<a name="line-153"></a><span class='hs-definition'>summarizeSuiteFinish</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TestSuiteLog</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>String</span>
<a name="line-154"></a><span class='hs-definition'>summarizeSuiteFinish</span> <span class='hs-varid'>testLog</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>unlines</span>
<a name="line-155"></a> <span class='hs-keyglyph'>[</span> <span class='hs-str'>"Test suite "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>testSuiteName</span> <span class='hs-varid'>testLog</span> <span class='hs-varop'>++</span> <span class='hs-str'>": "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>resStr</span>
<a name="line-156"></a> <span class='hs-layout'>,</span> <span class='hs-str'>"Test suite logged to: "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>logFile</span> <span class='hs-varid'>testLog</span>
<a name="line-157"></a> <span class='hs-keyglyph'>]</span>
<a name="line-158"></a> <span class='hs-keyword'>where</span> <span class='hs-varid'>resStr</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>map</span> <span class='hs-varid'>toUpper</span> <span class='hs-layout'>(</span><span class='hs-varid'>resultString</span> <span class='hs-varop'>$</span> <span class='hs-varid'>testLogs</span> <span class='hs-varid'>testLog</span><span class='hs-layout'>)</span>
<a name="line-159"></a>
<a name="line-160"></a><a name="summarizeSuiteStart"></a><span class='hs-definition'>summarizeSuiteStart</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-></span> <span class='hs-conid'>String</span>
<a name="line-161"></a><span class='hs-definition'>summarizeSuiteStart</span> <span class='hs-varid'>n</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"Test suite "</span> <span class='hs-varop'>++</span> <span class='hs-varid'>n</span> <span class='hs-varop'>++</span> <span class='hs-str'>": RUNNING...\n"</span>
</pre></body>
</html>
|