funit 0.10.2 → 0.10.3

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.
@@ -1,3 +1,11 @@
1
+ === 0.10.3 / 2009-10-05
2
+
3
+ * 1 minor enhancement
4
+ * Allow --source to accept multiple directories
5
+ * 1 bug fix
6
+ * Make funit's setup and teardown subroutine names unique to avoid
7
+ collision with same routine names in module under test.
8
+
1
9
  === 0.10.2 / 2008-03-30
2
10
 
3
11
  * 2 bug fixes
data/README.txt CHANGED
@@ -1,7 +1,8 @@
1
- FUnit
1
+ = FUnit
2
2
 
3
3
  * http://rubyforge.org/projects/nasarb
4
- * http://nasarb.rubyforge.org
4
+ * http://nasarb.rubyforge.org/funit
5
+ * mailto:nasarb-developers@rubyforge.org
5
6
 
6
7
  == DESCRIPTION:
7
8
 
@@ -112,10 +113,10 @@ rewrote the framework in Ruby[http://www.ruby-lang.org].
112
113
 
113
114
  == TODO:
114
115
 
115
- * To avoid Fortran's 32-character limit, don't add test name during translation.
116
+ * To avoid Fortran's 32-character limit, don't add test name during translation
117
+ or allow another method for naming longer tests altogether.
116
118
  * Add assertions that capture stops, warning messages, and other exits.
117
119
  * For compilation, use internal rake task instead of an external makefile.
118
- * Allow users to specify dependency search paths (currently hardwired).
119
120
  * To increase portability, create stand-alone executables with Erik Veenstra's
120
121
  RubyScript2Exe[http://www.erikveen.dds.nl/rubyscript2exe/].
121
122
  * Make FUnit self-tests fail gracefully if Fortran compiler is not found.
data/bin/funit CHANGED
@@ -10,7 +10,7 @@ require 'getoptlong'
10
10
 
11
11
  include Funit
12
12
 
13
- prog_source_dir = nil
13
+ prog_source_dirs = ['.']
14
14
 
15
15
  opts = GetoptLong.new(
16
16
  ['--help', '-h', GetoptLong::NO_ARGUMENT],
@@ -48,7 +48,9 @@ but for some such as Sun's f95 compiler you will need: -M
48
48
  EOF
49
49
  exit
50
50
  end
51
- prog_source_dir = arg
51
+ prog_source_dirs << arg.split
52
+ prog_source_dirs.flatten!
53
+ prog_source_dirs.uniq!
52
54
  end
53
55
  rescue => err
54
56
  puts err
@@ -56,11 +58,7 @@ but for some such as Sun's f95 compiler you will need: -M
56
58
  end
57
59
  end
58
60
 
59
- if(prog_source_dir.nil?) then
60
- Funit::run_tests
61
- else
62
- Funit::run_tests(prog_source_dir)
63
- end
61
+ Funit::run_tests(prog_source_dirs)
64
62
 
65
63
  #--
66
64
  # Copyright 2006-2007 United States Government as represented by
@@ -14,12 +14,12 @@ require 'fileutils'
14
14
 
15
15
  module Funit
16
16
 
17
- VERSION = '0.10.2'
17
+ VERSION = '0.10.3'
18
18
 
19
19
  ##
20
20
  # run all tests
21
21
 
22
- def run_tests(prog_source_dir='.')
22
+ def run_tests(prog_source_dirs=['.'])
23
23
  Compiler.new# a test for compiler env set (FIXME: remove this later)
24
24
  write_test_runner( test_files = parse_command_line )
25
25
  test_suites = []
@@ -33,7 +33,7 @@ module Funit
33
33
  test_suites.push(ts_name)
34
34
  }
35
35
  }
36
- compile_tests(test_suites,prog_source_dir)
36
+ compile_tests(test_suites,prog_source_dirs)
37
37
  exit 1 unless system "env PATH='.' TestRunner"
38
38
  end
39
39
 
@@ -111,20 +111,15 @@ module Funit
111
111
  $stderr.puts "\n *Warning: #{message} [#{test_suite}.fun:#$.]"
112
112
  end
113
113
 
114
- def compile_tests(test_suites,prog_source_dir='.')
114
+ def compile_tests(test_suites,prog_source_dirs=['.'])
115
115
  puts "computing dependencies"
116
116
 
117
- # calculates parameters
118
- if ( prog_source_dir=='.' ) then
119
- sourceflag = ""
120
- else
121
- # prog_source_dir = File.expand_path(prog_source_dir) # commented as it doesn't seem necessary
122
- sourceflag = " "+ ENV['FSFLAG'] + prog_source_dir
117
+ sourceflag = ''
118
+ if ENV['FSFLAG'] then
119
+ sourceflag = prog_source_dirs.map{|pd| ENV['FSFLAG']+pd }.join(' ')
123
120
  end
124
- current_dir = `pwd`.chomp
125
- sp = ['.'] + (prog_source_dir.empty? ? [] : [prog_source_dir])
121
+ dependencies = Fortran::Dependencies.new(:search_paths=>prog_source_dirs)
126
122
 
127
- dependencies = Fortran::Dependencies.new(:search_paths=> sp)
128
123
  puts "locating associated source files and sorting for compilation"
129
124
  dependencies.source_file_dependencies('TestRunner.f90')
130
125
  file_dependencies = dependencies.file_dependencies
@@ -138,14 +138,14 @@ module #{@suite_name}_fun
138
138
  end
139
139
 
140
140
  def close
141
- puts "\n subroutine Setup"
141
+ puts "\n subroutine funit_setup"
142
142
  puts @setup
143
143
  puts " noAssertFailed = .true."
144
- puts " end subroutine Setup\n\n"
144
+ puts " end subroutine funit_setup\n\n"
145
145
 
146
- puts "\n subroutine Teardown"
146
+ puts "\n subroutine funit_teardown"
147
147
  puts @teardown
148
- puts " end subroutine Teardown\n\n"
148
+ puts " end subroutine funit_teardown\n\n"
149
149
 
150
150
  puts <<-NEXTONE
151
151
 
@@ -160,9 +160,9 @@ module #{@suite_name}_fun
160
160
  NEXTONE
161
161
 
162
162
  @tests.each do |test_name|
163
- puts "\n call Setup"
163
+ puts "\n call funit_setup"
164
164
  puts " call #{test_name}"
165
- puts " call Teardown"
165
+ puts " call funit_teardown"
166
166
  end
167
167
 
168
168
  puts <<-LASTONE
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: funit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.2
4
+ version: 0.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karen Bibb
@@ -13,11 +13,12 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2008-04-01 00:00:00 -04:00
16
+ date: 2009-10-05 00:00:00 -04:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: fortran
21
+ type: :runtime
21
22
  version_requirement:
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
@@ -27,14 +28,29 @@ dependencies:
27
28
  version:
28
29
  - !ruby/object:Gem::Dependency
29
30
  name: hoe
31
+ type: :development
30
32
  version_requirement:
31
33
  version_requirements: !ruby/object:Gem::Requirement
32
34
  requirements:
33
35
  - - ">="
34
36
  - !ruby/object:Gem::Version
35
- version: 1.5.1
37
+ version: 1.12.2
36
38
  version:
37
- description: FUnit is a unit testing framework for Fortran. Unit tests are written as Fortran fragments that use a small set of testing-specific keywords and functions. FUnit transforms these fragments into valid Fortran code, compiles, links, and runs them against the code under test. FUnit is {opinionated software}[http://www.oreillynet.com/pub/a/network/2005/08/30/ruby-rails-david-heinemeier-hansson.html], which values convention over configuration. Specifically, FUnit, * requires a Fortran 95 compiler, * only supports testing routines contained in modules, * requires tests to be stored along side the code under test, and * requires test files to be named appropriately.
39
+ description: |-
40
+ FUnit is a unit testing framework for Fortran.
41
+
42
+ Unit tests are written as Fortran fragments that use a small
43
+ set of testing-specific keywords and functions. FUnit transforms
44
+ these fragments into valid Fortran code, compiles, links, and
45
+ runs them against the code under test.
46
+
47
+ FUnit is {opinionated software}[http://www.oreillynet.com/pub/a/network/2005/08/30/ruby-rails-david-heinemeier-hansson.html], which values convention over
48
+ configuration. Specifically, FUnit,
49
+
50
+ * requires a Fortran 95 compiler,
51
+ * only supports testing routines contained in modules,
52
+ * requires tests to be stored along side the code under test, and
53
+ * requires test files to be named appropriately.
38
54
  email: nasarb-developers@rubyforge.org
39
55
  executables:
40
56
  - funit
@@ -75,7 +91,9 @@ files:
75
91
  - utils/funit-generic-mode.el
76
92
  - utils/funit-mode.el
77
93
  has_rdoc: true
78
- homepage: FUnit is a unit testing framework for Fortran.
94
+ homepage: http://rubyforge.org/projects/nasarb
95
+ licenses: []
96
+
79
97
  post_install_message:
80
98
  rdoc_options:
81
99
  - --main
@@ -97,9 +115,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
115
  requirements:
98
116
  - A Fortran compiler.
99
117
  rubyforge_project: nasarb
100
- rubygems_version: 1.1.0
118
+ rubygems_version: 1.3.3
101
119
  signing_key:
102
- specification_version: 2
120
+ specification_version: 3
103
121
  summary: FUnit is a unit testing framework for Fortran
104
122
  test_files:
105
123
  - test/test_compiler.rb