From 6297e11e84f609c08384a83f9bd1e61d51de740a Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Fri, 29 May 2020 19:58:34 -0700 Subject: Impelement test/executable specific dependencies - with the possibility of them being "circular", meaning if one of them depends on the current library, it will still work --- test/Spec.hs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'test') diff --git a/test/Spec.hs b/test/Spec.hs index dfa70d6..2808af9 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -10,6 +10,7 @@ main = do testHelloWorld testHelloComplex testHelloFpm + testCircular testHelloWorld :: IO () testHelloWorld = @@ -22,3 +23,7 @@ testHelloComplex = testHelloFpm :: IO () testHelloFpm = withCurrentDirectory "hello_fpm" $ start $ Arguments Run False + +testCircular :: IO () +testCircular = + withCurrentDirectory "circular_example" $ start $ Arguments Test False -- cgit v1.2.3 From f33bb50d3e15035aee97ef2a9c032f511aab447f Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Sat, 30 May 2020 17:13:09 -0700 Subject: Move example packages into test folder --- test/Spec.hs | 10 +++++---- test/example_packages/circular_example/.gitignore | 1 + test/example_packages/circular_example/fpm.toml | 8 ++++++++ .../circular_example/src/greet_m.f90 | 13 ++++++++++++ .../circular_example/tests/main.f90 | 7 +++++++ test/example_packages/circular_test/.gitignore | 1 + test/example_packages/circular_test/fpm.toml | 4 ++++ .../circular_test/src/hello_test.f90 | 12 +++++++++++ test/example_packages/hello_complex/.gitignore | 1 + .../hello_complex/apps/say_goodbye/say_goodbye.f90 | 7 +++++++ .../hello_complex/apps/say_hello/say_hello.f90 | 7 +++++++ test/example_packages/hello_complex/fpm.toml | 24 ++++++++++++++++++++++ .../hello_complex/source/farewell_m.f90 | 13 ++++++++++++ .../hello_complex/source/greet_m.f90 | 13 ++++++++++++ .../hello_complex/tests/farewell/farewell_test.f90 | 18 ++++++++++++++++ .../hello_complex/tests/greet/greet_test.f90 | 18 ++++++++++++++++ test/example_packages/hello_fpm/.gitignore | 1 + test/example_packages/hello_fpm/app/main.f90 | 9 ++++++++ test/example_packages/hello_fpm/fpm.toml | 4 ++++ test/example_packages/hello_world/.gitignore | 1 + test/example_packages/hello_world/app/main.f90 | 3 +++ test/example_packages/hello_world/fpm.toml | 1 + 22 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 test/example_packages/circular_example/.gitignore create mode 100644 test/example_packages/circular_example/fpm.toml create mode 100644 test/example_packages/circular_example/src/greet_m.f90 create mode 100644 test/example_packages/circular_example/tests/main.f90 create mode 100644 test/example_packages/circular_test/.gitignore create mode 100644 test/example_packages/circular_test/fpm.toml create mode 100644 test/example_packages/circular_test/src/hello_test.f90 create mode 100644 test/example_packages/hello_complex/.gitignore create mode 100644 test/example_packages/hello_complex/apps/say_goodbye/say_goodbye.f90 create mode 100644 test/example_packages/hello_complex/apps/say_hello/say_hello.f90 create mode 100644 test/example_packages/hello_complex/fpm.toml create mode 100644 test/example_packages/hello_complex/source/farewell_m.f90 create mode 100644 test/example_packages/hello_complex/source/greet_m.f90 create mode 100644 test/example_packages/hello_complex/tests/farewell/farewell_test.f90 create mode 100644 test/example_packages/hello_complex/tests/greet/greet_test.f90 create mode 100644 test/example_packages/hello_fpm/.gitignore create mode 100644 test/example_packages/hello_fpm/app/main.f90 create mode 100644 test/example_packages/hello_fpm/fpm.toml create mode 100644 test/example_packages/hello_world/.gitignore create mode 100644 test/example_packages/hello_world/app/main.f90 create mode 100644 test/example_packages/hello_world/fpm.toml (limited to 'test') diff --git a/test/Spec.hs b/test/Spec.hs index 2808af9..604d8af 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -5,6 +5,8 @@ import Fpm ( Arguments(..) ) import System.Directory ( withCurrentDirectory ) +example_path = "test" "example_packages" + main :: IO () main = do testHelloWorld @@ -14,16 +16,16 @@ main = do testHelloWorld :: IO () testHelloWorld = - withCurrentDirectory "hello_world" $ start $ Arguments Run False + withCurrentDirectory (example_path "hello_world") $ start $ Arguments Run False testHelloComplex :: IO () testHelloComplex = - withCurrentDirectory "hello_complex" $ start $ Arguments Test False + withCurrentDirectory (example_path "hello_complex") $ start $ Arguments Test False testHelloFpm :: IO () testHelloFpm = - withCurrentDirectory "hello_fpm" $ start $ Arguments Run False + withCurrentDirectory (example_path "hello_fpm") $ start $ Arguments Run False testCircular :: IO () testCircular = - withCurrentDirectory "circular_example" $ start $ Arguments Test False + withCurrentDirectory (example_path "circular_example") $ start $ Arguments Test False diff --git a/test/example_packages/circular_example/.gitignore b/test/example_packages/circular_example/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/test/example_packages/circular_example/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/test/example_packages/circular_example/fpm.toml b/test/example_packages/circular_example/fpm.toml new file mode 100644 index 0000000..034ec57 --- /dev/null +++ b/test/example_packages/circular_example/fpm.toml @@ -0,0 +1,8 @@ +name = "circular_example" + +[[test]] + name = "test" + source-dir = "tests" + main = "main.f90" + [test.dependencies] + circular_test = { path = "../circular_test" } diff --git a/test/example_packages/circular_example/src/greet_m.f90 b/test/example_packages/circular_example/src/greet_m.f90 new file mode 100644 index 0000000..2372f9a --- /dev/null +++ b/test/example_packages/circular_example/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/circular_example/tests/main.f90 b/test/example_packages/circular_example/tests/main.f90 new file mode 100644 index 0000000..5b7d803 --- /dev/null +++ b/test/example_packages/circular_example/tests/main.f90 @@ -0,0 +1,7 @@ +program run_tests + use hello_test, only: run_test + + implicit none + + call run_test +end program run_tests diff --git a/test/example_packages/circular_test/.gitignore b/test/example_packages/circular_test/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/test/example_packages/circular_test/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/test/example_packages/circular_test/fpm.toml b/test/example_packages/circular_test/fpm.toml new file mode 100644 index 0000000..56cfa2e --- /dev/null +++ b/test/example_packages/circular_test/fpm.toml @@ -0,0 +1,4 @@ +name = "circular_test" + +[dependencies] +circular_example = { path = "../circular_example"} diff --git a/test/example_packages/circular_test/src/hello_test.f90 b/test/example_packages/circular_test/src/hello_test.f90 new file mode 100644 index 0000000..5a591c6 --- /dev/null +++ b/test/example_packages/circular_test/src/hello_test.f90 @@ -0,0 +1,12 @@ +module hello_test + use greet_m, only: make_greeting + + implicit none + private + + public :: run_test +contains + subroutine run_test + print *, make_greeting("from test") + end subroutine run_test +end module hello_test diff --git a/test/example_packages/hello_complex/.gitignore b/test/example_packages/hello_complex/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/test/example_packages/hello_complex/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/test/example_packages/hello_complex/apps/say_goodbye/say_goodbye.f90 b/test/example_packages/hello_complex/apps/say_goodbye/say_goodbye.f90 new file mode 100644 index 0000000..6966e79 --- /dev/null +++ b/test/example_packages/hello_complex/apps/say_goodbye/say_goodbye.f90 @@ -0,0 +1,7 @@ +program say_goodbye + use farewell_m, only: make_farewell + + implicit none + + print *, make_farewell("World") +end program say_goodbye diff --git a/test/example_packages/hello_complex/apps/say_hello/say_hello.f90 b/test/example_packages/hello_complex/apps/say_hello/say_hello.f90 new file mode 100644 index 0000000..cc648f2 --- /dev/null +++ b/test/example_packages/hello_complex/apps/say_hello/say_hello.f90 @@ -0,0 +1,7 @@ +program say_hello + use greet_m, only: make_greeting + + implicit none + + print *, make_greeting("World") +end program say_hello diff --git a/test/example_packages/hello_complex/fpm.toml b/test/example_packages/hello_complex/fpm.toml new file mode 100644 index 0000000..d185745 --- /dev/null +++ b/test/example_packages/hello_complex/fpm.toml @@ -0,0 +1,24 @@ +name = "hello_complex" + +[library] +source-dir="source" + +[[executable]] +name="say_hello" +source-dir="apps/say_hello" +main="say_hello.f90" + +[[executable]] +name="say_goodbye" +source-dir="apps/say_goodbye" +main="say_goodbye.f90" + +[[test]] +name="greet_test" +source-dir="tests/greet" +main="greet_test.f90" + +[[test]] +name="farewell_test" +source-dir="tests/farewell" +main="farewell_test.f90" diff --git a/test/example_packages/hello_complex/source/farewell_m.f90 b/test/example_packages/hello_complex/source/farewell_m.f90 new file mode 100644 index 0000000..9fc75b9 --- /dev/null +++ b/test/example_packages/hello_complex/source/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/source/greet_m.f90 b/test/example_packages/hello_complex/source/greet_m.f90 new file mode 100644 index 0000000..2372f9a --- /dev/null +++ b/test/example_packages/hello_complex/source/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/tests/farewell/farewell_test.f90 b/test/example_packages/hello_complex/tests/farewell/farewell_test.f90 new file mode 100644 index 0000000..0f21b18 --- /dev/null +++ b/test/example_packages/hello_complex/tests/farewell/farewell_test.f90 @@ -0,0 +1,18 @@ +program farewell_test + use farewell_m, only: make_farewell + 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/tests/greet/greet_test.f90 b/test/example_packages/hello_complex/tests/greet/greet_test.f90 new file mode 100644 index 0000000..41fa508 --- /dev/null +++ b/test/example_packages/hello_complex/tests/greet/greet_test.f90 @@ -0,0 +1,18 @@ +program greet_test + use greet_m, only: make_greeting + 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_fpm/.gitignore b/test/example_packages/hello_fpm/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/test/example_packages/hello_fpm/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/test/example_packages/hello_fpm/app/main.f90 b/test/example_packages/hello_fpm/app/main.f90 new file mode 100644 index 0000000..5df6d64 --- /dev/null +++ b/test/example_packages/hello_fpm/app/main.f90 @@ -0,0 +1,9 @@ +program hello_fpm + use farewell_m, only: make_farewell + use greet_m, only: make_greeting + + implicit none + + print *, make_greeting("fpm") + print *, make_farewell("fpm") +end program hello_fpm diff --git a/test/example_packages/hello_fpm/fpm.toml b/test/example_packages/hello_fpm/fpm.toml new file mode 100644 index 0000000..d94d904 --- /dev/null +++ b/test/example_packages/hello_fpm/fpm.toml @@ -0,0 +1,4 @@ +name = "hello_fpm" + +[dependencies] +hello_complex = { path = "../hello_complex" } diff --git a/test/example_packages/hello_world/.gitignore b/test/example_packages/hello_world/.gitignore new file mode 100644 index 0000000..a007fea --- /dev/null +++ b/test/example_packages/hello_world/.gitignore @@ -0,0 +1 @@ +build/* diff --git a/test/example_packages/hello_world/app/main.f90 b/test/example_packages/hello_world/app/main.f90 new file mode 100644 index 0000000..d16022b --- /dev/null +++ b/test/example_packages/hello_world/app/main.f90 @@ -0,0 +1,3 @@ +program hello_world + print *, "Hello, World!" +end program hello_world diff --git a/test/example_packages/hello_world/fpm.toml b/test/example_packages/hello_world/fpm.toml new file mode 100644 index 0000000..b80e8d1 --- /dev/null +++ b/test/example_packages/hello_world/fpm.toml @@ -0,0 +1 @@ +name = "hello_world" -- cgit v1.2.3 From 421fe3f5343079054ecb4cbe8298eb1ab2731c8d Mon Sep 17 00:00:00 2001 From: Brad Richardson Date: Sun, 31 May 2020 19:58:20 -0700 Subject: Add dev-dependencies --- test/example_packages/circular_example/fpm.toml | 8 ++------ test/example_packages/circular_example/test/main.f90 | 7 +++++++ test/example_packages/circular_example/tests/main.f90 | 7 ------- 3 files changed, 9 insertions(+), 13 deletions(-) create mode 100644 test/example_packages/circular_example/test/main.f90 delete mode 100644 test/example_packages/circular_example/tests/main.f90 (limited to 'test') diff --git a/test/example_packages/circular_example/fpm.toml b/test/example_packages/circular_example/fpm.toml index 034ec57..c524ce5 100644 --- a/test/example_packages/circular_example/fpm.toml +++ b/test/example_packages/circular_example/fpm.toml @@ -1,8 +1,4 @@ name = "circular_example" -[[test]] - name = "test" - source-dir = "tests" - main = "main.f90" - [test.dependencies] - circular_test = { path = "../circular_test" } +[dev-dependencies] +circular_test = { path = "../circular_test" } diff --git a/test/example_packages/circular_example/test/main.f90 b/test/example_packages/circular_example/test/main.f90 new file mode 100644 index 0000000..5b7d803 --- /dev/null +++ b/test/example_packages/circular_example/test/main.f90 @@ -0,0 +1,7 @@ +program run_tests + use hello_test, only: run_test + + implicit none + + call run_test +end program run_tests diff --git a/test/example_packages/circular_example/tests/main.f90 b/test/example_packages/circular_example/tests/main.f90 deleted file mode 100644 index 5b7d803..0000000 --- a/test/example_packages/circular_example/tests/main.f90 +++ /dev/null @@ -1,7 +0,0 @@ -program run_tests - use hello_test, only: run_test - - implicit none - - call run_test -end program run_tests -- cgit v1.2.3