Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 64 additions & 3 deletions test/fpm_test/test_module_dependencies.f90
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ subroutine collect_module_dependencies(testsuite)
test_subdirectory_module_use), &
& new_unittest("invalid-subdirectory-module-use", &
test_invalid_subdirectory_module_use, should_fail=.true.), &
& new_unittest("tree-shake-module", &
& new_unittest("tree-shake-module", &
test_tree_shake_module, should_fail=.false.), &
& new_unittest("tree-shake-subprogram-with-module", &
& new_unittest("tree-shake-subprogram-with-module", &
test_tree_shake_subprogram_with_module, should_fail=.false.) &
]

end subroutine collect_module_dependencies


Expand All @@ -74,6 +74,10 @@ subroutine test_library_module_use(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, &
provides=[string_t('my_mod_1')])
Expand Down Expand Up @@ -143,6 +147,10 @@ subroutine test_scope(exe_scope,error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_scope"
model%build_prefix = ""
model%packages(1)%name = "package1"

scope_str = merge('FPM_SCOPE_APP ','FPM_SCOPE_TEST',exe_scope==FPM_SCOPE_APP)//' - '

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
Expand Down Expand Up @@ -201,6 +209,10 @@ subroutine test_program_with_module(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(1))

model%package_name = "test_program_with_module"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_PROGRAM,file_name="app/my_program.f90", &
scope = FPM_SCOPE_APP, &
provides=[string_t('app_mod')], &
Expand Down Expand Up @@ -254,6 +266,10 @@ subroutine test_scope(exe_scope,error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(3))

model%package_name = "test_scope"
model%build_prefix = ""
model%packages(1)%name = "package1"

scope_str = merge('FPM_SCOPE_APP ','FPM_SCOPE_TEST',exe_scope==FPM_SCOPE_APP)//' - '

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="app/app_mod1.f90", &
Expand Down Expand Up @@ -313,6 +329,10 @@ subroutine test_missing_library_use(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_missing_library_use"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, &
provides=[string_t('my_mod_1')])
Expand Down Expand Up @@ -340,6 +360,10 @@ subroutine test_missing_program_use(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_missing_program_use"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, &
provides=[string_t('my_mod_1')])
Expand All @@ -366,6 +390,10 @@ subroutine test_invalid_library_use(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_invalid_library_use"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="app/app_mod.f90", &
scope = FPM_SCOPE_APP, &
provides=[string_t('app_mod')])
Expand Down Expand Up @@ -393,6 +421,10 @@ subroutine test_subdirectory_module_use(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_subdirectory_module_use"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="app/subdir/app_mod.f90", &
scope = FPM_SCOPE_APP, &
provides=[string_t('app_mod')])
Expand All @@ -416,6 +448,10 @@ subroutine test_package_with_no_module_duplicates(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_package_with_no_module_duplicates"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, provides=[string_t('my_mod_1')])

Expand All @@ -440,6 +476,10 @@ subroutine test_package_module_duplicates_same_source(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(1))

model%package_name = "test_package_module_duplicates_same_source"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, provides=[string_t('my_mod_1'), string_t('my_mod_1')])

Expand All @@ -461,6 +501,10 @@ subroutine test_package_module_duplicates_one_package(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_package_module_duplicates_one_package"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1_a.f90", &
scope = FPM_SCOPE_LIB, provides=[string_t('my_mod_1')])

Expand All @@ -486,6 +530,11 @@ subroutine test_package_module_duplicates_two_packages(error)
allocate(model%packages(1)%sources(1))
allocate(model%packages(2)%sources(1))

model%package_name = "test_package_module_duplicates_two_packages"
model%build_prefix = ""
model%packages(1)%name = "package1"
model%packages(2)%name = "package2"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/subdir1/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, provides=[string_t('my_mod_1')])

Expand Down Expand Up @@ -515,6 +564,10 @@ subroutine test_tree_shake_module(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(4))

model%package_name = "test_tree_shake_module"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, &
provides=[string_t('my_mod_1')]) ! indirectly used
Expand Down Expand Up @@ -586,6 +639,10 @@ subroutine test_tree_shake_subprogram_with_module(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(4))

model%package_name = "test_tree_shake_subprogram_with_module"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="src/my_mod_1.f90", &
scope = FPM_SCOPE_LIB, &
provides=[string_t('my_mod_1')]) ! used via subprogram
Expand Down Expand Up @@ -652,6 +709,10 @@ subroutine test_invalid_subdirectory_module_use(error)
allocate(model%packages(1))
allocate(model%packages(1)%sources(2))

model%package_name = "test_invalid_subdirectory_module_use"
model%build_prefix = ""
model%packages(1)%name = "package1"

model%packages(1)%sources(1) = new_test_source(FPM_UNIT_MODULE,file_name="app/diff_dir/app_mod.f90", &
scope = FPM_SCOPE_APP, &
provides=[string_t('app_mod')])
Expand Down