fUnit 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/COPYING CHANGED
@@ -1,79 +1,81 @@
1
- NASA OPEN SOURCE AGREEMENT VERSION 1.3
1
+ = Copying
2
2
 
3
- THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE,
4
- REPRODUCTION, DISTRIBUTION, MODIFICATION AND REDISTRIBUTION OF CERTAIN
5
- COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT
6
- AS REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT
7
- AGENCY"). THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT
8
- AGENCY, IS AN INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT
9
- DISTRIBUTIONS OR REDISTRIBUTIONS OF THE SUBJECT SOFTWARE. ANYONE WHO
10
- USES, REPRODUCES, DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT
11
- SOFTWARE, AS DEFINED HEREIN, OR ANY PART THEREOF, IS, BY THAT ACTION,
12
- ACCEPTING IN FULL THE RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN
13
- THIS AGREEMENT.
3
+ NASA OPEN SOURCE AGREEMENT VERSION 1.3
14
4
 
15
- Government Agency: NASA Langley Research Center
16
- Government Agency Original Software Designation: LAR-17081-1
17
- Government Agency Original Software Title: fUnit
18
- User Registration Requested: please see clause 3.F.
19
- Government Agency Point of Contact: funit-support@rubyforge.org
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.
20
16
 
21
- 1. DEFINITIONS
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
22
 
23
- A. "Contributor" means Government Agency, as the developer of the
24
- Original Software, and any entity that makes a Modification.
23
+ 1. DEFINITIONS
25
24
 
26
- B. "Covered Patents" mean patent claims licensable by a Contributor
27
- that are necessarily infringed by the use or sale of its Modification
28
- alone or when combined with the Subject Software.
25
+ A. "Contributor" means Government Agency, as the developer of the
26
+ Original Software, and any entity that makes a Modification.
29
27
 
30
- C. "Display" means the showing of a copy of the Subject Software,
31
- either directly or by means of an image, or any other device.
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.
32
31
 
33
- D. "Distribution" means conveyance or transfer of the Subject
34
- Software, regardless of means, to another.
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.
35
34
 
36
- E. "Larger Work" means computer software that combines Subject
37
- Software, or portions thereof, with software separate from the Subject
38
- Software that is not governed by the terms of this Agreement.
35
+ D. "Distribution" means conveyance or transfer of the Subject
36
+ Software, regardless of means, to another.
39
37
 
40
- F. "Modification" means any alteration of, including addition to or
41
- deletion from, the substance or structure of either the Original
42
- Software or Subject Software, and includes derivative works, as that
43
- term is defined in the Copyright Statute, 17 USC 101. However, the
44
- act of including Subject Software as part of a Larger Work does not in
45
- and of itself constitute a Modification.
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.
46
41
 
47
- G. "Original Software" means the computer software first released
48
- under this Agreement by Government Agency with Government Agency
49
- designation NASA and entitled fUnit, including source code,
50
- object code and accompanying documentation, if any.
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.
51
48
 
52
- H. "Recipient" means anyone who acquires the Subject Software under
53
- this Agreement, including all Contributors.
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.
54
53
 
55
- I. "Redistribution" means Distribution of the Subject Software after a
56
- Modification has been made.
54
+ H. "Recipient" means anyone who acquires the Subject Software under
55
+ this Agreement, including all Contributors.
57
56
 
58
- J. "Reproduction" means the making of a counterpart, image or copy of
59
- the Subject Software.
57
+ I. "Redistribution" means Distribution of the Subject Software after a
58
+ Modification has been made.
60
59
 
61
- K. "Sale" means the exchange of the Subject Software for money or
62
- equivalent value.
60
+ J. "Reproduction" means the making of a counterpart, image or copy of
61
+ the Subject Software.
63
62
 
64
- L. "Subject Software" means the Original Software, Modifications, or
65
- any respective parts thereof.
63
+ K. "Sale" means the exchange of the Subject Software for money or
64
+ equivalent value.
66
65
 
67
- M. "Use" means the application or employment of the Subject Software
68
- for any purpose.
66
+ L. "Subject Software" means the Original Software, Modifications, or
67
+ any respective parts thereof.
69
68
 
70
- 2. GRANT OF RIGHTS
69
+ M. "Use" means the application or employment of the Subject Software
70
+ for any purpose.
71
71
 
72
- A. Under Non-Patent Rights: Subject to the terms and conditions of
73
- this Agreement, each Contributor, with respect to its own contribution
74
- to the Subject Software, hereby grants to each Recipient a
75
- non-exclusive, world-wide, royalty-free license to engage in the
76
- following activities pertaining to the Subject Software:
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:
77
79
 
