aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMilan Curcic <caomaco@gmail.com>2020-10-02 15:49:47 -0400
committerGitHub <noreply@github.com>2020-10-02 15:49:47 -0400
commit75c1da54b337a08f8205db19e49606e30b4ce2bb (patch)
tree5a945ac788a8abcfaaf6c5675ddff4507e3e7ebf /test
parent0c35749e0d90b5de43a7a90eb47677695e5c81e2 (diff)
parent0fe14b81507be3fe1cd6beda4b960384e813732d (diff)
downloadfpm-75c1da54b337a08f8205db19e49606e30b4ce2bb.tar.gz
fpm-75c1da54b337a08f8205db19e49606e30b4ce2bb.zip
Merge pull request #190 from LKedward/auto-discovery
Auto discovery of executables
Diffstat (limited to 'test')
-rw-r--r--test/example_packages/README.md2
-rw-r--r--test/example_packages/auto_discovery_off/app/main.f906
-rw-r--r--test/example_packages/auto_discovery_off/app/unused.f906
-rw-r--r--test/example_packages/auto_discovery_off/fpm.toml12
-rw-r--r--test/example_packages/auto_discovery_off/test/my_test.f906
-rw-r--r--test/example_packages/auto_discovery_off/test/unused_test.f907
-rw-r--r--test/example_packages/hello_complex_2/.gitignore1
-rw-r--r--test/example_packages/hello_complex_2/app/app_mod.f905
-rw-r--r--test/example_packages/hello_complex_2/app/say_goodbye.f908
-rw-r--r--test/example_packages/hello_complex_2/app/say_hello/app_hello_mod.f904
-rw-r--r--test/example_packages/hello_complex_2/app/say_hello/say_Hello.f908
-rw-r--r--test/example_packages/hello_complex_2/fpm.toml6
-rw-r--r--test/example_packages/hello_complex_2/src/farewell_m.f9013
-rw-r--r--test/example_packages/hello_complex_2/src/greet_m.f9013
-rw-r--r--test/example_packages/hello_complex_2/test/farewell_test.f9019
-rw-r--r--test/example_packages/hello_complex_2/test/greet_test.f9019
-rw-r--r--test/example_packages/hello_complex_2/test/test_mod.f905
17 files changed, 140 insertions, 0 deletions
diff --git a/test/example_packages/README.md b/test/example_packages/README.md
index 06de927..79fadb1 100644
--- a/test/example_packages/README.md
+++ b/test/example_packages/README.md
@@ -6,9 +6,11 @@ the features demonstrated in each package and which versions of fpm are supporte
| Name | Features | Bootstrap (Haskell) fpm | fpm |
|---------------------|---------------------------------------------------------------|:-----------------------:|:---:|
+| auto_discovery_off | Default layout with auto-discovery disabled | N | Y |
| circular_example | Local path dependency; circular dependency | Y | N |
| circular_test | Local path dependency; circular dependency | Y | N |
| hello_complex | Non-standard directory layout; multiple tests and executables | Y | Y |
+| hello_complex_2 | Auto-discovery of tests and executables with modules | N | Y |
| hello_fpm | App-only; local path dependency | Y | N |
| hello_world | App-only | Y | Y |
| makefile_complex | External build command (makefile); local path dependency | Y | N |
diff --git a/test/example_packages/auto_discovery_off/app/main.f90 b/test/example_packages/auto_discovery_off/app/main.f90
new file mode 100644
index 0000000..8902dc6
--- /dev/null
+++ b/test/example_packages/auto_discovery_off/app/main.f90
@@ -0,0 +1,6 @@
+program main
+implicit none
+
+print *, "This program should run."
+
+end program main
diff --git a/test/example_packages/auto_discovery_off/app/unused.f90 b/test/example_packages/auto_discovery_off/app/unused.f90
new file mode 100644
index 0000000..57d8153
--- /dev/null
+++ b/test/example_packages/auto_discovery_off/app/unused.f90
@@ -0,0 +1,6 @@
+program unused
+implicit none
+
+print *, "This program should NOT run."
+
+end program unused
diff --git a/test/example_packages/auto_discovery_off/fpm.toml b/test/example_packages/auto_discovery_off/fpm.toml
new file mode 100644
index 0000000..9a852df
--- /dev/null
+++ b/test/example_packages/auto_discovery_off/fpm.toml
@@ -0,0 +1,12 @@
+name = "auto_discovery_off"
+
+[build]
+auto-executables = false
+auto-tests = false
+
+
+[[test]]
+name = "my_test"
+source-dir="test"
+main="my_test.f90"
+
diff --git a/test/example_packages/auto_discovery_off/test/my_test.f90 b/test/example_packages/auto_discovery_off/test/my_test.f90
new file mode 100644
index 0000000..fd59f9f
--- /dev/null
+++ b/test/example_packages/auto_discovery_off/test/my_test.f90
@@ -0,0 +1,6 @@
+program my_test
+implicit none
+
+print *, "Test passed! That was easy!"
+
+end program my_test
diff --git a/test/example_packages/auto_discovery_off/test/unused_test.f90 b/test/example_packages/auto_discovery_off/test/unused_test.f90
new file mode 100644
index 0000000..5c42611
--- /dev/null
+++ b/test/example_packages/auto_discovery_off/test/unused_test.f90
@@ -0,0 +1,7 @@
+program unused_test
+implicit none
+
+print *, "This program should NOT run."
+
+end program unused_test
+
diff --git a/test/example_packages/hello_complex_2/.gitignore b/test/example_packages/hello_complex_2/.gitignore
new file mode 100644
index 0000000..a007fea
--- /dev/null
+++ b/test/example_packages/hello_complex_2/.gitignore
@@ -0,0 +1 @@
+build/*
diff --git a/test/example_packages/hello_complex_2/app/app_mod.f90 b/test/example_packages/hello_complex_2/app/app_mod.f90
new file mode 100644
index 0000000..d69a228
--- /dev/null
+++ b/test/example_packages/hello_complex_2/app/app_mod.f90
@@ -0,0 +1,5 @@
+module app_mod
+implicit none
+
+
+end module app_mod
diff --git a/test/example_packages/hello_complex_2/app/say_goodbye.f90 b/test/example_packages/hello_complex_2/app/say_goodbye.f90
new file mode 100644
index 0000000..db12cbf
--- /dev/null
+++ b/test/example_packages/hello_complex_2/app/say_goodbye.f90
@@ -0,0 +1,8 @@
+program say_goodbye
+ use farewell_m, only: make_farewell
+ use app_mod
+
+ implicit none
+
+ print *, make_farewell("World")
+end program say_goodbye
diff --git a/test/example_packages/hello_complex_2/app/say_hello/app_hello_mod.f90 b/test/example_packages/hello_complex_2/app/say_hello/app_hello_mod.f90
new file mode 100644
index 0000000..5c426c8
--- /dev/null
+++ b/test/example_packages/hello_complex_2/app/say_hello/app_hello_mod.f90
@@ -0,0 +1,4 @@
+module app_hello_mod
+implicit none
+
+end module app_hello_mod
diff --git a/test/example_packages/hello_complex_2/app/say_hello/say_Hello.f90 b/test/example_packages/hello_complex_2/app/say_hello/say_Hello.f90
new file mode 100644
index 0000000..3b69ba7
--- /dev/null
+++ b/test/example_packages/hello_complex_2/app/say_hello/say_Hello.f90
@@ -0,0 +1,8 @@
+program say_Hello
+ use greet_m, only: make_greeting
+ use app_hello_mod
+
+ implicit none
+
+ print *, make_greeting("World")
+end program say_Hello
diff --git a/test/example_packages/hello_complex_2/fpm.toml b/test/example_packages/hello_complex_2/fpm.toml
new file mode 100644
index 0000000..28c91d8
--- /dev/null
+++ b/test/example_packages/hello_complex_2/fpm.toml
@@ -0,0 +1,6 @@
+name = "hello_complex"
+
+[[executable]]
+name="say_hello_world"
+source-dir="app/say_hello"
+main="say_Hello.f90"
diff --git a/test/example_packages/hello_complex_2/src/farewell_m.f90 b/test/example_packages/hello_complex_2/src/farewell_m.f90
new file mode 100644
index 0000000..9fc75b9
--- /dev/null
+++ b/test/example_packages/hello_complex_2/src/farewell_m.f90
@@ -0,0 +1,13 @@
+module farewell_m
+ implicit none
+ private
+
+ public :: make_farewell
+contains
+ function make_farewell(name) result(greeting)
+ character(len=*), intent(in) :: name
+ character(len=:), allocatable :: greeting
+
+ greeting = "Goodbye, " // name // "!"
+ end function make_farewell
+end module farewell_m
diff --git a/test/example_packages/hello_complex_2/src/greet_m.f90 b/test/example_packages/hello_complex_2/src/greet_m.f90
new file mode 100644
index 0000000..2372f9a
--- /dev/null
+++ b/test/example_packages/hello_complex_2/src/greet_m.f90
@@ -0,0 +1,13 @@
+module greet_m
+ implicit none
+ private
+
+ public :: make_greeting
+contains
+ function make_greeting(name) result(greeting)
+ character(len=*), intent(in) :: name
+ character(len=:), allocatable :: greeting
+
+ greeting = "Hello, " // name // "!"
+ end function make_greeting
+end module greet_m
diff --git a/test/example_packages/hello_complex_2/test/farewell_test.f90 b/test/example_packages/hello_complex_2/test/farewell_test.f90
new file mode 100644
index 0000000..dbe98d6
--- /dev/null
+++ b/test/example_packages/hello_complex_2/test/farewell_test.f90
@@ -0,0 +1,19 @@
+program farewell_test
+ use farewell_m, only: make_farewell
+ use test_mod
+ use iso_fortran_env, only: error_unit, output_unit
+
+ implicit none
+
+ character(len=:), allocatable :: farewell
+
+ allocate(character(len=0) :: farewell)
+ farewell = make_farewell("World")
+
+ if (farewell == "Goodbye, World!") then
+ write(output_unit, *) "Passed"
+ else
+ write(error_unit, *) "Failed"
+ call exit(1)
+ end if
+end program farewell_test
diff --git a/test/example_packages/hello_complex_2/test/greet_test.f90 b/test/example_packages/hello_complex_2/test/greet_test.f90
new file mode 100644
index 0000000..38e9be0
--- /dev/null
+++ b/test/example_packages/hello_complex_2/test/greet_test.f90
@@ -0,0 +1,19 @@
+program greet_test
+ use greet_m, only: make_greeting
+ use test_mod
+ use iso_fortran_env, only: error_unit, output_unit
+
+ implicit none
+
+ character(len=:), allocatable :: greeting
+
+ allocate(character(len=0) :: greeting)
+ greeting = make_greeting("World")
+
+ if (greeting == "Hello, World!") then
+ write(output_unit, *) "Passed"
+ else
+ write(error_unit, *) "Failed"
+ call exit(1)
+ end if
+end program greet_test
diff --git a/test/example_packages/hello_complex_2/test/test_mod.f90 b/test/example_packages/hello_complex_2/test/test_mod.f90
new file mode 100644
index 0000000..edb2626
--- /dev/null
+++ b/test/example_packages/hello_complex_2/test/test_mod.f90
@@ -0,0 +1,5 @@
+module test_mod
+implicit none
+
+
+end module test_mod