fUnit 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/{LICENSE → COPYING} +21 -21
- data/README +26 -2
- data/Rakefile +97 -0
- data/docs/html/classes/Funit.html +390 -0
- data/docs/html/classes/Funit/Assertions.html +285 -0
- data/docs/html/classes/Funit/Compiler.html +160 -0
- data/docs/html/classes/Funit/Depend.html +441 -0
- data/docs/html/classes/Funit/TestSuite.html +417 -0
- data/docs/html/created.rid +1 -0
- data/docs/html/files/COPYING.html +563 -0
- data/docs/html/files/README.html +151 -0
- data/docs/html/files/lib/funit/assertions_rb.html +101 -0
- data/docs/html/files/lib/funit/fortran_deps_rb.html +107 -0
- data/docs/html/files/lib/funit/functions_rb.html +101 -0
- data/docs/html/files/lib/funit/test_suite_rb.html +101 -0
- data/docs/html/files/lib/funit_rb.html +111 -0
- data/docs/html/fr_class_index.html +31 -0
- data/docs/html/fr_file_index.html +33 -0
- data/docs/html/fr_method_index.html +59 -0
- data/docs/html/index.html +24 -0
- data/docs/html/rdoc-style.css +208 -0
- data/examples/CFD/FluxFunctions.f90 +35 -0
- data/examples/CFD/FluxFunctionsMT.f90 +336 -0
- data/examples/CFD/FluxFunctionsMT.ftk +49 -0
- data/examples/CFD/Gammas.f90 +8 -0
- data/examples/CFD/GasModel.f90 +17 -0
- data/examples/CFD/GasModelMT.f90 +173 -0
- data/examples/CFD/GasModelMT.ftk +22 -0
- data/examples/CFD/TestRunner +0 -0
- data/examples/CFD/TestRunner.f90 +23 -0
- data/examples/CFD/fluxfunctions.mod +45 -0
- data/examples/CFD/gammas.mod +20 -0
- data/examples/CFD/gasmodel.mod +30 -0
- data/examples/CFD/gasmodelmt.mod +27 -0
- data/examples/StopWatch/StopWatch.f90 +50 -0
- data/examples/StopWatch/StopWatchMT.f90 +343 -0
- data/examples/StopWatch/StopWatchMT.ftk +73 -0
- data/examples/StopWatch/TestRunner +0 -0
- data/examples/StopWatch/TestRunner.f90 +23 -0
- data/examples/StopWatch/stopwatch.mod +34 -0
- data/examples/StopWatch/stopwatchmt.mod +27 -0
- data/lib/funit.rb +1 -6
- data/lib/funit/fortran_deps.rb +112 -0
- data/lib/funit/functions.rb +2 -5
- data/tests/tc_fortran_deps.rb +2 -2
- metadata +73 -22
- data/INSTALL +0 -19
- data/lib/fortran_deps.rb +0 -109
@@ -0,0 +1,73 @@
|
|
1
|
+
integer, dimension(8) :: dateAndTime1, dateAndTime2
|
2
|
+
real :: seconds
|
3
|
+
|
4
|
+
beginSetup
|
5
|
+
NotInitialized = .TRUE.
|
6
|
+
last = 0
|
7
|
+
seconds = HUGE(0.0)
|
8
|
+
endSetup
|
9
|
+
|
10
|
+
beginTest SystemDateAndTimeWorks
|
11
|
+
call date_and_time(values=dateAndTime1)
|
12
|
+
IsTrue( dateAndTime1(1) /= -huge(0) )
|
13
|
+
IsTrue( size(dateAndTime1,1) == 8 )
|
14
|
+
endTest
|
15
|
+
|
16
|
+
! test secBetween
|
17
|
+
beginTest OneMSecDifference
|
18
|
+
dateAndTime1 = (/ 2000, 1, 1, 0, 0, 0, 0, 0 /)
|
19
|
+
dateAndTime2 = (/ 2000, 1, 1, 0, 0, 0, 0, 1 /)
|
20
|
+
seconds = SecBetween(dateAndTime1, dateAndTime2)
|
21
|
+
IsRealEqual(seconds, 0.001)
|
22
|
+
endTest
|
23
|
+
|
24
|
+
beginTest MinuteRollover
|
25
|
+
dateAndTime1 = (/ 2000, 1, 1, 0, 0, 0,59, 0 /)
|
26
|
+
dateAndTime2 = (/ 2000, 1, 1, 0, 0, 1, 0, 0 /)
|
27
|
+
seconds = SecBetween(dateAndTime1, dateAndTime2)
|
28
|
+
IsRealEqual(seconds, 1.0)
|
29
|
+
endTest
|
30
|
+
|
31
|
+
! test secSinceLast
|
32
|
+
beginTest InitializationState
|
33
|
+
IsTrue(notInitialized)
|
34
|
+
seconds = secSinceLast()
|
35
|
+
IsFalse(notInitialized)
|
36
|
+
seconds = secSinceLast()
|
37
|
+
IsFalse(notInitialized)
|
38
|
+
endTest
|
39
|
+
|
40
|
+
beginTest InitiallyReturnsZero
|
41
|
+
seconds = secSinceLast()
|
42
|
+
IsRealEqual(seconds, 0.0)
|
43
|
+
call timeDelay(seconds)
|
44
|
+
seconds = secSinceLast()
|
45
|
+
IsTrue( seconds /= 0.0 )
|
46
|
+
endTest
|
47
|
+
|
48
|
+
subroutine timeDelay (sum)
|
49
|
+
integer :: i
|
50
|
+
real :: sum
|
51
|
+
do i = 1, 1000000
|
52
|
+
sum = sum + i
|
53
|
+
enddo
|
54
|
+
end subroutine timeDelay
|
55
|
+
|
56
|
+
beginTest ComputesSeconds
|
57
|
+
seconds = secSinceLast()
|
58
|
+
call timeDelay (seconds)
|
59
|
+
seconds = secSinceLast()
|
60
|
+
IsTrue( seconds > 0.0 )
|
61
|
+
endTest
|
62
|
+
|
63
|
+
beginTest ComputesSecondsSpecial
|
64
|
+
real :: expectedSeconds
|
65
|
+
|
66
|
+
seconds = secSinceLast()
|
67
|
+
dateAndTime1 = last
|
68
|
+
call timeDelay (seconds)
|
69
|
+
seconds = secSinceLast()
|
70
|
+
dateAndTime2 = last
|
71
|
+
expectedSeconds = secBetween(dateAndTime1,dateAndTime2)
|
72
|
+
IsRealEqual(seconds, expectedSeconds)
|
73
|
+
endTest
|
Binary file
|
@@ -0,0 +1,23 @@
|
|
1
|
+
! TestRunner.f90 - runs Fortran mobility test suites
|
2
|
+
!
|
3
|
+
! [Dynamically generated by funit Ruby script Sun Apr 09 01:07:09 EDT 2006.]
|
4
|
+
|
5
|
+
program TestRunner
|
6
|
+
|
7
|
+
use StopWatchMT
|
8
|
+
|
9
|
+
implicit none
|
10
|
+
|
11
|
+
integer :: numTests, numAsserts, numAssertsTested, numFailures
|
12
|
+
|
13
|
+
print *, ""
|
14
|
+
print *, "StopWatch test suite:"
|
15
|
+
call MTStopWatch( numTests, &
|
16
|
+
numAsserts, numAssertsTested, numFailures )
|
17
|
+
print *, "Passed", numAssertsTested, "of", numAsserts, &
|
18
|
+
"possible asserts comprising", &
|
19
|
+
numTests-numFailures, "of", numTests, "tests."
|
20
|
+
|
21
|
+
print *, ""
|
22
|
+
|
23
|
+
end program TestRunner
|
@@ -0,0 +1,34 @@
|
|
1
|
+
G95 module created on Sun Apr 9 01:07:09 2006 from ./StopWatch.f90
|
2
|
+
If you edit this, you'll get what you deserve.
|
3
|
+
|
4
|
+
(() () () () () () () () () () () () () () () () () () () () ())
|
5
|
+
|
6
|
+
()
|
7
|
+
|
8
|
+
()
|
9
|
+
|
10
|
+
()
|
11
|
+
|
12
|
+
()
|
13
|
+
|
14
|
+
(2 'secbetween' 'stopwatch' 1 ((PROCEDURE UNKNOWN MODULE-PROC DECL
|
15
|
+
FUNCTION) (REAL 4 ()) 0 0 (3 NONE 4 NONE) () '' () ())
|
16
|
+
5 'secsincelast' 'stopwatch' 1 ((PROCEDURE UNKNOWN MODULE-PROC DECL
|
17
|
+
FUNCTION) (REAL 4 ()) 0 0 () () '' () ())
|
18
|
+
6 'stopwatch' 'stopwatch' 1 ((MODULE UNKNOWN UNKNOWN UNKNOWN) (UNKNOWN 0
|
19
|
+
()) 0 0 () () '' () ())
|
20
|
+
7 'notinitialized' 'stopwatch' 1 ((VARIABLE UNKNOWN UNKNOWN UNKNOWN) (
|
21
|
+
LOGICAL 4 ()) 0 0 () () '' () ())
|
22
|
+
8 'last' 'stopwatch' 1 ((VARIABLE UNKNOWN UNKNOWN UNKNOWN DIMENSION) (
|
23
|
+
INTEGER 4 ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 ()) 0 '1') (
|
24
|
+
CONSTANT (INTEGER 4 ()) 0 '8')) '' () ())
|
25
|
+
3 'begindnt' '' 9 ((VARIABLE IN UNKNOWN UNKNOWN DIMENSION DUMMY) (
|
26
|
+
INTEGER 4 ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 ()) 0 '1') (
|
27
|
+
CONSTANT (INTEGER 4 ()) 0 '8')) '' () ())
|
28
|
+
4 'enddnt' '' 9 ((VARIABLE IN UNKNOWN UNKNOWN DIMENSION DUMMY) (INTEGER
|
29
|
+
4 ()) 0 0 () (1 EXPLICIT (CONSTANT (INTEGER 4 ()) 0 '1') (CONSTANT (
|
30
|
+
INTEGER 4 ()) 0 '8')) '' () ())
|
31
|
+
)
|
32
|
+
|
33
|
+
('last' 0 8 'notinitialized' 0 7 'stopwatch' 0 6 'secsincelast' 0 5
|
34
|
+
'secbetween' 0 2)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
G95 module created on Sun Apr 9 01:07:09 2006 from ./StopWatchMT.f90
|
2
|
+
If you edit this, you'll get what you deserve.
|
3
|
+
|
4
|
+
(() () () () () () () () () () () () () () () () () () () () ())
|
5
|
+
|
6
|
+
()
|
7
|
+
|
8
|
+
()
|
9
|
+
|
10
|
+
()
|
11
|
+
|
12
|
+
()
|
13
|
+
|
14
|
+
(2 'mtstopwatch' 'stopwatchmt' 1 ((PROCEDURE UNKNOWN MODULE-PROC DECL
|
15
|
+
SUBROUTINE) (PROCEDURE 0 ()) 0 0 (3 NONE 4 NONE 5 NONE 6 NONE) () '' ()
|
16
|
+
())
|
17
|
+
3 'ntests' '' 7 ((VARIABLE UNKNOWN UNKNOWN UNKNOWN DUMMY) (INTEGER 4 ())
|
18
|
+
0 0 () () '' () ())
|
19
|
+
4 'nasserts' '' 7 ((VARIABLE UNKNOWN UNKNOWN UNKNOWN DUMMY) (INTEGER 4 ())
|
20
|
+
0 0 () () '' () ())
|
21
|
+
6 'nfailures' '' 7 ((VARIABLE UNKNOWN UNKNOWN UNKNOWN DUMMY) (INTEGER 4
|
22
|
+
()) 0 0 () () '' () ())
|
23
|
+
5 'nassertstested' '' 7 ((VARIABLE UNKNOWN UNKNOWN UNKNOWN DUMMY) (
|
24
|
+
INTEGER 4 ()) 0 0 () () '' () ())
|
25
|
+
)
|
26
|
+
|
27
|
+
('mtstopwatch' 0 2)
|
data/lib/funit.rb
CHANGED
@@ -1,17 +1,14 @@
|
|
1
1
|
require 'funit/functions'
|
2
|
+
require 'funit/fortran_deps'
|
2
3
|
require 'funit/assertions'
|
3
4
|
require 'funit/test_suite'
|
4
5
|
|
5
6
|
module Funit
|
6
|
-
|
7
7
|
def runAllFtks
|
8
|
-
|
9
8
|
Compiler.new # a test for compiler env set (remove this later)
|
10
|
-
|
11
9
|
writeTestRunner(testSuites = parseCommandLine)
|
12
10
|
|
13
11
|
# convert each *MT.ftk file into a pure Fortran9x file:
|
14
|
-
|
15
12
|
testSuites.each do |testSuite|
|
16
13
|
testSuiteF90 = TestSuite.new(testSuite)
|
17
14
|
end
|
@@ -19,7 +16,5 @@ module Funit
|
|
19
16
|
compileTests testSuites
|
20
17
|
|
21
18
|
raise "Failed to execute TestRunner" unless system("./TestRunner")
|
22
|
-
|
23
19
|
end
|
24
|
-
|
25
20
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
# This scripts finds dependencies for f90 code
|
2
|
+
|
3
|
+
raise "Need Ruby version >= 1.8, current using #{VERSION}" unless String.instance_methods.include? "match"
|
4
|
+
|
5
|
+
module Funit
|
6
|
+
|
7
|
+
class Depend
|
8
|
+
|
9
|
+
attr_reader :file_dependencies, :source_files
|
10
|
+
|
11
|
+
def initialize( searchPath = %w[ ../lib . ] )
|
12
|
+
@parsed = Array.new
|
13
|
+
@hash = build_hash_of_modules_in_files_within searchPath
|
14
|
+
@file_dependencies = Hash.new
|
15
|
+
@source_files = Array.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def modules_used_in( file )
|
19
|
+
modules = IO.readlines( file ).map do |line|
|
20
|
+
$1.downcase if line.match( /^\s*use\s+(\w+)/i )
|
21
|
+
end.uniq.compact
|
22
|
+
end
|
23
|
+
|
24
|
+
def modules_defined_in( file )
|
25
|
+
modules = IO.readlines( file ).map do |line|
|
26
|
+
$1.downcase if line.match( /^\s*module\s+(\w+)/i )
|
27
|
+
end.uniq.compact
|
28
|
+
end
|
29
|
+
|
30
|
+
def build_dictionary_of_modules_in( files )
|
31
|
+
file_containing_module = Hash.new
|
32
|
+
files.each do |file|
|
33
|
+
modules_defined_in( file ).each{ |mod| file_containing_module[mod]=file }
|
34
|
+
end
|
35
|
+
file_containing_module
|
36
|
+
end
|
37
|
+
|
38
|
+
def fortran_files_within( search_path = %w[ ../lib . ] )
|
39
|
+
source = search_path.map{ |path| Dir[path+"/*.[fF]90"] }
|
40
|
+
source.flatten!.uniq!
|
41
|
+
source.delete_if{ |file| File.lstat(file).symlink? }
|
42
|
+
source.delete_if{ |file| file.match(/lmpi_module_template.F90/) }
|
43
|
+
end
|
44
|
+
|
45
|
+
def build_hash_of_modules_in_files_within( searchPath = %w[../lib .] )
|
46
|
+
build_dictionary_of_modules_in( fortran_files_within( searchPath ) )
|
47
|
+
end
|
48
|
+
|
49
|
+
def makefile_dependency_line( source )
|
50
|
+
realSource = source.sub(/PHYSICS_DUMMY/,'PHYSICS_MODULES')# What's this?
|
51
|
+
sourceNoPath = File.basename source
|
52
|
+
@source_files.push sourceNoPath.gsub(%r|^.*/|,'')
|
53
|
+
output = ''
|
54
|
+
if (File.expand_path(source) != File.expand_path(sourceNoPath))
|
55
|
+
output += sourceNoPath+ ": " + realSource + "\n"
|
56
|
+
output += "\tln -sf "+realSource+" .\n"
|
57
|
+
end
|
58
|
+
output += source.gsub(/\.(f|F)90$/, ".o").gsub(%r|^.*/|,"" ) +
|
59
|
+
": " + source.gsub(%r|^.*/|,"" )
|
60
|
+
modules_used_in( source ).each do |use|
|
61
|
+
unless @hash[use]
|
62
|
+
unless ( use=~/f90_unix/ || use=~/nas_system/ )
|
63
|
+
$stderr.puts "Warning: unable to locate module #{use} used in #{source}." if $DEBUG
|
64
|
+
end
|
65
|
+
next
|
66
|
+
end
|
67
|
+
output = output + " \\\n " +
|
68
|
+
@hash[use].gsub(/\.(f|F)90$/, ".o").gsub(%r|^.*/|,"" )
|
69
|
+
end
|
70
|
+
output+"\n"
|
71
|
+
end
|
72
|
+
|
73
|
+
def dependencies( start )
|
74
|
+
modules = modules_used_in( start )
|
75
|
+
@parsed = @parsed || [start]
|
76
|
+
newSourceFiles = modules.collect{ |mod| @hash[mod] }.compact
|
77
|
+
makefile_dependency_line(start) +
|
78
|
+
newSourceFiles.collect do |file|
|
79
|
+
next if @parsed.include?(file)
|
80
|
+
@parsed.push file
|
81
|
+
dependencies file
|
82
|
+
end.to_s
|
83
|
+
end
|
84
|
+
|
85
|
+
def source_file_dependencies( head_f90 )
|
86
|
+
modules_head_uses = modules_used_in( head_f90 )
|
87
|
+
required_f90s = modules_head_uses.map{ |mod| @hash[mod] }.compact
|
88
|
+
@file_dependencies[head_f90] = required_f90s
|
89
|
+
required_f90s.each do |required_f90|
|
90
|
+
next if @parsed.include?(required_f90)
|
91
|
+
source_file_dependencies( required_f90 )
|
92
|
+
end
|
93
|
+
@parsed.push head_f90
|
94
|
+
end
|
95
|
+
|
96
|
+
def required_source_files( head_f90 )
|
97
|
+
@parsed.clear
|
98
|
+
source_file_dependencies( head_f90 )
|
99
|
+
sources = Array.new
|
100
|
+
while !@file_dependencies.empty? do
|
101
|
+
no_dependents_pair = @file_dependencies.detect{ |h,d| d == [] }
|
102
|
+
no_dependents = no_dependents_pair.first
|
103
|
+
sources.push no_dependents
|
104
|
+
@file_dependencies.delete(no_dependents){ |el| "#{el} not found" }
|
105
|
+
@file_dependencies.each_value{ |deps| deps.delete(no_dependents) }
|
106
|
+
end
|
107
|
+
sources
|
108
|
+
end
|
109
|
+
|
110
|
+
end # class
|
111
|
+
|
112
|
+
end # module
|
data/lib/funit/functions.rb
CHANGED
@@ -17,7 +17,7 @@ Fortran compiler environment variable 'F9X' not set:
|
|
17
17
|
raise(errorMessage) unless @name = name
|
18
18
|
end
|
19
19
|
|
20
|
-
end
|
20
|
+
end # class
|
21
21
|
|
22
22
|
def requestedModules(moduleNames)
|
23
23
|
if (moduleNames.empty?)
|
@@ -104,8 +104,6 @@ program TestRunner
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def compileTests testSuites
|
107
|
-
require 'fortran_deps'
|
108
|
-
|
109
107
|
puts "computing dependencies"
|
110
108
|
dependencies = Depend.new(['.', '../LibF90', '../PHYSICS_DEPS'])
|
111
109
|
puts "locating associated source files and sorting for compilation"
|
@@ -114,11 +112,10 @@ program TestRunner
|
|
114
112
|
puts compile = "#{ENV['F9X']} #{ENV['F9X_LDFLAGS']} -o TestRunner \\\n #{requiredSources.join(" \\\n ")}"
|
115
113
|
|
116
114
|
raise "Compile failed." unless system(compile)
|
117
|
-
|
118
115
|
end
|
119
116
|
|
120
117
|
# set some regular expressions:
|
121
118
|
$keyword = /(begin|end)(Setup|Teardown|Test)|Is(RealEqual|Equal|False|True|EqualWithin)\(.*\)/i
|
122
119
|
$commentLine = /^\s*!/
|
123
120
|
|
124
|
-
end # module
|
121
|
+
end # module
|
data/tests/tc_fortran_deps.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
$:.unshift File.join( File.dirname(__FILE__), '..', 'lib' )
|
2
2
|
require 'test/unit'
|
3
|
-
require 'fortran_deps'
|
3
|
+
require 'funit/fortran_deps'
|
4
4
|
require 'fileutils'
|
5
5
|
|
6
6
|
class TestFortranDeps < Test::Unit::TestCase
|
@@ -30,7 +30,7 @@ class TestFortranDeps < Test::Unit::TestCase
|
|
30
30
|
File.open('externalUse.f90','w') do |f|
|
31
31
|
f.puts "program user\nuse cantFindModule\nend program"
|
32
32
|
end
|
33
|
-
@dep = Depend.new
|
33
|
+
@dep = Funit::Depend.new
|
34
34
|
end
|
35
35
|
|
36
36
|
def test_finds_which_modules_a_source_file_uses
|
metadata
CHANGED
@@ -3,15 +3,18 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: fUnit
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2006-04-
|
6
|
+
version: 0.0.2
|
7
|
+
date: 2006-04-09 00:00:00 -04:00
|
8
8
|
summary: A Fortran Unit Testing Framework
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
email: funit-support@rubyforge.org
|
12
12
|
homepage: http://funit.rubyforge.org/
|
13
13
|
rubyforge_project: funit
|
14
|
-
description:
|
14
|
+
description: "FUnit is a unit testing framework for Fortran modules. Unit tests are written in
|
15
|
+
Fortran fragments that use a small set of testing-specific extensions. FUnit
|
16
|
+
transforms these fragments into valid Fortran code and compiles, links, and runs
|
17
|
+
them against the module under test."
|
15
18
|
autorequire: funit
|
16
19
|
default_executable:
|
17
20
|
bindir: bin
|
@@ -29,23 +32,37 @@ cert_chain:
|
|
29
32
|
authors:
|
30
33
|
- fUnit Team
|
31
34
|
files:
|
35
|
+
- COPYING
|
36
|
+
- Rakefile
|
37
|
+
- README
|
32
38
|
- bin/funit
|
33
|
-
- tests/tc_compile.rb
|
34
|
-
- tests/tc_fortran_deps.rb
|
35
|
-
- tests/tc_funit.rb
|
36
|
-
- tests/tc_test_suite.rb
|
37
|
-
- tests/ts_funit.rb
|
38
|
-
- lib/clean
|
39
|
-
- lib/fortran_deps.rb
|
40
|
-
- lib/funit
|
41
|
-
- lib/funit.rb
|
42
|
-
- lib/mklinks
|
43
|
-
- lib/funit/assertions.rb
|
44
|
-
- lib/funit/functions.rb
|
45
|
-
- lib/funit/test_suite.rb
|
46
39
|
- docs/HISTORY
|
40
|
+
- docs/html
|
47
41
|
- docs/spiel
|
48
42
|
- docs/why
|
43
|
+
- docs/html/classes
|
44
|
+
- docs/html/created.rid
|
45
|
+
- docs/html/files
|
46
|
+
- docs/html/fr_class_index.html
|
47
|
+
- docs/html/fr_file_index.html
|
48
|
+
- docs/html/fr_method_index.html
|
49
|
+
- docs/html/index.html
|
50
|
+
- docs/html/rdoc-style.css
|
51
|
+
- docs/html/classes/Funit
|
52
|
+
- docs/html/classes/Funit.html
|
53
|
+
- docs/html/classes/Funit/Assertions.html
|
54
|
+
- docs/html/classes/Funit/Compiler.html
|
55
|
+
- docs/html/classes/Funit/Depend.html
|
56
|
+
- docs/html/classes/Funit/TestSuite.html
|
57
|
+
- docs/html/files/COPYING.html
|
58
|
+
- docs/html/files/lib
|
59
|
+
- docs/html/files/README.html
|
60
|
+
- docs/html/files/lib/funit
|
61
|
+
- docs/html/files/lib/funit_rb.html
|
62
|
+
- docs/html/files/lib/funit/assertions_rb.html
|
63
|
+
- docs/html/files/lib/funit/fortran_deps_rb.html
|
64
|
+
- docs/html/files/lib/funit/functions_rb.html
|
65
|
+
- docs/html/files/lib/funit/test_suite_rb.html
|
49
66
|
- docs/spiel/slides.tex
|
50
67
|
- docs/why/F90testRun
|
51
68
|
- docs/why/F90testRun.ps
|
@@ -68,16 +85,50 @@ files:
|
|
68
85
|
- docs/why/portrait
|
69
86
|
- docs/why/TestRunner.f90
|
70
87
|
- docs/why/TestRunner.f90.ps
|
71
|
-
-
|
72
|
-
-
|
73
|
-
-
|
88
|
+
- examples/CFD
|
89
|
+
- examples/StopWatch
|
90
|
+
- examples/CFD/FluxFunctions.f90
|
91
|
+
- examples/CFD/fluxfunctions.mod
|
92
|
+
- examples/CFD/FluxFunctionsMT.f90
|
93
|
+
- examples/CFD/FluxFunctionsMT.ftk
|
94
|
+
- examples/CFD/Gammas.f90
|
95
|
+
- examples/CFD/gammas.mod
|
96
|
+
- examples/CFD/GasModel.f90
|
97
|
+
- examples/CFD/gasmodel.mod
|
98
|
+
- examples/CFD/GasModelMT.f90
|
99
|
+
- examples/CFD/GasModelMT.ftk
|
100
|
+
- examples/CFD/gasmodelmt.mod
|
101
|
+
- examples/CFD/TestRunner
|
102
|
+
- examples/CFD/TestRunner.f90
|
103
|
+
- examples/StopWatch/StopWatch.f90
|
104
|
+
- examples/StopWatch/stopwatch.mod
|
105
|
+
- examples/StopWatch/StopWatchMT.f90
|
106
|
+
- examples/StopWatch/StopWatchMT.ftk
|
107
|
+
- examples/StopWatch/stopwatchmt.mod
|
108
|
+
- examples/StopWatch/TestRunner
|
109
|
+
- examples/StopWatch/TestRunner.f90
|
110
|
+
- lib/clean
|
111
|
+
- lib/funit
|
112
|
+
- lib/funit.rb
|
113
|
+
- lib/mklinks
|
114
|
+
- lib/funit/assertions.rb
|
115
|
+
- lib/funit/fortran_deps.rb
|
116
|
+
- lib/funit/functions.rb
|
117
|
+
- lib/funit/test_suite.rb
|
118
|
+
- tests/tc_compile.rb
|
119
|
+
- tests/tc_fortran_deps.rb
|
120
|
+
- tests/tc_funit.rb
|
121
|
+
- tests/tc_test_suite.rb
|
122
|
+
- tests/ts_funit.rb
|
74
123
|
test_files:
|
75
124
|
- tests/ts_funit.rb
|
76
|
-
rdoc_options:
|
125
|
+
rdoc_options:
|
126
|
+
- "--inline-source"
|
127
|
+
- "--main"
|
128
|
+
- README
|
77
129
|
extra_rdoc_files:
|
78
130
|
- README
|
79
|
-
-
|
80
|
-
- INSTALL
|
131
|
+
- COPYING
|
81
132
|
executables:
|
82
133
|
- funit
|
83
134
|
extensions: []
|