Our fortran tests were not very good. All the libraries created

were convenience libs, so we did not test the creation of shared
libraries on any platform. Also none of the libs used any actual
fortran library calls, adding a call to write(*,*) in each lib
causes the tests to fail on darwin (and presumably other platforms).
These new tests would likely cause many more fortran test failures,
so if there is an error during make it is reported as SKIP.

* tests/f77demo-make.test: Don't fail hard, skip on failure.
* tests/f77demo/foof2.f: New file.
* tests/f77demo/foof3.f: New file.
* tests/f77demo/fprogram.f: Call routine in new lib.
* tests/f77demo/foof.f: Call routine in another new lib.
* tests/f77demo/Makefile.am: Make a couple of new libraries, add
$(FLIBS) to cprogram LDADD.
This commit is contained in:
Peter O'Gorman 2004-09-12 13:36:17 +00:00
parent 8240b4ebba
commit f0cb3767cf
7 changed files with 70 additions and 9 deletions

View File

@ -1,3 +1,21 @@
2004-09-12 Peter O'Gorman <peter@pogma.com>
Our fortran tests were not very good. All the libraries created
were convenience libs, so we did not test the creation of shared
libraries on any platform. Also none of the libs used any actual
fortran library calls, adding a call to write(*,*) in each lib
causes the tests to fail on darwin (and presumably other platforms).
These new tests would likely cause many more fortran test failures,
so if there is an error during make it is reported as SKIP.
* tests/f77demo-make.test: Don't fail hard, skip on failure.
* tests/f77demo/foof2.f: New file.
* tests/f77demo/foof3.f: New file.
* tests/f77demo/fprogram.f: Call routine in new lib.
* tests/f77demo/foof.f: Call routine in another new lib.
* tests/f77demo/Makefile.am: Make a couple of new libraries, add
$(FLIBS) to cprogram LDADD.
2004-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/libtool.m4 (_LT_CMD_GLOBAL_SYMBOLS): The linker distinguishes

View File

@ -31,6 +31,8 @@ func_require "f77demo-conf" "f77demo/Makefile"
func_rmprefixdir
func_cd "f77demo"
func_make
# May fail make on some platforms, simply "skip" in that case
#func_make
eval $MAKE || func_skip "The improved fortran tests catch a known failure mode"
exit 0

View File

@ -21,12 +21,19 @@ AUTOMAKE_OPTIONS = no-dependencies foreign
ACLOCAL_AMFLAGS = -I ../../m4
AM_CPPFLAGS = -I$(top_srcdir)/../..
noinst_LTLIBRARIES = libfoo.la libmix.la
lib_LTLIBRARIES = libfoo.la libmix.la libfoo2.la libfoo3.la
libfoo_la_SOURCES = foof.f
libfoo_la_LDFLAGS = -no-undefined
libfoo_la_LIBADD = libfoo2.la
libmix_la_SOURCES = foof.f fooc.c
libfoo2_la_SOURCES = foof2.f
libfoo2_la_LDFLAGS = -no-undefined
libfoo3_la_SOURCES = foof3.f
libfoo3_la_LDFLAGS = -no-undefined
libmix_la_SOURCES = foof.f foof2.f fooc.c
libmix_la_LDFLAGS = -no-undefined
noinst_HEADERS = foo.h
@ -34,10 +41,10 @@ noinst_HEADERS = foo.h
bin_PROGRAMS = fprogram cprogram
fprogram_SOURCES = fprogram.f
fprogram_LDADD = libfoo.la
fprogram_LDADD = libfoo.la libfoo3.la
cprogram_SOURCES = cprogram.c
cprogram_LDADD = libmix.la
cprogram_LDADD = libmix.la $(FLIBS)
$(OBJECTS): libtool
libtool: $(LIBTOOL_DEPS)

View File

@ -6,8 +6,7 @@ C of the License, or (at your option) any later version.
C
subroutine fsub(arg,res)
implicit none
integer*4 arg,res
res=arg*2
write(*,*) 'fsub called'
call fsubf(arg,res)
return
end

14
tests/f77demo/foof2.f Normal file
View File

@ -0,0 +1,14 @@
C
C This program is free software; you can redistribute it and/or
C modify it under the terms of the GNU General Public License
C as published by the Free Software Foundation; either version 2
C of the License, or (at your option) any later version.
C
subroutine fsubf(arg,res)
implicit none
integer*4 arg,res
write(*,*) 'fsubf called'
res=arg*2
return
end

14
tests/f77demo/foof3.f Normal file
View File

@ -0,0 +1,14 @@
C
C This program is free software; you can redistribute it and/or
C modify it under the terms of the GNU General Public License
C as published by the Free Software Foundation; either version 2
C of the License, or (at your option) any later version.
C
subroutine fsub3(arg,res)
implicit none
integer*4 arg,res
write(*,*) 'fsub3 called'
res=arg*4
return
end

View File

@ -21,7 +21,14 @@ C
write(*,*) 'fsub is ok!'
endif
call fsub3(arg,res)
write(*,*) 'fsub3 returned, saying that 4 *',arg,' =',res
if (res.eq.8) then
write(*,*) 'fsub3 is ok!'
endif
stop
end