78
80
  1. Use
79
81
  2. Distribution
@@ -82,11 +84,11 @@ following activities pertaining to the Subject Software:
82
84
  5. Redistribution
83
85
  6. Display
84
86
 
85
- B. Under Patent Rights: Subject to the terms and conditions of this
86
- Agreement, each Contributor, with respect to its own contribution to
87
- the Subject Software, hereby grants to each Recipient under Covered
88
- Patents a non-exclusive, world-wide, royalty-free license to engage in
89
- the following activities pertaining to the Subject Software:
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:
90
92
 
91
93
  1. Use
92
94
  2. Distribution
@@ -94,169 +96,169 @@ the following activities pertaining to the Subject Software:
94
96
  4. Sale
95
97
  5. Offer for Sale
96
98
 
97
- C. The rights granted under Paragraph B. also apply to the combination
98
- of a Contributor's Modification and the Subject Software if, at the
99
- time the Modification is added by the Contributor, the addition of
100
- such Modification causes the combination to be covered by the Covered
101
- Patents. It does not apply to any other combinations that include a
102
- Modification.
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.
103
105
 
104
- D. The rights granted in Paragraphs A. and B. allow the Recipient to
105
- sublicense those same rights. Such sublicense must be under the same
106
- terms and conditions of this Agreement.
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.
107
109
 
108
- 3. OBLIGATIONS OF RECIPIENT
110
+ 3. OBLIGATIONS OF RECIPIENT
109
111
 
110
- A. Distribution or Redistribution of the Subject Software must be made
111
- under this Agreement except for additions covered under paragraph 3H.
112
+ A. Distribution or Redistribution of the Subject Software must be made
113
+ under this Agreement except for additions covered under paragraph 3H.
112
114
 
113
- 1. Whenever a Recipient distributes or redistributes the Subject
114
- Software, a copy of this Agreement must be included with each copy
115
- of the Subject Software; and
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
116
118
 
117
- 2. If Recipient distributes or redistributes the Subject Software in
118
- any form other than source code, Recipient must also make the
119
- source code freely available, and must provide with each copy of
120
- the Subject Software information on how to obtain the source code
121
- in a reasonable manner on or through a medium customarily used for
122
- software exchange.
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.
123
125
 
124
- B. Each Recipient must ensure that the following copyright notice
125
- appears prominently in the Subject Software:
126
+ B. Each Recipient must ensure that the following copyright notice
127
+ appears prominently in the Subject Software:
126
128
 
127
129
  Copyright 2006 United States Government as represented by
128
130
  NASA Langley Research Center. No copyright is claimed in
129
131
  the United States under Title 17, U.S. Code. All Other Rights
130
132
  Reserved.
131
133
 
