fUnit 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +16 -15
- data/Rakefile +1 -1
- data/bin/funit +1 -1
- data/docs/html/classes/Funit.html +20 -22
- data/docs/html/classes/Funit/Assertions.html +1 -1
- data/docs/html/classes/Funit/Compiler.html +3 -3
- data/docs/html/classes/Funit/TestSuite.html +43 -43
- data/docs/html/created.rid +1 -1
- data/docs/html/files/README.html +22 -25
- data/docs/html/files/lib/funit/assertions_rb.html +1 -1
- data/docs/html/files/lib/funit/functions_rb.html +1 -1
- data/docs/html/files/lib/funit/test_suite_rb.html +10 -1
- data/docs/html/files/lib/funit_rb.html +1 -1
- data/docs/html/fr_method_index.html +2 -2
- data/examples/CFD/{FluxFunctionsMT.ftk → FluxFunctions.fun} +1 -1
- data/examples/CFD/{GasModelMT.ftk → GasModel.fun} +1 -1
- data/examples/StopWatch/{StopWatchMT.ftk → StopWatch.fun} +0 -0
- data/lib/funit.rb +4 -6
- data/lib/funit/assertions.rb +1 -1
- data/lib/funit/functions.rb +20 -20
- data/lib/funit/test_suite.rb +43 -38
- data/tests/tc_compile.rb +7 -4
- data/tests/tc_fortran_deps.rb +3 -0
- data/tests/tc_funit.rb +30 -16
- data/tests/tc_test_suite.rb +29 -31
- metadata +4 -17
- data/examples/CFD/FluxFunctionsMT.f90 +0 -336
- data/examples/CFD/GasModelMT.f90 +0 -173
- data/examples/CFD/TestRunner +0 -0
- data/examples/CFD/TestRunner.f90 +0 -23
- data/examples/CFD/fluxfunctions.mod +0 -45
- data/examples/CFD/gammas.mod +0 -20
- data/examples/CFD/gasmodel.mod +0 -30
- data/examples/CFD/gasmodelmt.mod +0 -27
- data/examples/StopWatch/StopWatchMT.f90 +0 -343
- data/examples/StopWatch/TestRunner +0 -0
- data/examples/StopWatch/TestRunner.f90 +0 -23
- data/examples/StopWatch/stopwatch.mod +0 -34
- data/examples/StopWatch/stopwatchmt.mod +0 -27
data/README
CHANGED
@@ -22,7 +22,7 @@ for test files.
|
|
22
22
|
|
23
23
|
== Requirements
|
24
24
|
|
25
|
-
1. A Fortran 90/95/2003 compiler (set via
|
25
|
+
1. A Fortran 90/95/2003 compiler (set via FC environment variable)
|
26
26
|
2. {The Ruby language}[http://www.ruby-lang.org/] with the
|
27
27
|
{RubyGems package manager}[http://rubyforge.org/projects/rubygems/]
|
28
28
|
|
@@ -47,7 +47,7 @@ temperature,
|
|
47
47
|
..
|
48
48
|
end module
|
49
49
|
|
50
|
-
The tests of this module would be contained in <tt>
|
50
|
+
The tests of this module would be contained in <tt>gas_physics.fun</tt>,
|
51
51
|
and might contain a test like,
|
52
52
|
|
53
53
|
..
|
@@ -65,16 +65,16 @@ with the command,
|
|
65
65
|
|
66
66
|
funit gas_physics
|
67
67
|
|
68
|
-
which would transform your fragments contained in <tt>
|
68
|
+
which would transform your fragments contained in <tt>gas_physics.fun</tt>
|
69
69
|
into valid Fortran code, create a test runner program, compile everything,
|
70
70
|
and run the tests. A sample output would look like,
|
71
71
|
|
72
|
-
parsing
|
72
|
+
parsing gas_physics.fun
|
73
73
|
computing dependencies
|
74
74
|
locating associated source files and sorting for compilation
|
75
75
|
g95 -o TestRunner
|
76
76
|
gas_physics.f90 \
|
77
|
-
|
77
|
+
gas_physics_fun.f90 \
|
78
78
|
TestRunner.f90
|
79
79
|
|
80
80
|
gas_physics test suite:
|
@@ -82,15 +82,18 @@ and run the tests. A sample output would look like,
|
|
82
82
|
|
83
83
|
== Support
|
84
84
|
|
85
|
-
Send email to
|
86
|
-
|
85
|
+
Send email to
|
86
|
+
{funit-support@rubyforge.org}[mailto:funit-support@rubyforge.org]
|
87
|
+
or submit a request through
|
88
|
+
{the tracking system}[http://rubyforge.org/tracker/?group_id=1416].
|
87
89
|
|
88
90
|
== License
|
89
91
|
|
90
92
|
FUnit is released under the NASA Open Source Agreement, which
|
91
93
|
requests registration. If you would like to register, send
|
92
|
-
an email to
|
93
|
-
|
94
|
+
an email to
|
95
|
+
{funit-registration@rubyforge.org}[mailto:funit-registration@rubyforge.org?subject=fUnit%20Registration]
|
96
|
+
with your name, institution (if applicable), city, postal code, and country.
|
94
97
|
See COPYING[http://funit.rubyforge.org/files/COPYING.html] for details.
|
95
98
|
|
96
99
|
== A Brief History
|
@@ -116,9 +119,11 @@ rewrote the framework in Ruby[http:www.ruby-lang.org].
|
|
116
119
|
== To Do
|
117
120
|
|
118
121
|
* Make tests fail gracefully if Fortran compiler is not found.
|
119
|
-
* Complete migration
|
122
|
+
* Complete migration from CamelCase to snake_case for methods and variables.
|
123
|
+
* Use 2-space indentation everywhere.
|
120
124
|
* Use 'test' keyword instead of 'beginTest' business.
|
121
|
-
* Don't add to test name during translation to avoid
|
125
|
+
* Don't add to test name during translation to avoid
|
126
|
+
Fortran's 32-character limit on names.
|
122
127
|
* Rename assertions to more consistent with other xUnits.
|
123
128
|
* Add assertions to capture stops and warning messages.
|
124
129
|
* Clean up documentation.
|
@@ -126,7 +131,3 @@ rewrote the framework in Ruby[http:www.ruby-lang.org].
|
|
126
131
|
Erik Veenstra's RubyScript2Exe[http://www.erikveen.dds.nl/rubyscript2exe/].
|
127
132
|
* Use a makefile instead of a single, ordered command line for compilation.
|
128
133
|
* Add a clean option to remove all generated artifacts.
|
129
|
-
* Migrate to a new naming convention?
|
130
|
-
E.g., gas_physics.fun -> gas_physics_fun.f90
|
131
|
-
* Change Fortran envinoment variable from <tt>F9X</tt> to GNU-standard
|
132
|
-
<tt>FC</tt>.
|
data/Rakefile
CHANGED
data/bin/funit
CHANGED
@@ -90,7 +90,7 @@
|
|
90
90
|
|
91
91
|
<div id="description">
|
92
92
|
<p>
|
93
|
-
|
93
|
+
Compile and run the requested tests
|
94
94
|
</p>
|
95
95
|
|
96
96
|
</div>
|
@@ -103,10 +103,10 @@ Create test suite wrapper code
|
|
103
103
|
|
104
104
|
<div class="name-list">
|
105
105
|
<a href="#M000008">compileTests</a>
|
106
|
-
<a href="#M000003">
|
106
|
+
<a href="#M000003">funit_exists?</a>
|
107
107
|
<a href="#M000004">parseCommandLine</a>
|
108
108
|
<a href="#M000002">requestedModules</a>
|
109
|
-
<a href="#M000001">
|
109
|
+
<a href="#M000001">run_tests</a>
|
110
110
|
<a href="#M000006">syntaxError</a>
|
111
111
|
<a href="#M000007">warning</a>
|
112
112
|
<a href="#M000005">writeTestRunner</a>
|
@@ -168,7 +168,7 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
168
168
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"locating associated source files and sorting for compilation"</span>
|
169
169
|
<span class="ruby-identifier">requiredSources</span> = <span class="ruby-identifier">dependencies</span>.<span class="ruby-identifier">required_source_files</span>(<span class="ruby-value str">'TestRunner.f90'</span>)
|
170
170
|
|
171
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">compile</span> = <span class="ruby-node">"#{ENV['
|
171
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">compile</span> = <span class="ruby-node">"#{ENV['FC']} #{ENV['FCFLAGS']} -o TestRunner \\\n #{requiredSources.join(" \\\n ")}"</span>
|
172
172
|
|
173
173
|
<span class="ruby-identifier">raise</span> <span class="ruby-value str">"Compile failed."</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">system</span>(<span class="ruby-identifier">compile</span>)
|
174
174
|
<span class="ruby-keyword kw">end</span>
|
@@ -182,7 +182,7 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
182
182
|
|
183
183
|
<div class="method-heading">
|
184
184
|
<a href="#M000003" class="method-signature">
|
185
|
-
<span class="method-name">
|
185
|
+
<span class="method-name">funit_exists?</span><span class="method-args">(moduleName)</span>
|
186
186
|
</a>
|
187
187
|
</div>
|
188
188
|
|
@@ -192,8 +192,8 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
192
192
|
<div class="method-source-code" id="M000003-source">
|
193
193
|
<pre>
|
194
194
|
<span class="ruby-comment cmt"># File lib/funit/functions.rb, line 40</span>
|
195
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
196
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span> <span class="ruby-identifier">moduleName</span><span class="ruby-operator">+</span><span class="ruby-value str">"
|
195
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">funit_exists?</span>(<span class="ruby-identifier">moduleName</span>)
|
196
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span> <span class="ruby-identifier">moduleName</span><span class="ruby-operator">+</span><span class="ruby-value str">".fun"</span>
|
197
197
|
<span class="ruby-keyword kw">end</span>
|
198
198
|
</pre>
|
199
199
|
</div>
|
@@ -224,8 +224,8 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
224
224
|
<span class="ruby-keyword kw">end</span>
|
225
225
|
|
226
226
|
<span class="ruby-identifier">moduleNames</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">mod</span><span class="ruby-operator">|</span>
|
227
|
-
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">
|
228
|
-
<span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">"Error: could not find test suite \#{mod}
|
227
|
+
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">funit_exists?</span>(<span class="ruby-identifier">mod</span>)
|
228
|
+
<span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">"Error: could not find test suite \#{mod}.fun\nTest suites available in this directory:\n\#{requestedModules([]).join(' ')}\n\nUsage: \#{File.basename $0} [test names (w/o .fun suffix)]\n"</span>
|
229
229
|
<span class="ruby-identifier">raise</span> <span class="ruby-identifier">errorMessage</span>
|
230
230
|
<span class="ruby-keyword kw">end</span>
|
231
231
|
<span class="ruby-keyword kw">end</span>
|
@@ -253,7 +253,7 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
253
253
|
<span class="ruby-comment cmt"># File lib/funit/functions.rb, line 33</span>
|
254
254
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">requestedModules</span>(<span class="ruby-identifier">moduleNames</span>)
|
255
255
|
<span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">moduleNames</span>.<span class="ruby-identifier">empty?</span>)
|
256
|
-
<span class="ruby-identifier">moduleNames</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-value str">"
|
256
|
+
<span class="ruby-identifier">moduleNames</span> = <span class="ruby-constant">Dir</span>[<span class="ruby-value str">"*.fun"</span>].<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">mod</span><span class="ruby-operator">|</span> <span class="ruby-identifier">mod</span>.<span class="ruby-identifier">chomp!</span> <span class="ruby-value str">".fun"</span> }
|
257
257
|
<span class="ruby-keyword kw">end</span>
|
258
258
|
<span class="ruby-identifier">moduleNames</span>
|
259
259
|
<span class="ruby-keyword kw">end</span>
|
@@ -267,7 +267,7 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
267
267
|
|
268
268
|
<div class="method-heading">
|
269
269
|
<a href="#M000001" class="method-signature">
|
270
|
-
<span class="method-name">
|
270
|
+
<span class="method-name">run_tests</span><span class="method-args">()</span>
|
271
271
|
</a>
|
272
272
|
</div>
|
273
273
|
|
@@ -277,14 +277,12 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
277
277
|
<div class="method-source-code" id="M000001-source">
|
278
278
|
<pre>
|
279
279
|
<span class="ruby-comment cmt"># File lib/funit.rb, line 18</span>
|
280
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">
|
281
|
-
<span class="ruby-constant">Compiler</span>.<span class="ruby-identifier">new</span
|
280
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run_tests</span>
|
281
|
+
<span class="ruby-constant">Compiler</span>.<span class="ruby-identifier">new</span><span class="ruby-comment cmt"># a test for compiler env set (remove this later)</span>
|
282
282
|
<span class="ruby-identifier">writeTestRunner</span>(<span class="ruby-identifier">testSuites</span> = <span class="ruby-identifier">parseCommandLine</span>)
|
283
283
|
|
284
|
-
<span class="ruby-comment cmt"># convert each
|
285
|
-
<span class="ruby-identifier">testSuites</span>.<span class="ruby-identifier">each</span> <span class="ruby-
|
286
|
-
<span class="ruby-identifier">testSuiteF90</span> = <span class="ruby-constant">TestSuite</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">testSuite</span>)
|
287
|
-
<span class="ruby-keyword kw">end</span>
|
284
|
+
<span class="ruby-comment cmt"># convert each *.fun file into a Fortran file:</span>
|
285
|
+
<span class="ruby-identifier">testSuites</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">ts</span><span class="ruby-operator">|</span> <span class="ruby-constant">TestSuite</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">ts</span>) }
|
288
286
|
|
289
287
|
<span class="ruby-identifier">compileTests</span> <span class="ruby-identifier">testSuites</span>
|
290
288
|
|
@@ -311,7 +309,7 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
311
309
|
<pre>
|
312
310
|
<span class="ruby-comment cmt"># File lib/funit/functions.rb, line 113</span>
|
313
311
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">syntaxError</span>( <span class="ruby-identifier">message</span>, <span class="ruby-identifier">testSuite</span> )
|
314
|
-
<span class="ruby-identifier">raise</span> <span class="ruby-node">"\n *Error: #{message} [#{testSuite}
|
312
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-node">"\n *Error: #{message} [#{testSuite}.fun:#$.]\n\n"</span>
|
315
313
|
<span class="ruby-keyword kw">end</span>
|
316
314
|
</pre>
|
317
315
|
</div>
|
@@ -334,7 +332,7 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
334
332
|
<pre>
|
335
333
|
<span class="ruby-comment cmt"># File lib/funit/functions.rb, line 117</span>
|
336
334
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>( <span class="ruby-identifier">message</span>, <span class="ruby-identifier">testSuite</span> )
|
337
|
-
<span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"\n *Warning: #{message} [#{testSuite}
|
335
|
+
<span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"\n *Warning: #{message} [#{testSuite}.fun:#$.]"</span>
|
338
336
|
<span class="ruby-keyword kw">end</span>
|
339
337
|
</pre>
|
340
338
|
</div>
|
@@ -361,14 +359,14 @@ Class <a href="Funit/TestSuite.html" class="link">Funit::TestSuite</a><br />
|
|
361
359
|
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value str">"TestRunner.f90"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-value str">"TestRunner.f90"</span>)
|
362
360
|
<span class="ruby-identifier">testRunner</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span> <span class="ruby-value str">"TestRunner.f90"</span>, <span class="ruby-value str">"w"</span>
|
363
361
|
|
364
|
-
<span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"! TestRunner.f90 - runs
|
362
|
+
<span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"! TestRunner.f90 - runs test suites\n!\n! \#{File.basename $0} generated this file on \#{Time.now}.\n\nprogram TestRunner\n\n"</span>
|
365
363
|
|
366
|
-
<span class="ruby-identifier">testSuites</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">testSuite</span><span class="ruby-operator">|</span> <span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">" use #{testSuite}
|
364
|
+
<span class="ruby-identifier">testSuites</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">testSuite</span><span class="ruby-operator">|</span> <span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">" use #{testSuite}_fun"</span> }
|
367
365
|
|
368
366
|
<span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nimplicit none\n\ninteger :: numTests, numAsserts, numAssertsTested, numFailures\n"</span>
|
369
367
|
|
370
368
|
<span class="ruby-identifier">testSuites</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">testSuite</span><span class="ruby-operator">|</span>
|
371
|
-
<span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nprint *, \"\"\nprint *, \"\#{testSuite} test suite:\"\ncall
|
369
|
+
<span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nprint *, \"\"\nprint *, \"\#{testSuite} test suite:\"\ncall test_\#{testSuite}( numTests, &\nnumAsserts, numAssertsTested, numFailures )\nprint *, \"Passed\", numAssertsTested, \"of\", numAsserts, &\n\"possible asserts comprising\", &\nnumTests-numFailures, \"of\", numTests, \"tests.\"\n"</span>
|
372
370
|
<span class="ruby-keyword kw">end</span>
|
373
371
|
|
374
372
|
<span class="ruby-identifier">testRunner</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\n print *, \"\""</span>
|
@@ -263,7 +263,7 @@
|
|
263
263
|
<pre>
|
264
264
|
<span class="ruby-comment cmt"># File lib/funit/assertions.rb, line 61</span>
|
265
265
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">writeAssert</span>
|
266
|
-
<span class="ruby-value str">"\n! \#@type assertion\nnumAsserts = numAsserts + 1\nif (noAssertFailed) then\nif (\#@condition) then\nprint *, \" *\#@type failed* in test \#@testName &\n&[\#{@suiteName}
|
266
|
+
<span class="ruby-value str">"\n! \#@type assertion\nnumAsserts = numAsserts + 1\nif (noAssertFailed) then\nif (\#@condition) then\nprint *, \" *\#@type failed* in test \#@testName &\n&[\#{@suiteName}.fun:\#{@lineNumber.to_s}]\"\nprint *, \" \", \#@message\nprint *, \"\"\nnoAssertFailed = .false.\nnumFailures = numFailures + 1\nelse\nnumAssertsTested = numAssertsTested + 1\nendif\nendif\n"</span>
|
267
267
|
<span class="ruby-keyword kw">end</span>
|
268
268
|
</pre>
|
269
269
|
</div>
|
@@ -126,7 +126,7 @@
|
|
126
126
|
|
127
127
|
<div class="method-heading">
|
128
128
|
<a href="#M000025" class="method-signature">
|
129
|
-
<span class="method-name">new</span><span class="method-args">( name=ENV['
|
129
|
+
<span class="method-name">new</span><span class="method-args">( name=ENV['FC'] )</span>
|
130
130
|
</a>
|
131
131
|
</div>
|
132
132
|
|
@@ -136,8 +136,8 @@
|
|
136
136
|
<div class="method-source-code" id="M000025-source">
|
137
137
|
<pre>
|
138
138
|
<span class="ruby-comment cmt"># File lib/funit/functions.rb, line 17</span>
|
139
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>( <span class="ruby-identifier">name</span>=<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'
|
140
|
-
<span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">"\nFortran compiler environment variable '
|
139
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>( <span class="ruby-identifier">name</span>=<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'FC'</span>] )
|
140
|
+
<span class="ruby-identifier">errorMessage</span> = <span class="ruby-value str">"\nFortran compiler environment variable 'FC' not set:\n\nfor bourne-based shells: export FC=lf95 (in .profile)\nfor c-based shells: setenv FC lf95 (in .login)\nfor windows: set FC=C:\\\\Program Files\\\\lf95 (in autoexec.bat)\n\n"</span>
|
141
141
|
<span class="ruby-identifier">raise</span>(<span class="ruby-identifier">errorMessage</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
|
142
142
|
<span class="ruby-keyword kw">end</span>
|
143
143
|
</pre>
|
@@ -136,13 +136,13 @@
|
|
136
136
|
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
137
137
|
<div class="method-source-code" id="M000026-source">
|
138
138
|
<pre>
|
139
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
139
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 24</span>
|
140
140
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">suiteName</span>
|
141
141
|
<span class="ruby-ivar">@lineNumber</span> = <span class="ruby-value str">'blank'</span>
|
142
142
|
<span class="ruby-ivar">@suiteName</span> = <span class="ruby-identifier">suiteName</span>
|
143
|
-
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">
|
144
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">"
|
145
|
-
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">"
|
143
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">funit_exists?</span>(<span class="ruby-identifier">suiteName</span>)
|
144
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">".fun"</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">"_fun.f90"</span>)
|
145
|
+
<span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">"_fun.f90"</span>,<span class="ruby-value str">"w"</span>)
|
146
146
|
<span class="ruby-ivar">@tests</span>, <span class="ruby-ivar">@setup</span>, <span class="ruby-ivar">@teardown</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>, <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>, <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
|
147
147
|
<span class="ruby-identifier">topWrapper</span>
|
148
148
|
<span class="ruby-identifier">expand</span>
|
@@ -160,7 +160,7 @@
|
|
160
160
|
|
161
161
|
<div class="method-heading">
|
162
162
|
<a href="#M000032" class="method-signature">
|
163
|
-
<span class="method-name">aTest</span><span class="method-args">(testName,
|
163
|
+
<span class="method-name">aTest</span><span class="method-args">(testName, funit_contents)</span>
|
164
164
|
</a>
|
165
165
|
</div>
|
166
166
|
|
@@ -169,22 +169,22 @@
|
|
169
169
|
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
170
170
|
<div class="method-source-code" id="M000032-source">
|
171
171
|
<pre>
|
172
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
173
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">aTest</span> <span class="ruby-identifier">testName</span>, <span class="ruby-identifier">
|
172
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 124</span>
|
173
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">aTest</span> <span class="ruby-identifier">testName</span>, <span class="ruby-identifier">funit_contents</span>
|
174
174
|
<span class="ruby-ivar">@testName</span> = <span class="ruby-identifier">testName</span>
|
175
175
|
<span class="ruby-ivar">@tests</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">testName</span>
|
176
176
|
<span class="ruby-identifier">syntaxError</span>(<span class="ruby-value str">"test name #@testName not unique"</span>,<span class="ruby-ivar">@suiteName</span>) <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@tests</span>.<span class="ruby-identifier">uniq!</span>)
|
177
177
|
|
178
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-node">" subroutine
|
178
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">" subroutine #{testName}\n\n"</span>
|
179
179
|
|
180
180
|
<span class="ruby-identifier">numOfAsserts</span> = <span class="ruby-value">0</span>
|
181
181
|
|
182
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">
|
182
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/endTest/i</span>
|
183
183
|
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">line</span>
|
184
184
|
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">$commentLine</span>
|
185
185
|
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">line</span>
|
186
186
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/Is(RealEqual|False|True|EqualWithin|Equal)/i</span>
|
187
|
-
<span class="ruby-ivar">@lineNumber</span> = <span class="ruby-ivar">@
|
187
|
+
<span class="ruby-ivar">@lineNumber</span> = <span class="ruby-ivar">@funit_TotalLines</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">length</span>
|
188
188
|
<span class="ruby-identifier">numOfAsserts</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
189
189
|
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">send</span>( <span class="ruby-identifier">$&</span>.<span class="ruby-identifier">downcase!</span>, <span class="ruby-identifier">line</span> )
|
190
190
|
<span class="ruby-keyword kw">else</span>
|
@@ -194,7 +194,7 @@
|
|
194
194
|
<span class="ruby-identifier">warning</span>(<span class="ruby-value str">"no asserts in test"</span>, <span class="ruby-ivar">@suiteName</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">numOfAsserts</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
195
195
|
|
196
196
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\n numTests = numTests + 1\n\n"</span>
|
197
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-node">" end subroutine
|
197
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">" end subroutine #{testName}\n\n"</span>
|
198
198
|
<span class="ruby-keyword kw">end</span>
|
199
199
|
</pre>
|
200
200
|
</div>
|
@@ -206,7 +206,7 @@
|
|
206
206
|
|
207
207
|
<div class="method-heading">
|
208
208
|
<a href="#M000029" class="method-signature">
|
209
|
-
<span class="method-name">addtoSetup</span><span class="method-args">(
|
209
|
+
<span class="method-name">addtoSetup</span><span class="method-args">(funit_contents)</span>
|
210
210
|
</a>
|
211
211
|
</div>
|
212
212
|
|
@@ -215,9 +215,9 @@
|
|
215
215
|
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
216
216
|
<div class="method-source-code" id="M000029-source">
|
217
217
|
<pre>
|
218
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
219
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addtoSetup</span> <span class="ruby-identifier">
|
220
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">
|
218
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 107</span>
|
219
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addtoSetup</span> <span class="ruby-identifier">funit_contents</span>
|
220
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/endSetup/i</span>
|
221
221
|
<span class="ruby-ivar">@setup</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">line</span>
|
222
222
|
<span class="ruby-keyword kw">end</span>
|
223
223
|
<span class="ruby-keyword kw">end</span>
|
@@ -231,7 +231,7 @@
|
|
231
231
|
|
232
232
|
<div class="method-heading">
|
233
233
|
<a href="#M000030" class="method-signature">
|
234
|
-
<span class="method-name">addtoTeardown</span><span class="method-args">(
|
234
|
+
<span class="method-name">addtoTeardown</span><span class="method-args">(funit_contents)</span>
|
235
235
|
</a>
|
236
236
|
</div>
|
237
237
|
|
@@ -240,9 +240,9 @@
|
|
240
240
|
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
241
241
|
<div class="method-source-code" id="M000030-source">
|
242
242
|
<pre>
|
243
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
244
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addtoTeardown</span> <span class="ruby-identifier">
|
245
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">
|
243
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 113</span>
|
244
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addtoTeardown</span> <span class="ruby-identifier">funit_contents</span>
|
245
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/endTeardown/i</span>
|
246
246
|
<span class="ruby-ivar">@teardown</span>.<span class="ruby-identifier">push</span> <span class="ruby-identifier">line</span>
|
247
247
|
<span class="ruby-keyword kw">end</span>
|
248
248
|
<span class="ruby-keyword kw">end</span>
|
@@ -265,7 +265,7 @@
|
|
265
265
|
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
266
266
|
<div class="method-source-code" id="M000033-source">
|
267
267
|
<pre>
|
268
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
268
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 151</span>
|
269
269
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
|
270
270
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\n subroutine Setup"</span>
|
271
271
|
<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@setup</span>
|
@@ -276,17 +276,17 @@
|
|
276
276
|
<span class="ruby-identifier">puts</span> <span class="ruby-ivar">@teardown</span>
|
277
277
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">" end subroutine Teardown\n\n"</span>
|
278
278
|
|
279
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nsubroutine
|
279
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nsubroutine test_\#{@suiteName}( nTests, nAsserts, nAssertsTested, nFailures )\n\ninteger :: nTests\ninteger :: nAsserts\ninteger :: nAssertsTested\ninteger :: nFailures\n\ncontinue\n"</span>
|
280
280
|
|
281
281
|
<span class="ruby-ivar">@tests</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">testName</span><span class="ruby-operator">|</span>
|
282
282
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\n call Setup"</span>
|
283
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-node">" call
|
283
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-node">" call #{testName}"</span>
|
284
284
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">" call Teardown"</span>
|
285
285
|
<span class="ruby-keyword kw">end</span>
|
286
286
|
|
287
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nnTests = numTests\nnAsserts = numAsserts\nnAssertsTested = numAssertsTested\nnFailures = numFailures\n\nend subroutine
|
287
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"\nnTests = numTests\nnAsserts = numAsserts\nnAssertsTested = numAssertsTested\nnFailures = numFailures\n\nend subroutine test_\#{@suiteName}\n\nend module \#{@suiteName}_fun\n"</span>
|
288
288
|
<span class="ruby-keyword kw">super</span>
|
289
|
-
<span class="ruby-constant">File</span>.<span class="ruby-identifier">chmod</span>(<span class="ruby-value">0444</span>,<span class="ruby-ivar">@suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">"
|
289
|
+
<span class="ruby-constant">File</span>.<span class="ruby-identifier">chmod</span>(<span class="ruby-value">0444</span>,<span class="ruby-ivar">@suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">"_fun.f90"</span>)
|
290
290
|
<span class="ruby-keyword kw">end</span>
|
291
291
|
</pre>
|
292
292
|
</div>
|
@@ -307,35 +307,35 @@
|
|
307
307
|
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
308
308
|
<div class="method-source-code" id="M000028-source">
|
309
309
|
<pre>
|
310
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
310
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 64</span>
|
311
311
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">expand</span>
|
312
312
|
|
313
|
-
<span class="ruby-identifier">
|
314
|
-
<span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">
|
313
|
+
<span class="ruby-identifier">funit_file</span> = <span class="ruby-ivar">@suiteName</span><span class="ruby-operator">+</span><span class="ruby-value str">".fun"</span>
|
314
|
+
<span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">print</span> <span class="ruby-node">"expanding #{funit_file}..."</span>
|
315
315
|
|
316
|
-
<span class="ruby-identifier">
|
317
|
-
<span class="ruby-ivar">@
|
316
|
+
<span class="ruby-identifier">funit_contents</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">readlines</span>(<span class="ruby-identifier">funit_file</span>)
|
317
|
+
<span class="ruby-ivar">@funit_TotalLines</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">length</span>
|
318
318
|
|
319
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">
|
319
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">shift</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">!~</span> <span class="ruby-identifier">$keyword</span>
|
320
320
|
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">line</span>
|
321
321
|
<span class="ruby-keyword kw">end</span>
|
322
322
|
|
323
|
-
<span class="ruby-identifier">
|
323
|
+
<span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">unshift</span> <span class="ruby-identifier">line</span>
|
324
324
|
|
325
325
|
<span class="ruby-identifier">puts</span> <span class="ruby-value str">" contains\n\n"</span>
|
326
326
|
|
327
|
-
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">
|
327
|
+
<span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">line</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">shift</span>)
|
328
328
|
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">line</span>
|
329
329
|
<span class="ruby-keyword kw">when</span> <span class="ruby-identifier">$commentLine</span>
|
330
330
|
<span class="ruby-identifier">puts</span> <span class="ruby-identifier">line</span>
|
331
331
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/beginSetup/i</span>
|
332
|
-
<span class="ruby-identifier">addtoSetup</span> <span class="ruby-identifier">
|
332
|
+
<span class="ruby-identifier">addtoSetup</span> <span class="ruby-identifier">funit_contents</span>
|
333
333
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/beginTeardown/i</span>
|
334
|
-
<span class="ruby-identifier">addtoTeardown</span> <span class="ruby-identifier">
|
334
|
+
<span class="ruby-identifier">addtoTeardown</span> <span class="ruby-identifier">funit_contents</span>
|
335
335
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/XbeginTest\s+(\w+)/i</span>
|
336
|
-
<span class="ruby-identifier">ignoreTest</span>(<span class="ruby-identifier">$1</span>,<span class="ruby-identifier">
|
336
|
+
<span class="ruby-identifier">ignoreTest</span>(<span class="ruby-identifier">$1</span>,<span class="ruby-identifier">funit_contents</span>)
|
337
337
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/beginTest\s+(\w+)/i</span>
|
338
|
-
<span class="ruby-identifier">aTest</span>(<span class="ruby-identifier">$1</span>,<span class="ruby-identifier">
|
338
|
+
<span class="ruby-identifier">aTest</span>(<span class="ruby-identifier">$1</span>,<span class="ruby-identifier">funit_contents</span>)
|
339
339
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/beginTest/i</span>
|
340
340
|
<span class="ruby-identifier">syntaxError</span> <span class="ruby-value str">"no name given for beginTest"</span>, <span class="ruby-ivar">@suiteName</span>
|
341
341
|
<span class="ruby-keyword kw">when</span> <span class="ruby-regexp re">/end(Setup|Teardown|Test)/i</span>
|
@@ -347,7 +347,7 @@
|
|
347
347
|
<span class="ruby-keyword kw">end</span>
|
348
348
|
<span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># while</span>
|
349
349
|
|
350
|
-
<span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-
|
350
|
+
<span class="ruby-identifier">$stderr</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">"done."</span>
|
351
351
|
|
352
352
|
<span class="ruby-keyword kw">end</span>
|
353
353
|
</pre>
|
@@ -360,7 +360,7 @@
|
|
360
360
|
|
361
361
|
<div class="method-heading">
|
362
362
|
<a href="#M000031" class="method-signature">
|
363
|
-
<span class="method-name">ignoreTest</span><span class="method-args">(testName,
|
363
|
+
<span class="method-name">ignoreTest</span><span class="method-args">(testName, funit_contents)</span>
|
364
364
|
</a>
|
365
365
|
</div>
|
366
366
|
|
@@ -369,10 +369,10 @@
|
|
369
369
|
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
370
370
|
<div class="method-source-code" id="M000031-source">
|
371
371
|
<pre>
|
372
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
373
|
-
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ignoreTest</span> <span class="ruby-identifier">testName</span>, <span class="ruby-identifier">
|
372
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 119</span>
|
373
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ignoreTest</span> <span class="ruby-identifier">testName</span>, <span class="ruby-identifier">funit_contents</span>
|
374
374
|
<span class="ruby-identifier">warning</span>(<span class="ruby-node">"Ignoring test: #{testName}"</span>, <span class="ruby-ivar">@suiteName</span>)
|
375
|
-
<span class="ruby-identifier">line</span> = <span class="ruby-identifier">
|
375
|
+
<span class="ruby-identifier">line</span> = <span class="ruby-identifier">funit_contents</span>.<span class="ruby-identifier">shift</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">!~</span> <span class="ruby-regexp re">/endTest/i</span>
|
376
376
|
<span class="ruby-keyword kw">end</span>
|
377
377
|
</pre>
|
378
378
|
</div>
|
@@ -393,9 +393,9 @@
|
|
393
393
|
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
394
394
|
<div class="method-source-code" id="M000027-source">
|
395
395
|
<pre>
|
396
|
-
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line
|
396
|
+
<span class="ruby-comment cmt"># File lib/funit/test_suite.rb, line 36</span>
|
397
397
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">topWrapper</span>
|
398
|
-
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"! \#{@suiteName}
|
398
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-value str">"! \#{@suiteName}_fun.f90 - a unit test suite for \#{@suiteName}.f90\n!\n! \#{File.basename $0} generated this file from \#{@suiteName}.fun\n! at \#{Time.now}\n\nmodule \#{@suiteName}_fun\n\nuse \#{@suiteName}\n\nimplicit none\n\nlogical :: noAssertFailed\n\npublic :: test_\#@suiteName\n\nprivate\n\ninteger :: numTests = 0\ninteger :: numAsserts = 0\ninteger :: numAssertsTested = 0\ninteger :: numFailures = 0\n\n"</span>
|
399
399
|
<span class="ruby-keyword kw">end</span>
|
400
400
|
</pre>
|
401
401
|
</div>
|