@@ -4,37 +4,42 @@ program new_test
4
4
use fpm_strings, only : string_t, operator (.in .)
5
5
use fpm_environment, only : run, get_os_type
6
6
use fpm_environment, only : OS_UNKNOWN, OS_LINUX, OS_MACOS, OS_CYGWIN, OS_SOLARIS, OS_FREEBSD, OS_WINDOWS
7
+ implicit none
7
8
type (string_t), allocatable :: file_names(:)
8
9
integer :: i, j, k
9
10
character (len=* ),parameter :: cmdpath = ' build/gfortran_debug/app/fpm'
10
11
character (len= :),allocatable :: path
12
+ character (len=* ),parameter :: scr = ' fpm_scratch_'
11
13
character (len=* ),parameter :: cmds(* ) = [character (len= 80 ) :: &
12
14
' new' , &
13
15
' new no-no' , &
14
- ' new A' , &
15
- ' new B --lib' , &
16
- ' new C --app' , &
17
- ' new D --test' , &
18
- ' new E --lib --test ' , &
19
- ' new F --lib --app' , &
20
- ' new G --test --app' , &
21
- ' new BB --lib' , &
22
- ' new BB --test ' , &
23
- ' new BB --backfill --test' , &
24
- ' new CC --test --src --app' , &
16
+ ' new ' // scr // ' A' , &
17
+ ' new ' // scr // ' B --lib' , &
18
+ ' new ' // scr // ' C --app' , &
19
+ ' new ' // scr // ' D --test' , &
20
+ ' new ' // scr // ' E --lib --test ' , &
21
+ ' new ' // scr // ' F --lib --app' , &
22
+ ' new ' // scr // ' G --test --app' , &
23
+ ' new ' // scr // ' BB --lib' , &
24
+ ' new ' // scr // ' BB --test ' , &
25
+ ' new ' // scr // ' BB --backfill --test' , &
26
+ ' new ' // scr // ' CC --test --src --app' , &
25
27
' new --version' , &
26
28
' new --help' ]
27
29
integer :: estat, cstat
28
30
character (len= 256 ) :: message
29
31
character (len= :),allocatable :: directories(:)
32
+ character (len= :),allocatable :: shortdirs(:)
30
33
character (len= :),allocatable :: expected(:)
31
34
logical ,allocatable :: tally(:)
32
35
logical :: IS_OS_WINDOWS
33
36
write (* ,' (g0:,1x)' )' TEST new SUBCOMMAND (draft):'
34
37
allocate (tally(0 ))
35
- directories= [character (len= 80 ) :: ' A' ,' B' ,' C' ,' D' ,' E' ,' F' ,' G' ,' BB' ,' CC' ]
38
+ shortdirs= [character (len= 80 ) :: ' A' ,' B' ,' C' ,' D' ,' E' ,' F' ,' G' ,' BB' ,' CC' ]
39
+ allocate (character (len= 80 ) :: directories(size (shortdirs)))
36
40
37
41
do i= 1 ,size (directories)
42
+ directories(i)= scr// trim (shortdirs(i))
38
43
if ( is_dir(trim (directories(i))) ) then
39
44
write (* ,* )' ERROR:' ,trim ( directories(i) ),' already exists'
40
45
write (* ,* )' you must remove scratch directories before performing this test'
@@ -76,31 +81,31 @@ program new_test
76
81
! assuming hidden files in .git and .gitignore are ignored for now
77
82
TESTS: do i= 1 ,size (directories)
78
83
! test if expected directory exists
79
- if ( .not. is_dir(trim (directories(i))) ) then
84
+ if ( .not. is_dir(trim ( directories(i))) ) then
80
85
tally= [tally,.false. ]
81
86
write (* ,* )' ERROR:' ,trim ( directories(i) ),' is not a directory'
82
87
else
83
- select case (directories (i))
88
+ select case (shortdirs (i))
84
89
case (' A' ); expected= [ character (len= 80 ):: &
85
- &' A/app' ,' A/fpm.toml' ,' A/README.md' ,' A/src' ,' A/test' ,' A/app/main.f90' ,' A/src/A.f90' ,' A/test/main.f90' ]
90
+ &' A/app' ,' A/fpm.toml' ,' A/README.md' ,' A/src' ,' A/test' ,' A/app/main.f90' ,' A/src/' // scr // ' A.f90' ,' A/test/main.f90' ]
86
91
case (' B' ); expected= [ character (len= 80 ):: &
87
- &' B/fpm.toml' ,' B/README.md' ,' B/src' ,' B/src/B.f90' ]
92
+ &' B/fpm.toml' ,' B/README.md' ,' B/src' ,' B/src/' // scr // ' B.f90' ]
88
93
case (' C' ); expected= [ character (len= 80 ):: &
89
94
&' C/app' ,' C/fpm.toml' ,' C/README.md' ,' C/app/main.f90' ]
90
95
case (' D' ); expected= [ character (len= 80 ):: &
91
96
&' D/fpm.toml' ,' D/README.md' ,' D/test' ,' D/test/main.f90' ]
92
97
case (' E' ); expected= [ character (len= 80 ):: &
93
- &' E/fpm.toml' ,' E/README.md' ,' E/src' ,' E/test' ,' E/src/E.f90' ,' E/test/main.f90' ]
98
+ &' E/fpm.toml' ,' E/README.md' ,' E/src' ,' E/test' ,' E/src/' // scr // ' E.f90' ,' E/test/main.f90' ]
94
99
case (' F' ); expected= [ character (len= 80 ):: &
95
- &' F/app' ,' F/fpm.toml' ,' F/README.md' ,' F/src' ,' F/app/main.f90' ,' F/src/F.f90' ]
100
+ &' F/app' ,' F/fpm.toml' ,' F/README.md' ,' F/src' ,' F/app/main.f90' ,' F/src/' // scr // ' F.f90' ]
96
101
case (' G' ); expected= [ character (len= 80 ):: &
97
102
&' G/app' ,' G/fpm.toml' ,' G/README.md' ,' G/test' ,' G/app/main.f90' ,' G/test/main.f90' ]
98
103
case (' BB' ); expected= [ character (len= 80 ):: &
99
- &' BB/fpm.toml' ,' BB/README.md' ,' BB/src' ,' BB/test' ,' BB/src/BB.f90' ,' BB/test/main.f90' ]
104
+ &' BB/fpm.toml' ,' BB/README.md' ,' BB/src' ,' BB/test' ,' BB/src/' // scr // ' BB.f90' ,' BB/test/main.f90' ]
100
105
case (' CC' ); expected= [ character (len= 80 ):: &
101
- &' CC/app' ,' CC/fpm.toml' ,' CC/README.md' ,' CC/src' ,' CC/test' ,' CC/app/main.f90' ,' CC/src/CC.f90' ,' CC/test/main.f90' ]
106
+ &' CC/app' ,' CC/fpm.toml' ,' CC/README.md' ,' CC/src' ,' CC/test' ,' CC/app/main.f90' ,' CC/src/' // scr // ' CC.f90' ,' CC/test/main.f90' ]
102
107
case default
103
- write (* ,* )' ERROR: internal error. unknown directory name ' ,trim (directories (i))
108
+ write (* ,* )' ERROR: internal error. unknown directory name ' ,trim (shortdirs (i))
104
109
stop 4
105
110
end select
106
111
! ! MSwindows has hidden files in it
@@ -109,12 +114,13 @@ program new_test
109
114
110
115
if (size (expected).ne. size (file_names))then
111
116
write (* ,* )' WARNING: unexpected number of files in file list=' ,size (file_names),' expected ' ,size (expected)
112
- write (* ,' ("EXPECTED: ",*(g0:,","))' )(trim (expected(j)),j= 1 ,size (expected))
117
+ write (* ,' ("EXPECTED: ",*(g0:,","))' )(scr // trim (expected(j)),j= 1 ,size (expected))
113
118
write (* ,' ("FOUND: ",*(g0:,","))' )(trim (file_names(j)% s),j= 1 ,size (file_names))
114
119
endif
115
120
116
121
do j= 1 ,size (expected)
117
122
123
+ expected(j)= scr// expected(j)
118
124
if (is_os_windows) expected(j)= windows_path(expected(j))
119
125
if ( .not. (trim (expected(j)).in .file_names) )then
120
126
tally= [tally,.false. ]
0 commit comments