funit-12 0.12.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 967354271cccdcbb898903976300dd7835dc1240
4
+ data.tar.gz: c51625688cb1a1ff105311cd821e7e5baf8fc648
5
+ SHA512:
6
+ metadata.gz: f1af27b11bab5773f1c7ac6c9e59dc0d8a93e8985d8364b45d1af758240ed94b4f9b5f9aa1bccda71d7db1016e63e33d69a143c6a56250206bd17e35b4912042
7
+ data.tar.gz: cc94e9d9ee86fa2ba6d462432428269920993825fe999a1084dd1720441fdb1f462714fe361250cc1cfc341a067e7e1a6b65ea7fe6e5e63c70f6127d4c11ef82
data/History.txt ADDED
@@ -0,0 +1,113 @@
1
+ === 0.12.0 / 2016-1-19
2
+
3
+ * 1 bug fix
4
+ * Changed required gem fortran -> fortran_dependencies to track forked gem of "fortran"
5
+
6
+ === 0.12.0 / 2016-1-14
7
+
8
+ * major enhancement
9
+ * Allow user to specify C/C++ code needed by fortran unit test
10
+
11
+ * minor enhancement
12
+ * Refactored option input using optparse
13
+
14
+ === 0.11.1 / 2009-11-01
15
+
16
+ * 1 bug fix
17
+ * Documentation
18
+
19
+ === 0.11.0 / 2009-11-01
20
+
21
+ * 1 minor enhancement
22
+ * Allow testing of routines not contained in modules
23
+
24
+ === 0.10.4 / 2009-10-15
25
+
26
+ * 2 minor enhancements
27
+ * Pass LDFLAGS environment variable to linker (Steve Turley)
28
+ * Formatted test summary line with i0 instead of *
29
+
30
+ === 0.10.3 / 2009-10-05
31
+
32
+ * 1 minor enhancement
33
+ * Allow <tt>--source</tt> to accept multiple directories
34
+ * 1 bug fix
35
+ * Make Funit's setup and teardown subroutine names unique to avoid
36
+ collision with same routine names in module under test.
37
+
38
+ === 0.10.2 / 2008-03-30
39
+
40
+ * 2 bug fixes
41
+ * Updated <tt>README.txt</tt> with proper syntax
42
+ * Corrected prior release history copy and version number
43
+
44
+ === 0.10.1 / 2008-03-30
45
+
46
+ * 1 major enhancement
47
+ * Non-passing tests exit with non-zero exit code
48
+
49
+ * 1 minor enhancement
50
+ * Added <tt>--version</tt> / <tt>-V</tt> options
51
+
52
+ === 0.10.0 / 2008-03-30 (all courtesy of Diego Virasoro)
53
+
54
+ * 4 major enhancements
55
+ * User can now use <tt>funit --clean</tt> to remove the generated files
56
+ * Source directory and test directory can be different: specify
57
+ source dir with <tt>-s</tt>(or <tt>--source</tt> flag
58
+ * Only the minimum number of files that need recompilation are compiled
59
+ via makefile
60
+ * The <tt>.fun</tt> file name is not constrained anymore, but now each test suite
61
+ must be surrounded by <tt>test_suite name</tt> and <tt>end test_suite</tt>,
62
+ where <tt>name</tt> is the name of the module to be tested
63
+ * Multiple test suites can exist inside the same file
64
+
65
+ * 5 minor enhancements
66
+ * Change blocks nomenclature: <tt>beginTest</tt> -> <tt>test</tt> and
67
+ <tt>endTest</tt> -> <tt>end test</tt>
68
+ (and similarly for setup and teardown)
69
+ * Change assertions nomenclature (eg. <tt>IsEqual</tt> -> <tt>assert_equal</tt>)
70
+ * Added one new assertion: <tt>assert_array_equal</tt>
71
+ * Added a summary of all the test suites results, printed at the end
72
+ * Minor code clean-up
73
+
74
+ === 0.9.4 / 2008-01-08
75
+
76
+ * 2 minor enhancements
77
+ * Broke up more long conditionals with continuation
78
+ characters to avoid truncated lines
79
+ * Added shebang to main for rubygems 1.0
80
+
81
+ === 0.9.3 / 2007-12-23
82
+
83
+ * 2 bug fixes
84
+ * Project URLs in <tt>README.txt</tt>
85
+ * Repaired a test broken by 0.9.2
86
+
87
+ === 0.9.2 / 2007-09-21
88
+
89
+ * 1 minor enhancement
90
+ * broke up long generated assert lines with continuations
91
+ to compile via g95
92
+
93
+ === 0.9.1 / 2007-08-20
94
+
95
+ * 1 minor enhancement
96
+ * Stripped <tt>./</tt> path prefixes and <tt>\</tt> continuations to
97
+ appease windoze
98
+
99
+ === 0.9.0 / 2007-07-26
100
+
101
+ * 1 minor enhancement
102
+ * Extracted fortran dependency engine -- see <tt>fortran</tt> gem.
103
+
104
+ === 0.1.3 / 2006-06-21
105
+
106
+ * 1 bug fix
107
+ * Do not remove unit tests! (Thanks to Sebastian Hanigk and James Quirk.)
108
+
109
+ === 0.1.2 / 2006-05-16
110
+
111
+ * 1 major enhancement
112
+ * 1st public release!
113
+
data/License.txt ADDED
@@ -0,0 +1,263 @@
1
+ == License
2
+
3
+ NASA OPEN SOURCE AGREEMENT VERSION 1.3
4
+
5
+ THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE,
6
+ REPRODUCTION, DISTRIBUTION, MODIFICATION AND REDISTRIBUTION OF CERTAIN
7
+ COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT
8
+ AS REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT
9
+ AGENCY"). THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT
10
+ AGENCY, IS AN INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT
11
+ DISTRIBUTIONS OR REDISTRIBUTIONS OF THE SUBJECT SOFTWARE. ANYONE WHO
12
+ USES, REPRODUCES, DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT
13
+ SOFTWARE, AS DEFINED HEREIN, OR ANY PART THEREOF, IS, BY THAT ACTION,
14
+ ACCEPTING IN FULL THE RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN
15
+ THIS AGREEMENT.
16
+
17
+ Government Agency: NASA Langley Research Center
18
+ Government Agency Original Software Designation: LAR-17081-1
19
+ Government Agency Original Software Title: fUnit
20
+ User Registration Requested: please see clause 3.F.
21
+ Government Agency Point of Contact: funit-support@rubyforge.org
22
+
23
+ 1. DEFINITIONS
24
+
25
+ A. "Contributor" means Government Agency, as the developer of the
26
+ Original Software, and any entity that makes a Modification.
27
+
28
+ B. "Covered Patents" mean patent claims licensable by a Contributor
29
+ that are necessarily infringed by the use or sale of its Modification
30
+ alone or when combined with the Subject Software.
31
+
32
+ C. "Display" means the showing of a copy of the Subject Software,
33
+ either directly or by means of an image, or any other device.
34
+
35
+ D. "Distribution" means conveyance or transfer of the Subject
36
+ Software, regardless of means, to another.
37
+
38
+ E. "Larger Work" means computer software that combines Subject
39
+ Software, or portions thereof, with software separate from the Subject
40
+ Software that is not governed by the terms of this Agreement.
41
+
42
+ F. "Modification" means any alteration of, including addition to or
43
+ deletion from, the substance or structure of either the Original
44
+ Software or Subject Software, and includes derivative works, as that
45
+ term is defined in the Copyright Statute, 17 USC 101. However, the
46
+ act of including Subject Software as part of a Larger Work does not in
47
+ and of itself constitute a Modification.
48
+
49
+ G. "Original Software" means the computer software first released
50
+ under this Agreement by Government Agency with Government Agency
51
+ designation NASA and entitled fUnit, including source code,
52
+ object code and accompanying documentation, if any.
53
+
54
+ H. "Recipient" means anyone who acquires the Subject Software under
55
+ this Agreement, including all Contributors.
56
+
57
+ I. "Redistribution" means Distribution of the Subject Software after a
58
+ Modification has been made.
59
+
60
+ J. "Reproduction" means the making of a counterpart, image or copy of
61
+ the Subject Software.
62
+
63
+ K. "Sale" means the exchange of the Subject Software for money or
64
+ equivalent value.
65
+
66
+ L. "Subject Software" means the Original Software, Modifications, or
67
+ any respective parts thereof.
68
+
69
+ M. "Use" means the application or employment of the Subject Software
70
+ for any purpose.
71
+
72
+ 2. GRANT OF RIGHTS
73
+
74
+ A. Under Non-Patent Rights: Subject to the terms and conditions of
75
+ this Agreement, each Contributor, with respect to its own contribution
76
+ to the Subject Software, hereby grants to each Recipient a
77
+ non-exclusive, world-wide, royalty-free license to engage in the
78
+ following activities pertaining to the Subject Software:
79
+
80
+ 1. Use
81
+ 2. Distribution
82
+ 3. Reproduction
83
+ 4. Modification
84
+ 5. Redistribution
85
+ 6. Display
86
+
87
+ B. Under Patent Rights: Subject to the terms and conditions of this
88
+ Agreement, each Contributor, with respect to its own contribution to
89
+ the Subject Software, hereby grants to each Recipient under Covered
90
+ Patents a non-exclusive, world-wide, royalty-free license to engage in
91
+ the following activities pertaining to the Subject Software:
92
+
93
+ 1. Use
94
+ 2. Distribution
95
+ 3. Reproduction
96
+ 4. Sale
97
+ 5. Offer for Sale
98
+
99
+ C. The rights granted under Paragraph B. also apply to the combination
100
+ of a Contributor's Modification and the Subject Software if, at the
101
+ time the Modification is added by the Contributor, the addition of
102
+ such Modification causes the combination to be covered by the Covered
103
+ Patents. It does not apply to any other combinations that include a
104
+ Modification.
105
+
106
+ D. The rights granted in Paragraphs A. and B. allow the Recipient to
107
+ sublicense those same rights. Such sublicense must be under the same
108
+ terms and conditions of this Agreement.
109
+
110
+ 3. OBLIGATIONS OF RECIPIENT
111
+
112
+ A. Distribution or Redistribution of the Subject Software must be made
113
+ under this Agreement except for additions covered under paragraph 3H.
114
+
115
+ 1. Whenever a Recipient distributes or redistributes the Subject
116
+ Software, a copy of this Agreement must be included with each copy
117
+ of the Subject Software; and
118
+
119
+ 2. If Recipient distributes or redistributes the Subject Software in
120
+ any form other than source code, Recipient must also make the
121
+ source code freely available, and must provide with each copy of
122
+ the Subject Software information on how to obtain the source code
123
+ in a reasonable manner on or through a medium customarily used for
124
+ software exchange.
125
+
126
+ B. Each Recipient must ensure that the following copyright notice
127
+ appears prominently in the Subject Software:
128
+
129
+ Copyright 2006-2007 United States Government as represented by
130
+ NASA Langley Research Center. No copyright is claimed in
131
+ the United States under Title 17, U.S. Code. All Other Rights
132
+ Reserved.
133
+
134
+ C. Each Contributor must characterize its alteration of the Subject
135
+ Software as a Modification and must identify itself as the originator
136
+ of its Modification in a manner that reasonably allows subsequent
137
+ Recipients to identify the originator of the Modification. In
138
+ fulfillment of these requirements, Contributor must include a file
139
+ (e.g., a change log file) that describes the alterations made and the
140
+ date of the alterations, identifies Contributor as originator of the
141
+ alterations, and consents to characterization of the alterations as a
142
+ Modification, for example, by including a statement that the
143
+ Modification is derived, directly or indirectly, from Original
144
+ Software provided by Government Agency. Once consent is granted, it
145
+ may not thereafter be revoked.
146
+
147
+ D. A Contributor may add its own copyright notice to the Subject
148
+ Software. Once a copyright notice has been added to the Subject
149
+ Software, a Recipient may not remove it without the express permission
150
+ of the Contributor who added the notice.
151
+
152
+ E. A Recipient may not make any representation in the Subject Software
153
+ or in any promotional, advertising or other material that may be
154
+ construed as an endorsement by Government Agency or by any prior
155
+ Recipient of any product or service provided by Recipient, or that may
156
+ seek to obtain commercial advantage by the fact of Government Agency's
157
+ or a prior Recipient's participation in this Agreement.
158
+
159
+ F. In an effort to track usage and maintain accurate records of the
160
+ Subject Software, each Recipient, upon receipt of the Subject Software,
161
+ is requested to provide Government Agency, by e-mail to the Government
162
+ Agency Point of Contact listed in clause 5.F., the following information:
163
+ name, institution (if applicable), postal code, and country.
164
+ Recipient's name and personal information shall be used for statistical
165
+ purposes only. Once a Recipient makes a Modification available, it is
166
+ requested that the Recipient inform Government Agency, by e-mail to the
167
+ Government Agency Point of Contact listed in clause 5.F., how to
168
+ access the Modification.
169
+
170
+ G. Each Contributor represents that that its Modification is believed
171
+ to be Contributor's original creation and does not violate any
172
+ existing agreements, regulations, statutes or rules, and further that
173
+ Contributor has sufficient rights to grant the rights conveyed by this
174
+ Agreement.
175
+
176
+ H. A Recipient may choose to offer, and to charge a fee for, warranty,
177
+ support, indemnity and/or liability obligations to one or more other
178
+ Recipients of the Subject Software. A Recipient may do so, however,
179
+ only on its own behalf and not on behalf of Government Agency or any
180
+ other Recipient. Such a Recipient must make it absolutely clear that
181
+ any such warranty, support, indemnity and/or liability obligation is
182
+ offered by that Recipient alone. Further, such Recipient agrees to
183
+ indemnify Government Agency and every other Recipient for any
184
+ liability incurred by them as a result of warranty, support, indemnity
185
+ and/or liability offered by such Recipient.
186
+
187
+ I. A Recipient may create a Larger Work by combining Subject Software
188
+ with separate software not governed by the terms of this agreement and
189
+ distribute the Larger Work as a single product. In such case, the
190
+ Recipient must make sure Subject Software, or portions thereof,
191
+ included in the Larger Work is subject to this Agreement.
192
+
193
+ J. Notwithstanding any provisions contained herein, Recipient is
194
+ hereby put on notice that export of any goods or technical data from
195
+ the United States may require some form of export license from the
196
+ U.S. Government. Failure to obtain necessary export licenses may
197
+ result in criminal liability under U.S. laws. Government Agency
198
+ neither represents that a license shall not be required nor that, if
199
+ required, it shall be issued. Nothing granted herein provides any
200
+ such export license.
201
+
202
+ 4. DISCLAIMER OF WARRANTIES AND LIABILITIES; WAIVER AND INDEMNIFICATION
203
+
204
+ A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY
205
+ WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY,
206
+ INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE
207
+ WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
208
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM
209
+ INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL BE ERROR
210
+ FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED, WILL CONFORM TO
211
+ THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER,
212
+ CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT
213
+ OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR ANY
214
+ OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE.
215
+ FURTHER, GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES
216
+ REGARDING THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE,
217
+ AND DISTRIBUTES IT "AS IS."
218
+
219
+ B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS
220
+ AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND
221
+ SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF
222
+ THE SUBJECT SOFTWARE RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES,
223
+ EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM
224
+ PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT
225
+ SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE UNITED
226
+ STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
227
+ PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE
228
+ REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL
229
+ TERMINATION OF THIS AGREEMENT.
230
+
231
+ 5. GENERAL TERMS
232
+
233
+ A. Termination: This Agreement and the rights granted hereunder will
234
+ terminate automatically if a Recipient fails to comply with these
235
+ terms and conditions, and fails to cure such noncompliance within
236
+ thirty (30) days of becoming aware of such noncompliance. Upon
237
+ termination, a Recipient agrees to immediately cease use and
238
+ distribution of the Subject Software. All sublicenses to the Subject
239
+ Software properly granted by the breaching Recipient shall survive any
240
+ such termination of this Agreement.
241
+
242
+ B. Severability: If any provision of this Agreement is invalid or
243
+ unenforceable under applicable law, it shall not affect the validity
244
+ or enforceability of the remainder of the terms of this Agreement.
245
+
246
+ C. Applicable Law: This Agreement shall be subject to United States
247
+ federal law only for all purposes, including, but not limited to,
248
+ determining the validity of this Agreement, the meaning of its
249
+ provisions and the rights, obligations and remedies of the parties.
250
+
251
+ D. Entire Understanding: This Agreement constitutes the entire
252
+ understanding and agreement of the parties relating to release of the
253
+ Subject Software and may not be superseded, modified or amended except
254
+ by further written agreement duly executed by the parties.
255
+
256
+ E. Binding Authority: By accepting and using the Subject Software
257
+ under this Agreement, a Recipient affirms its authority to bind the
258
+ Recipient to all terms and conditions of this Agreement and that that
259
+ Recipient hereby agrees to all terms and conditions herein.
260
+
261
+ F. Point of Contact: Any Recipient contact with Government Agency is
262
+ to be directed to the designated representative as follows:
263
+ funit-support@rubyforge.org.
data/Manifest.txt ADDED
@@ -0,0 +1,29 @@
1
+ History.txt
2
+ License.txt
3
+ Manifest.txt
4
+ README.txt
5
+ Rakefile
6
+ bin/funit-12
7
+ examples/CFD/FluxFunctions.f90
8
+ examples/CFD/FluxFunctions.fun
9
+ examples/CFD/Gammas.f90
10
+ examples/CFD/GasModel.f90
11
+ examples/CFD/GasModel.fun
12
+ examples/ReadData/time_series_data.f90
13
+ examples/ReadData/time_series_data.fun
14
+ examples/StopWatch/StopWatch.f90
15
+ examples/StopWatch/StopWatch.fun
16
+ lib/funit.rb
17
+ lib/funit/assertions.rb
18
+ lib/funit/compiler.rb
19
+ lib/funit/c_tools.rb
20
+ lib/funit/functions.rb
21
+ lib/funit/testsuite.rb
22
+ pitch/slides.tex
23
+ test/test_compiler.rb
24
+ test/test_functions.rb
25
+ test/test_funit.rb
26
+ test/test_testsuite.rb
27
+ utils/errorFinder.el
28
+ utils/funit-generic-mode.el
29
+ utils/funit-mode.el
data/README.txt ADDED
@@ -0,0 +1,124 @@
1
+ = FUnit
2
+
3
+ * http://rubyforge.org/projects/nasarb
4
+ * http://nasarb.rubyforge.org/funit
5
+ * mailto:nasarb-developers@rubyforge.org
6
+
7
+ == DESCRIPTION:
8
+
9
+ FUnit is a unit testing framework for Fortran.
10
+
11
+ Unit tests are written as Fortran fragments that use a small
12
+ set of testing-specific keywords and functions. FUnit transforms
13
+ these fragments into valid Fortran code, compiles, links, and
14
+ runs them against the code under test.
15
+
16
+ FUnit is
17
+ {opinionated software}[http://www.oreillynet.com/pub/a/network/2005/08/30/ruby-rails-david-heinemeier-hansson.html],
18
+ which values convention over configuration. Specifically, FUnit requires,
19
+
20
+ * a Fortran 95 compiler,
21
+ * tests to be stored along side the code under test, and
22
+ * test files to be named appropriately.
23
+
24
+ == FEATURES/PROBLEMS:
25
+
26
+ * Enables the Scientific Method for software by making unit testing
27
+ Fortran fun and easy.
28
+ * Encourages cohesive, yet decoupled code paired with
29
+ <em>executable</em> documentation.
30
+
31
+ == SYNOPSIS:
32
+
33
+ Suppose <tt>gas_physics.f90</tt> has a routine that returns
34
+ viscosity as a function of temperature, e.g.,
35
+
36
+ module gas_physics
37
+ contains
38
+ function viscosity(temperature)
39
+ real :: viscosity, temperature
40
+ viscosity = 2.0e-3 * temperature**1.5
41
+ end function
42
+ end module
43
+
44
+ Tests of this module would be contained in <tt>gas_physics.fun</tt>,
45
+ and might contain a test like,
46
+
47
+ test_suite gas_physics
48
+
49
+ test viscosity_varies_as_temperature
50
+ assert_real_equal( 0.0, viscosity(0.0) )
51
+ assert_equal_within( 0.7071, viscosity(50.0), 1e-3 )
52
+ end test
53
+
54
+ end test_suite
55
+
56
+ This brief fragment is all you need. The framework provides the rest
57
+ of the trappings to turn this into valid Fortran code.
58
+
59
+ You would run this unit test with the command,
60
+
61
+ funit gas_physics
62
+
63
+ which would transform your fragments contained in <tt>gas_physics.fun</tt>
64
+ into valid Fortran code, create a test runner program, compile everything,
65
+ and run the tests, viz,
66
+
67
+ expanding test suite: gas_physics... done.
68
+ locating associated source files and sorting for compilation
69
+ (cd .; g95 -c gas_physics_fun.f90)
70
+ (cd .; g95 -c TestRunner.f90)
71
+ g95 -o TestRunner gas_physics.o gas_physics_fun.o TestRunner.o
72
+
73
+ gas_physics test suite:
74
+ Passed 2 of 2 possible asserts comprising 1 of 1 tests.
75
+
76
+ This and other examples come with the FUnit distribution in the
77
+ <tt>examples</tt> directory. There is also an emacs mode in
78
+ the <tt>utils</tt> directory. If you installed the FUnit via Rubygems,
79
+ these directories can be found in your Rubygems library directory, e.g., <tt>/usr/local/lib/ruby/gems</tt>.
80
+
81
+ == REQUIREMENTS:
82
+
83
+ * Fortran 90/95/2003 compiler
84
+ * Ruby with Rubygems package manager
85
+ * The fortran Rubygem
86
+
87
+ == INSTALL:
88
+
89
+ * <tt>sudo gem install funit</tt>
90
+ * Set FC environment variable to point to a Fortran compiler:
91
+ * <tt>export FC=/path/of/Fortran/compiler</tt> (sh)
92
+ * <tt>setenv FC /path/of/Fortran/compiler</tt> (csh)
93
+ * Other influential environment variables: FCFLAGS and LDFLAGS
94
+
95
+ == LICENSE:
96
+
97
+ FUnit is released under the NASA Open Source Agreement -- see License.txt[link:files/License_txt.html] for details.
98
+
99
+ == ORIGIN:
100
+
101
+ On October 4, 2001, Mike Hill (then of {Object Mentor}[http://www.objectmentor.com/],
102
+ now of {Industrial Logic}[http://www.industriallogic.com]) visited {NASA Langley Research Center}[http://www.larc.nasa.gov]
103
+ in Hampton, Virginia and gave a test-first design talk at
104
+ the {Institute for Computer and Applied Sciences and Engineering (ICASE)}[http://www.icase.edu].
105
+ Copies of his slides are available at {icase.edu/series/MPP}[http://www.icase.edu/series/MPP/].
106
+
107
+ Mike spent the afternoon with Bil Kleb, Bill Wood, Karen Bibb, and
108
+ Mike Park reasoning out how we might create a testing framework
109
+ for Fortran 90 to use during FUN3D[http://fun3d.larc.nasa.gov] code development.
110
+ By the end of the afternoon we had a working prototype based
111
+ on the macro expansion techniques employed in Mike Hill's cpptestkit[http://sourceforge.net/projects/cpptestkit].
112
+ We quickly found C-preprocessor macros to be too restrictive and
113
+ rewrote the framework in Ruby[http://www.ruby-lang.org].
114
+
115
+ == TODO:
116
+
117
+ * To avoid Fortran's 32-character limit, don't add test name during translation
118
+ or allow another method for naming longer tests altogether.
119
+ * Add assertions that capture stops, warning messages, and other exits.
120
+ * For compilation, use internal rake task instead of an external makefile.
121
+ * To increase portability, create stand-alone executables with Erik Veenstra's
122
+ RubyScript2Exe[http://www.erikveen.dds.nl/rubyscript2exe/].
123
+ * Make FUnit self-tests fail gracefully if Fortran compiler is not found.
124
+ * Eliminate need for user to specify C code directory to link static library