@@ -11,6 +11,7 @@ program new_test
11
11
character (len= :),allocatable :: path
12
12
character (len=* ),parameter :: scr = ' fpm_scratch_'
13
13
character (len=* ),parameter :: cmds(* ) = [character (len= 80 ) :: &
14
+ ! run a variety of "fpm new" variations and verify expected files are generated
14
15
' new' , &
15
16
' new no-no' , &
16
17
' new ' // scr// ' A' , &
@@ -38,31 +39,32 @@ program new_test
38
39
shortdirs= [character (len= 80 ) :: ' A' ,' B' ,' C' ,' D' ,' E' ,' F' ,' G' ,' BB' ,' CC' ]
39
40
allocate (character (len= 80 ) :: directories(size (shortdirs)))
40
41
41
- do i= 1 ,size (directories)
42
- directories(i)= scr// trim (shortdirs(i))
43
- if ( is_dir(trim (directories(i))) ) then
44
- write (* ,* )' ERROR:' ,trim ( directories(i) ),' already exists'
45
- write (* ,* )' you must remove scratch directories before performing this test'
46
- write (* ,' (*(g0:,1x))' )' directories:' ,(trim (directories(j)),j= 1 ,size (directories)),' no-no'
47
- stop
48
- endif
49
- enddo
50
-
51
42
! ! SEE IF EXPECTED FILES ARE GENERATED
52
43
! ! Issues:
53
44
! ! o assuming fpm command is in expected path and the new version
54
45
! ! o DOS versus POSIX filenames
55
46
is_os_windows= .false.
56
47
select case (get_os_type())
57
48
case (OS_UNKNOWN, OS_LINUX, OS_MACOS, OS_CYGWIN, OS_SOLARIS, OS_FREEBSD)
49
+ call execute_command_line(' rm -rf fpm_scratch_*' ,exitstat= estat,cmdstat= cstat,cmdmsg= message)
58
50
path= cmdpath
59
51
case (OS_WINDOWS)
60
52
path= windows_path(cmdpath)
61
53
is_os_windows= .true.
54
+ call execute_command_line(' rmdir fpm_scratch_* /s /q' ,exitstat= estat,cmdstat= cstat,cmdmsg= message)
62
55
case default
63
56
write (* ,* )' ERROR: unknown OS. Stopping test'
64
57
stop 2
65
58
end select
59
+ do i= 1 ,size (directories)
60
+ directories(i)= scr// trim (shortdirs(i))
61
+ if ( is_dir(trim (directories(i))) ) then
62
+ write (* ,* )' ERROR:' ,trim ( directories(i) ),' already exists'
63
+ write (* ,* )' you must remove scratch directories before performing this test'
64
+ write (* ,' (*(g0:,1x))' )' directories:' ,(trim (directories(j)),j= 1 ,size (directories)),' no-no'
65
+ stop
66
+ endif
67
+ enddo
66
68
! execute the fpm(1) commands
67
69
do i= 1 ,size (cmds)
68
70
message= ' '
@@ -134,6 +136,14 @@ program new_test
134
136
endif
135
137
enddo TESTS
136
138
139
+ ! clean up scratch files; might want an option to leave them for inspection
140
+ select case (get_os_type())
141
+ case (OS_UNKNOWN, OS_LINUX, OS_MACOS, OS_CYGWIN, OS_SOLARIS, OS_FREEBSD)
142
+ call execute_command_line(' rm -rf fpm_scratch_*' ,exitstat= estat,cmdstat= cstat,cmdmsg= message)
143
+ case (OS_WINDOWS)
144
+ call execute_command_line(' rmdir fpm_scratch_* /s /q' ,exitstat= estat,cmdstat= cstat,cmdmsg= message)
145
+ end select
146
+
137
147
write (* ,' ("TALLY=",*(g0))' )tally
138
148
if (all (tally))then
139
149
write (* ,' (*(g0))' )' PASSED: all ' ,count (tally),' tests passed '
0 commit comments