132
- C. Each Contributor must characterize its alteration of the Subject
133
- Software as a Modification and must identify itself as the originator
134
- of its Modification in a manner that reasonably allows subsequent
135
- Recipients to identify the originator of the Modification. In
136
- fulfillment of these requirements, Contributor must include a file
137
- (e.g., a change log file) that describes the alterations made and the
138
- date of the alterations, identifies Contributor as originator of the
139
- alterations, and consents to characterization of the alterations as a
140
- Modification, for example, by including a statement that the
141
- Modification is derived, directly or indirectly, from Original
142
- Software provided by Government Agency. Once consent is granted, it
143
- may not thereafter be revoked.
144
-
145
- D. A Contributor may add its own copyright notice to the Subject
146
- Software. Once a copyright notice has been added to the Subject
147
- Software, a Recipient may not remove it without the express permission
148
- of the Contributor who added the notice.
149
-
150
- E. A Recipient may not make any representation in the Subject Software
151
- or in any promotional, advertising or other material that may be
152
- construed as an endorsement by Government Agency or by any prior
153
- Recipient of any product or service provided by Recipient, or that may
154
- seek to obtain commercial advantage by the fact of Government Agency's
155
- or a prior Recipient's participation in this Agreement.
156
-
157
- F. In an effort to track usage and maintain accurate records of the
158
- Subject Software, each Recipient, upon receipt of the Subject Software,
159
- is requested to provide Government Agency, by e-mail to the Government
160
- Agency Point of Contact listed in clause 5.F., the following information:
161
- name, institution (if applicable), postal code, and country.
162
- Recipient's name and personal information shall be used for statistical
163
- purposes only. Once a Recipient makes a Modification available, it is
164
- requested that the Recipient inform Government Agency, by e-mail to the
165
- Government Agency Point of Contact listed in clause 5.F., how to
166
- access the Modification.
167
-
168
- G. Each Contributor represents that that its Modification is believed
169
- to be Contributor's original creation and does not violate any
170
- existing agreements, regulations, statutes or rules, and further that
171
- Contributor has sufficient rights to grant the rights conveyed by this
172
- Agreement.
173
-
174
- H. A Recipient may choose to offer, and to charge a fee for, warranty,
175
- support, indemnity and/or liability obligations to one or more other
176
- Recipients of the Subject Software. A Recipient may do so, however,
177
- only on its own behalf and not on behalf of Government Agency or any
178
- other Recipient. Such a Recipient must make it absolutely clear that
179
- any such warranty, support, indemnity and/or liability obligation is
180
- offered by that Recipient alone. Further, such Recipient agrees to
181
- indemnify Government Agency and every other Recipient for any
182
- liability incurred by them as a result of warranty, support, indemnity
183
- and/or liability offered by such Recipient.
184
-
185
- I. A Recipient may create a Larger Work by combining Subject Software
186
- with separate software not governed by the terms of this agreement and
187
- distribute the Larger Work as a single product. In such case, the
188
- Recipient must make sure Subject Software, or portions thereof,
189
- included in the Larger Work is subject to this Agreement.
190
-
191
- J. Notwithstanding any provisions contained herein, Recipient is
192
- hereby put on notice that export of any goods or technical data from
193
- the United States may require some form of export license from the
194
- U.S. Government. Failure to obtain necessary export licenses may
195
- result in criminal liability under U.S. laws. Government Agency
196
- neither represents that a license shall not be required nor that, if
197
- required, it shall be issued. Nothing granted herein provides any
198
- such export license.
199
-
200
- 4. DISCLAIMER OF WARRANTIES AND LIABILITIES; WAIVER AND INDEMNIFICATION
201
-
202
- A. No Warranty: THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY
203
- WARRANTY OF ANY KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY,
204
- INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE
205
- WILL CONFORM TO SPECIFICATIONS, ANY IMPLIED WARRANTIES OF
206
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR FREEDOM FROM
207
- INFRINGEMENT, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL BE ERROR
208
- FREE, OR ANY WARRANTY THAT DOCUMENTATION, IF PROVIDED, WILL CONFORM TO
209
- THE SUBJECT SOFTWARE. THIS AGREEMENT DOES NOT, IN ANY MANNER,
210
- CONSTITUTE AN ENDORSEMENT BY GOVERNMENT AGENCY OR ANY PRIOR RECIPIENT
211
- OF ANY RESULTS, RESULTING DESIGNS, HARDWARE, SOFTWARE PRODUCTS OR ANY
212
- OTHER APPLICATIONS RESULTING FROM USE OF THE SUBJECT SOFTWARE.
213
- FURTHER, GOVERNMENT AGENCY DISCLAIMS ALL WARRANTIES AND LIABILITIES
214
- REGARDING THIRD-PARTY SOFTWARE, IF PRESENT IN THE ORIGINAL SOFTWARE,
215
- AND DISTRIBUTES IT "AS IS."
216
-
217
- B. Waiver and Indemnity: RECIPIENT AGREES TO WAIVE ANY AND ALL CLAIMS
218
- AGAINST THE UNITED STATES GOVERNMENT, ITS CONTRACTORS AND
219
- SUBCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF
220
- THE SUBJECT SOFTWARE RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES,
221
- EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM
222
- PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT
223
- SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE UNITED
224
- STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
225
- PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE
226
- REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL
227
- TERMINATION OF THIS AGREEMENT.
228
-
229
-
230
- 5. GENERAL TERMS
231
-
232
- A. Termination: This Agreement and the rights granted hereunder will
233
- terminate automatically if a Recipient fails to comply with these
234
- terms and conditions, and fails to cure such noncompliance within
235
- thirty (30) days of becoming aware of such noncompliance. Upon
236
- termination, a Recipient agrees to immediately cease use and
237
- distribution of the Subject Software. All sublicenses to the Subject
238
- Software properly granted by the breaching Recipient shall survive any
239
- such termination of this Agreement.
240
-
241
- B. Severability: If any provision of this Agreement is invalid or
242
- unenforceable under applicable law, it shall not affect the validity
243
- or enforceability of the remainder of the terms of this Agreement.
244
-
245
- C. Applicable Law: This Agreement shall be subject to United States
246
- federal law only for all purposes, including, but not limited to,
247
- determining the validity of this Agreement, the meaning of its
248
- provisions and the rights, obligations and remedies of the parties.
249
-
250
- D. Entire Understanding: This Agreement constitutes the entire
251
- understanding and agreement of the parties relating to release of the
252
- Subject Software and may not be superseded, modified or amended except
253
- by further written agreement duly executed by the parties.
254
-
255
- E. Binding Authority: By accepting and using the Subject Software
256
- under this Agreement, a Recipient affirms its authority to bind the
257
- Recipient to all terms and conditions of this Agreement and that that
258
- Recipient hereby agrees to all terms and conditions herein.
259
-
260
- F. Point of Contact: Any Recipient contact with Government Agency is
261
- to be directed to the designated representative as follows:
262
- funit-support@rubyforge.org.
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
+
232
+ 5. GENERAL TERMS
233
+
234
+ A. Termination: This Agreement and the rights granted hereunder will
235
+ terminate automatically if a Recipient fails to comply with these
236
+ terms and conditions, and fails to cure such noncompliance within
237
+ thirty (30) days of becoming aware of such noncompliance. Upon
238
+ termination, a Recipient agrees to immediately cease use and
239
+ distribution of the Subject Software. All sublicenses to the Subject
240
+ Software properly granted by the breaching Recipient shall survive any
241
+ such termination of this Agreement.
242
+
243
+ B. Severability: If any provision of this Agreement is invalid or
244
+ unenforceable under applicable law, it shall not affect the validity
245
+ or enforceability of the remainder of the terms of this Agreement.
246
+
247
+ C. Applicable Law: This Agreement shall be subject to United States
248
+ federal law only for all purposes, including, but not limited to,
249
+ determining the validity of this Agreement, the meaning of its
250
+ provisions and the rights, obligations and remedies of the parties.
251
+
252
+ D. Entire Understanding: This Agreement constitutes the entire
253
+ understanding and agreement of the parties relating to release of the
254
+ Subject Software and may not be superseded, modified or amended except
255
+ by further written agreement duly executed by the parties.
256
+
257
+ E. Binding Authority: By accepting and using the Subject Software
258
+ under this Agreement, a Recipient affirms its authority to bind the
259
+ Recipient to all terms and conditions of this Agreement and that that
260
+ Recipient hereby agrees to all terms and conditions herein.
261
+
262
+ F. Point of Contact: Any Recipient contact with Government Agency is
263
+ to be directed to the designated representative as follows:
264
+ funit-support@rubyforge.org.
data/README CHANGED
@@ -1,27 +1,132 @@
1
1
  = FUnit: a Fortran Unit Testing Framework
