-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathREADME
executable file
·103 lines (83 loc) · 3.55 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Cloned from sourceforge using technique from
#
# https://gist.github.com/binarytemple/a707114df7067c1c81ab ,
#
# with help from
#
# https://stackoverflow.com/a/49565707
#
#
# The link to the old Sourceforge example guide is broken, an archived
# version can be found here:
#
# https://web.archive.org/web/20140509103954/https://sourceforge.net/apps/mediawiki/fortranxunit/index.php?title=FruitExample
Installation guide:
-------------------
1. Untar the gz file
2. Put Ruby in your path.
3. Install rake gem
gem install rake
4. Install fruit_processor gem
cd fruit/fruit_processor_gem
rake install
5. You may need to change your compiler from gfortran to other
modify this line in rake_base.rb :
$compiler = 'gfortran'
$option = "-Wall -Wextra -pedantic -fbounds-check " +
"-Wuninitialized -O -g -Wno-unused-parameter -cpp"
By default, ifort is used if available.
If ifort is abesnt, gfotran or FTN95 is used.
6. Build and run all the test
cd fruit
rake
(By default a sample sample_single_dir is omitted,
because some old compilers does not accept *.f95 extension. Try
rake sample_single_dir
to run it.)
Samples:
--------
in_3_minutes
A sample of manually written driver.
see https://web.archive.org/web/20140509103954/https://sourceforge.net/apps/mediawiki/fortranxunit/index.php?title=FruitExample
* fruit.f90 must be copied to in_3_minutes beforehand.
sample
Multi-directry test.
Tester codes are in fruit-x.x.x/sample/test directry.
Before running the test,
tested code (fruit-x.x.x/sample/src/calculator.f90) and
fruit code (fruit-x.x.x/src/fruit.f90)
must be compiled into lib*.a archives.
* libfruit.a needed. To prepare it, run "rake compile" in fruit-x.x.x directry for libfruit.a.
sample_single_dir
Dependency between Fortran codes is estimated by
"rake_estimate.rb" loaded from sample_single_dir/rakefile.
see fruit-x.x.x/sample_single_dir/README.
Tester code : sample_single_dir/mystack_test.f95
Tested code : sample_single_dir/mystack.f95, Z_constants.f95
sample_selective
Testers to call is specifiled in a line in sample_selective/rakefile:
fp.process_only = FileList["mydict_test.f90"]
This sample also shows that test can be built even when main program (dummy_main.f90) exists.
Dependency between Fortran codes is estimated by "rake_estimate.rb".
Tester code: fruit-x.x.x/sample_selective/*_test.f90
Tested code: fruit-x.x.x/sample_selective/constant.f90, mydict.f90
sample_build_dir
This sample shows build directry may differ from source directry.
It also shows that test can be built even when main program (main.f90) exists.
Tester code : fruit-x.x.x/sample_build_dir/atoz_test.f90
Tested code : fruit-x.x.x/sample_build_dir/atoz.f90
Build test in fruit-x.x.x/sample_build_dir/build_unittest
sample_multi_dir
Tester codes and tested codes are in different directries.
Sample of building only selected testers are build in "build_selective" directry and
that of all testers are built in "build" directry.
Tester codes: fruit-x.x.x/sample_multi_dir/test/*.f90
Tested codes: fruit-x.x.x/sample_multi_dir/src/*.f90
Build is done in fruit-x.x.x/sample_multi_dir/build/
Selective build: fruit-x.x.x/sample_multi_dir/build_selective/
sample_openmp
Tester code uses multiple threads using OpenMP.
self_test
Test of fruit.f90 itself.
self_test_openmp
Test of fruit.f90 itself. Tester code uses multiple threads using OpenMP.