summaryrefslogtreecommitdiffstats
path: root/Tests/FortranModules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-04-19 15:26:06 (GMT)
committerBrad King <brad.king@kitware.com>2018-04-20 14:57:32 (GMT)
commitb1f95e5b1477794c0ee3a56a4ea016a34c3e3d5c (patch)
tree715af1b794f404479f96a5932d2d1ea9b0187490 /Tests/FortranModules
parent402735314ec7fe48ec21e5f4c5b19b6f17682c54 (diff)
downloadCMake-b1f95e5b1477794c0ee3a56a4ea016a34c3e3d5c.zip
CMake-b1f95e5b1477794c0ee3a56a4ea016a34c3e3d5c.tar.gz
CMake-b1f95e5b1477794c0ee3a56a4ea016a34c3e3d5c.tar.bz2
Fortran: Extend submodule test with great-grandchild
Name the module using CamelCase to test lower-case file name conversion. Also add coverage of existing "sibling" module.
Diffstat (limited to 'Tests/FortranModules')
-rw-r--r--Tests/FortranModules/Submodules/CMakeLists.txt3
-rw-r--r--Tests/FortranModules/Submodules/greatgrandchild.f908
-rw-r--r--Tests/FortranModules/Submodules/main.f902
-rw-r--r--Tests/FortranModules/Submodules/parent.f905
-rw-r--r--Tests/FortranModules/Submodules/sibling.f905
5 files changed, 23 insertions, 0 deletions
diff --git a/Tests/FortranModules/Submodules/CMakeLists.txt b/Tests/FortranModules/Submodules/CMakeLists.txt
index da204d0..ab8e0f9 100644
--- a/Tests/FortranModules/Submodules/CMakeLists.txt
+++ b/Tests/FortranModules/Submodules/CMakeLists.txt
@@ -8,6 +8,8 @@
# child sibling
# |
# grandchild
+# |
+# GreatGrandChild
#
# where the parent node is a module and all other nodes are submodules.
@@ -16,5 +18,6 @@ add_executable(submod
parent.f90
child.f90
grandchild.f90
+ greatgrandchild.f90
sibling.f90
)
diff --git a/Tests/FortranModules/Submodules/greatgrandchild.f90 b/Tests/FortranModules/Submodules/greatgrandchild.f90
new file mode 100644
index 0000000..85404ea
--- /dev/null
+++ b/Tests/FortranModules/Submodules/greatgrandchild.f90
@@ -0,0 +1,8 @@
+! Test the notation for an Nth-generation descendant
+! for N>1, which necessitates the colon.
+submodule ( parent : grandchild ) GreatGrandChild
+contains
+ module subroutine GreatGrandChild_subroutine()
+ print *,"Test passed."
+ end subroutine
+end submodule GreatGrandChild
diff --git a/Tests/FortranModules/Submodules/main.f90 b/Tests/FortranModules/Submodules/main.f90
index 3c750ce..3cd2989 100644
--- a/Tests/FortranModules/Submodules/main.f90
+++ b/Tests/FortranModules/Submodules/main.f90
@@ -1,5 +1,7 @@
program main
use parent, only : child_function,grandchild_subroutine
+ use parent, only : sibling_function,GreatGrandChild_subroutine
implicit none
if (child_function()) call grandchild_subroutine
+ if (sibling_function()) call GreatGrandChild_subroutine
end program
diff --git a/Tests/FortranModules/Submodules/parent.f90 b/Tests/FortranModules/Submodules/parent.f90
index 7693a72..3180b70 100644
--- a/Tests/FortranModules/Submodules/parent.f90
+++ b/Tests/FortranModules/Submodules/parent.f90
@@ -7,10 +7,15 @@ module parent
module function child_function() result(child_stuff)
logical :: child_stuff
end function
+ module function sibling_function() result(sibling_stuff)
+ logical :: sibling_stuff
+ end function
! Test Fortran 2008 "module subroutine" syntax
module subroutine grandchild_subroutine()
end subroutine
+ module subroutine GreatGrandChild_subroutine()
+ end subroutine
end interface
diff --git a/Tests/FortranModules/Submodules/sibling.f90 b/Tests/FortranModules/Submodules/sibling.f90
index bba5f92..8c0943d 100644
--- a/Tests/FortranModules/Submodules/sibling.f90
+++ b/Tests/FortranModules/Submodules/sibling.f90
@@ -1,4 +1,9 @@
! Empty submodule for checking disambiguation of
! nodes at the same vertical level in the tree
submodule ( parent ) sibling
+contains
+ module function sibling_function() result(sibling_stuff)
+ logical :: sibling_stuff
+ sibling_stuff=.true.
+ end function
end submodule sibling