2
2
 
3
- FUnit is a unit testing framework for Fortran modules.
3
+ FUnit is a {unit testing}[http://en.wikipedia.org/wiki/Unit_testing]
4
+ framework for Fortran modules.
5
+
4
6
  Unit tests are written in Fortran fragments that use a small
5
- set of testing-specific extensions. FUnit transforms these
6
- fragments into valid Fortran code and compiles,
7
- links, and runs them against the module under test.
8
-
9
- == Prerequisites
7
+ set of testing-specific keywords and functions. FUnit transforms
8
+ these fragments into valid Fortran code and compiles, links, and
9
+ runs them against the module under test.
10
+
11
+ FUnit is
12
+ {opinionated software}[http://www.oreillynet.com/pub/a/network/2005/08/30/ruby-rails-david-heinemeier-hansson.html]
13
+ which values convention over configuration.
14
+ Specifically, fUnit requires a Fortran 95 compiler,
15
+ it only supports testing routines contained in modules,
16
+ it requires tests to be stored along side the code under test,
17
+ and it requires that you follow a specific naming rule
18
+ for test files.
19
+
20
+ * Documentation: http://funit.rubyforge.org
21
+ * Project Page: http://rubyforge.org/projects/funit
22
+
23
+ == Requirements
10
24
 
11
25
  1. A Fortran 90/95/2003 compiler (set via F9X environment variable)
12
- 2. {The Ruby language}[http://www.ruby-lang.org/]
13
- 3. {RubyGems package manager}[http://rubyforge.org/projects/rubygems/]
26
+ 2. {The Ruby language}[http://www.ruby-lang.org/] with the
27
+ {RubyGems package manager}[http://rubyforge.org/projects/rubygems/]
14
28
 
15
29
  == Installation
16
30
 
17
31
  gem install funit
18
32
 
33
+ == Example
34
+
35
+ Suppose you have a module in <tt>gas_physics.f90</tt> that
36
+ contains a routine that returns viscosity as a function of
37
+ temperature,
38
+
39
+ module gas_physics
40
+ ..
41
+ contains
42
+ ..
43
+ function viscosity(temperature)
44
+ real :: viscosity, temperature
45
+ viscosity = 2.0e-3 * temperature**1.5
46
+ end function
47
+ ..
48
+ end module
49
+
50
+ The tests of this module would be contained in <tt>gas_physicsMT.ftk</tt>,
51
+ and might contain a test like,
52
+
53
+ ..
54
+ beginTest viscosity_varies_as_temperature
55
+ IsRealEqual( 0.0, viscosity(0.0) )
56
+ IsEqualWithin( 0.7071, viscosity(50.0), 1e-3 )
57
+ endTest
58
+ ..
59
+
60
+ This brief fragment is all you need, the framework provides
61
+ the rest of the trappings to turn this into valid Fortran code.
62
+
63
+ You would run the tests for the <tt>gas_physics</tt> module
64
+ with the command,
65
+
66
+ funit gas_physics
67
+
68
+ which would transform your fragments contained in <tt>gas_physicsMT.ftk</tt>
69
+ into valid Fortran code, create a test runner program, compile everything,
70
+ and run the tests. A sample output would look like,
71
+
72
+ parsing gas_physicsMT.ftk
73
+ computing dependencies
74
+ locating associated source files and sorting for compilation
75
+ g95 -o TestRunner
76
+ gas_physics.f90 \
77
+ gas_physicsMT.f90 \
78
+ TestRunner.f90
79
+
80
+ gas_physics test suite:
81
+ Passed 2 of 2 possible asserts comprising 1 of 1 tests.
82
+
83
+ == Support
84
+
85
+ Send email to funit-support@rubyforge.org or submit a request
86
+ through http://rubyforge.org/tracker/?group_id=1416.
87
+
88
+ == License
89
+
90
+ FUnit is released under the NASA Open Source Agreement, which
91
+ requests registration. If you would like to register, send
92
+ an email to funit-support@rubyforge.org with your name, institution
93
+ (if applicable), city, postal code, and country.
94
+ See COPYING[http://funit.rubyforge.org/files/COPYING.html] for details.
95
+
96
+ == A Brief History
97
+
98
+ On October 4, 2001, Mike Hill (then of
99
+ {Object Mentor}[http://www.objectmentor.com/], now of
100
+ {Industrial Logic}[http://www.industriallogic.com])
101
+ visited NASA Langley Research Center in Hampton, Virginia
102
+ and gave a test-first design talk at Institute for Computer
103
+ and Applied Sciences and Engineering (ICASE). Copies of his
104
+ slides are available at
105
+ {icase.edu/series/MPP}[http://www.icase.edu/series/MPP/].
106
+
107
+ Mike spent the afternoon with Bil Kleb, Bill Wood, Karen Bibb,
108
+ and Mike Park reasoning out how we might create a testing framework
109
+ for Fortran 90 to use during FUN3D[http://fun3d.larc.nasa.gov]
110
+ code development. By the end of the afternoon we had a working
111
+ protoype based on the macro expansion techniques employed in
112
+ Mike Hill's cpptestkit[http://sourceforge.net/projects/cpptestkit].
113
+ We quickly found C-preprocessor macros to be to restrictive and
114
+ rewrote the framework in Ruby[http:www.ruby-lang.org].
115
+
19
116
  == To Do
20
117
 
21
- * Make tests so that they fail gracefully if Fortran compiler not found.
22
- * Work out RubyGEM packaging kinks.
23
- * Change from CamelCase to snake_case.
118
+ * Make tests fail gracefully if Fortran compiler is not found.
119
+ * Complete migration rom CamelCase to snake_case for methods and variables.
24
120
  * Use 'test' keyword instead of 'beginTest' business.
121
+ * Don't add to test name during translation to avoid 32 character limit trouble.
122
+ * Rename assertions to more consistent with other xUnits.
123
+ * Add assertions to capture stops and warning messages.
25
124
  * Clean up documentation.
26
125
  * To increase portability, create a single, stand-alone executable with
27
126
  Erik Veenstra's RubyScript2Exe[http://www.erikveen.dds.nl/rubyscript2exe/].
127
+ * Use a makefile instead of a single, ordered command line for compilation.
128
+ * 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>.