From 04fd3870fb8cbb6014a197b26b71f6e3021ccba1 Mon Sep 17 00:00:00 2001 From: LKedward Date: Sat, 26 Sep 2020 11:11:01 +0100 Subject: Add: example package with program discovery --- test/example_packages/README.md | 1 + test/example_packages/hello_complex_2/.gitignore | 1 + test/example_packages/hello_complex_2/app/app_mod.f90 | 5 +++++ .../hello_complex_2/app/say_goodbye.f90 | 8 ++++++++ .../hello_complex_2/app/say_hello/app_hello_mod.f90 | 4 ++++ .../hello_complex_2/app/say_hello/say_Hello.f90 | 8 ++++++++ test/example_packages/hello_complex_2/fpm.toml | 6 ++++++ .../hello_complex_2/src/farewell_m.f90 | 13 +++++++++++++ test/example_packages/hello_complex_2/src/greet_m.f90 | 13 +++++++++++++ .../hello_complex_2/test/farewell_test.f90 | 19 +++++++++++++++++++ .../hello_complex_2/test/greet_test.f90 | 19 +++++++++++++++++++ .../hello_complex_2/test/test_mod.f90 | 5 +++++ 12 files changed, 102 insertions(+) create mode 100644 test/example_packages/hello_complex_2/.gitignore create mode 100644 test/example_packages/hello_complex_2/app/app_mod.f90 create mode 100644 test/example_packages/hello_complex_2/app/say_goodbye.f90 create mode 100644 test/example_packages/hello_complex_2/app/say_hello/app_hello_mod.f90 create mode 100644 test/example_packages/hello_complex_2/app/say_hello/say_Hello.f90 create mode 100644 test/example_packages/hello_complex_2/fpm.toml create mode 100644 test/example_packages/hello_complex_2/src/farewell_m.f90 create mode 100644 test/example_packages/hello_complex_2/src/greet_m.f90 create mode 100644 test/example_packages/hello_complex_2/test/farewell_test.f90 create mode 100644 test/example_packages/hello_complex_2/test/greet_test.f90 create mode 100644 test/example_packages/hello_complex_2/test/test_mod.f90 (limited to 'test') diff --git a/test/example_packages/README.md b/test/example_packages/README.md index 06de927..fd02f0d 100644 --- a/test/example_packages/README.md +++ b/test/example_packages/README.md @@ -9,6 +9,7 @@ the features demonstrated in each package and which versions of fpm are supporte | 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/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 -- cgit v1.2.3 From ad02416e06e1cb9373fa69c6f61492fd498c87d2 Mon Sep 17 00:00:00 2001 From: LKedward Date: Tue, 29 Sep 2020 13:38:07 +0100 Subject: Add: test package with auto-discovery disabled Contains an app and a test that should be ignored by auto-discovery - this is checked in the CI scripts. --- test/example_packages/README.md | 1 + test/example_packages/auto_discovery_off/app/main.f90 | 6 ++++++ test/example_packages/auto_discovery_off/app/unused.f90 | 6 ++++++ test/example_packages/auto_discovery_off/fpm.toml | 12 ++++++++++++ test/example_packages/auto_discovery_off/test/my_test.f90 | 6 ++++++ .../example_packages/auto_discovery_off/test/unused_test.f90 | 7 +++++++ 6 files changed, 38 insertions(+) create mode 100644 test/example_packages/auto_discovery_off/app/main.f90 create mode 100644 test/example_packages/auto_discovery_off/app/unused.f90 create mode 100644 test/example_packages/auto_discovery_off/fpm.toml create mode 100644 test/example_packages/auto_discovery_off/test/my_test.f90 create mode 100644 test/example_packages/auto_discovery_off/test/unused_test.f90 (limited to 'test') diff --git a/test/example_packages/README.md b/test/example_packages/README.md index fd02f0d..79fadb1 100644 --- a/test/example_packages/README.md +++ b/test/example_packages/README.md @@ -6,6 +6,7 @@ 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 | 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 + -- cgit v1.2.3