From 1d911e2243ca7f9e723639e0f4a5c3d4d9dae1c8 Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 22 May 2026 14:14:49 +0200 Subject: [PATCH 1/9] Use default private for modules --- src/assertions.f90 | 7 +++++++ src/specials.f90 | 6 +++++- src/string_check.f90 | 3 +++ src/suite.f90 | 8 +++++++- src/utilities.f90 | 4 ++++ 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/assertions.f90 b/src/assertions.f90 index ac372b5..2a2a7af 100644 --- a/src/assertions.f90 +++ b/src/assertions.f90 @@ -4,6 +4,13 @@ MODULE FUTF_ASSERTIONS USE FUTF_UTILITIES, ONLY: APPEND_CHAR IMPLICIT NONE + PRIVATE + + PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_NOT_EQUAL + PUBLIC :: ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL + PUBLIC :: ASSERT_GREATER_THAN, ASSERT_GREATER_THAN_EQUAL + PUBLIC :: ASSERT_IS_INT, ASSERT_IS_REAL, ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX + PUBLIC :: ASSERT_ARRAY_CONTAINS INTEGER, PARAMETER :: INT_KIND_1BYTE = SELECTED_INT_KIND(2) INTEGER, PARAMETER :: INT_KIND_2BYTE = SELECTED_INT_KIND(4) diff --git a/src/specials.f90 b/src/specials.f90 index 872e6d9..49139c9 100644 --- a/src/specials.f90 +++ b/src/specials.f90 @@ -1,8 +1,12 @@ MODULE FUTF_SPECIALS USE FUTF_SUITE, ONLY: FUTF_TOTAL, FUTF_PASSED, & - REGISTER_FAILED, REGISTER_PASSED, INFO_STRINGS, APPEND_CHAR + REGISTER_FAILED, REGISTER_PASSED, INFO_STRINGS + USE FUTF_UTILITIES, ONLY: APPEND_CHAR IMPLICIT NONE + PRIVATE + + PUBLIC :: FAIL, SUCCEED CONTAINS diff --git a/src/string_check.f90 b/src/string_check.f90 index 5f0972f..81c4845 100644 --- a/src/string_check.f90 +++ b/src/string_check.f90 @@ -2,6 +2,9 @@ MODULE FTF_STRING_CHECK USE FUTF_SUITE, ONLY: REGISTER_FAILED, REGISTER_PASSED, INFO_STRINGS USE FUTF_UTILITIES, ONLY: APPEND_CHAR IMPLICIT NONE + PRIVATE + + PUBLIC :: STRING_CONTAINS, STRING_HAS_SUFFIX, STRING_HAS_PREFIX CHARACTER(LEN=300), PRIVATE :: INFO diff --git a/src/suite.f90 b/src/suite.f90 index f831f99..8de91b5 100644 --- a/src/suite.f90 +++ b/src/suite.f90 @@ -1,8 +1,14 @@ MODULE FUTF_SUITE USE FUTF_UTILITIES, ONLY: APPEND_CHAR, APPEND_INT IMPLICIT NONE + PRIVATE + + PUBLIC :: FUTF_PASSED, FUTF_TOTAL, FUTF_EXIT_CODE + PUBLIC :: IDENTIFIER, TEST_NAMES, TEST_RESULTS, INFO_STRINGS + PUBLIC :: TAG_TEST, REGISTER_PASSED, REGISTER_FAILED + PUBLIC :: TEST_SUMMARY, FAILED_TEST_SUMMARY + PUBLIC :: RESET_LAST_TEST_STATUS - PUBLIC INTEGER :: FUTF_PASSED = 0 ! Number of FUTF_PASSED Tests INTEGER :: FUTF_TOTAL = 0 ! FUTF_TOTAL Number of Tests INTEGER :: FUTF_EXIT_CODE = 0 ! Test Suite Exit Code diff --git a/src/utilities.f90 b/src/utilities.f90 index 078b9fa..7444a58 100644 --- a/src/utilities.f90 +++ b/src/utilities.f90 @@ -1,5 +1,9 @@ MODULE FUTF_UTILITIES IMPLICIT NONE + PRIVATE + + PUBLIC :: APPEND_CHAR, APPEND_INT, GET_INDEX_STRARRAY + CONTAINS FUNCTION APPEND_CHAR(INPUT_ARRAY, ELEMENT, INT_LEN) RESULT(OUTPUT_ARRAY) INTEGER, INTENT(IN) :: INT_LEN From 0e6cd53528c320cb28744a3cbde74fa80093171a Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 22 May 2026 14:48:18 +0200 Subject: [PATCH 2/9] Add missing public --- src/assertions.f90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/assertions.f90 b/src/assertions.f90 index 2a2a7af..0314fe2 100644 --- a/src/assertions.f90 +++ b/src/assertions.f90 @@ -12,6 +12,9 @@ MODULE FUTF_ASSERTIONS PUBLIC :: ASSERT_IS_INT, ASSERT_IS_REAL, ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX PUBLIC :: ASSERT_ARRAY_CONTAINS + PUBLIC :: INT_KIND_1BYTE, INT_KIND_2BYTE, INT_KIND_4BYTE, INT_KIND_8BYTE + PUBLIC :: REAL_KIND_4BYTE, REAL_KIND_8BYTE, INFO + INTEGER, PARAMETER :: INT_KIND_1BYTE = SELECTED_INT_KIND(2) INTEGER, PARAMETER :: INT_KIND_2BYTE = SELECTED_INT_KIND(4) INTEGER, PARAMETER :: INT_KIND_4BYTE = SELECTED_INT_KIND(9) From 4085f2793c72fa75c5a44c3bf3b860d00aa58933 Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 22 May 2026 15:10:06 +0200 Subject: [PATCH 3/9] Fix public --- src/assertions.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assertions.f90 b/src/assertions.f90 index 0314fe2..bfba09c 100644 --- a/src/assertions.f90 +++ b/src/assertions.f90 @@ -13,7 +13,7 @@ MODULE FUTF_ASSERTIONS PUBLIC :: ASSERT_ARRAY_CONTAINS PUBLIC :: INT_KIND_1BYTE, INT_KIND_2BYTE, INT_KIND_4BYTE, INT_KIND_8BYTE - PUBLIC :: REAL_KIND_4BYTE, REAL_KIND_8BYTE, INFO + PUBLIC :: REAL_KIND_4BYTE, REAL_KIND_8BYTE INTEGER, PARAMETER :: INT_KIND_1BYTE = SELECTED_INT_KIND(2) INTEGER, PARAMETER :: INT_KIND_2BYTE = SELECTED_INT_KIND(4) From ba2fd4e223a224513288cf6b5c5073cf497618fc Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 12 Jun 2026 14:24:54 +0200 Subject: [PATCH 4/9] Add public interfaces --- src/test_suite.f90 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/test_suite.f90 b/src/test_suite.f90 index f6ce465..e3fe373 100644 --- a/src/test_suite.f90 +++ b/src/test_suite.f90 @@ -4,4 +4,18 @@ MODULE FORTUTF USE FUTF_SUITE USE FUTF_SPECIALS USE FTF_STRING_CHECK + + IMPLICIT NONE + PRIVATE + + PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_NOT_EQUAL, & + & ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL, ASSERT_GREATER_THAN, & + & ASSERT_GREATER_THAN_EQUAL, ASSERT_IS_INT, ASSERT_IS_REAL, & + & ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX, ASSERT_ARRAY_CONTAINS + PUBLIC :: FAIL, SUCCEED + PUBLIC :: STRING_CONTAINS, STRING_HAS_SUFFIX, STRING_HAS_PREFIX + PUBLIC :: FUTF_PASSED, FUTF_TOTAL, FUTF_EXIT_CODE, IDENTIFIER, TEST_NAMES, & + & TEST_RESULTS, INFO_STRINGS, TAG_TEST, REGISTER_PASSED, & + & REGISTER_FAILED, TEST_SUMMARY, FAILED_TEST_SUMMARY, & + & RESET_LAST_TEST_STATUS END MODULE FORTUTF From 2cca27b086f6e36f847b27281a9677a95ecc8110 Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 12 Jun 2026 14:28:52 +0200 Subject: [PATCH 5/9] Add missing interfaces --- src/test_suite.f90 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test_suite.f90 b/src/test_suite.f90 index e3fe373..a33c86b 100644 --- a/src/test_suite.f90 +++ b/src/test_suite.f90 @@ -11,7 +11,9 @@ MODULE FORTUTF PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_NOT_EQUAL, & & ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL, ASSERT_GREATER_THAN, & & ASSERT_GREATER_THAN_EQUAL, ASSERT_IS_INT, ASSERT_IS_REAL, & - & ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX, ASSERT_ARRAY_CONTAINS + & ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX, ASSERT_ARRAY_CONTAINS, & + & INT_KIND_1BYTE, INT_KIND_2BYTE, INT_KIND_4BYTE, INT_KIND_8BYTE, & + & REAL_KIND_4BYTE, REAL_KIND_8BYTE PUBLIC :: FAIL, SUCCEED PUBLIC :: STRING_CONTAINS, STRING_HAS_SUFFIX, STRING_HAS_PREFIX PUBLIC :: FUTF_PASSED, FUTF_TOTAL, FUTF_EXIT_CODE, IDENTIFIER, TEST_NAMES, & From 72976f8c595f8fec79b9bae68a56f83f6a61fb5c Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 12 Jun 2026 14:40:28 +0200 Subject: [PATCH 6/9] Add missing interfaces --- src/test_suite.f90 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test_suite.f90 b/src/test_suite.f90 index a33c86b..f92bf5c 100644 --- a/src/test_suite.f90 +++ b/src/test_suite.f90 @@ -1,9 +1,9 @@ MODULE FORTUTF USE FUTF_ASSERTIONS - USE FUTF_UTILITIES - USE FUTF_SUITE USE FUTF_SPECIALS USE FTF_STRING_CHECK + USE FUTF_SUITE + USE FUTF_UTILITIES IMPLICIT NONE PRIVATE @@ -20,4 +20,5 @@ MODULE FORTUTF & TEST_RESULTS, INFO_STRINGS, TAG_TEST, REGISTER_PASSED, & & REGISTER_FAILED, TEST_SUMMARY, FAILED_TEST_SUMMARY, & & RESET_LAST_TEST_STATUS + PUBLIC :: APPEND_CHAR, APPEND_INT, GET_INDEX_STRARRAY END MODULE FORTUTF From 70711938cc552f96482eb355d53ff98e67b21033 Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Fri, 12 Jun 2026 15:04:54 +0200 Subject: [PATCH 7/9] Add missing interfaces --- src/assertions.f90 | 4 ++-- src/test_suite.f90 | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/assertions.f90 b/src/assertions.f90 index bfba09c..e5c6d52 100644 --- a/src/assertions.f90 +++ b/src/assertions.f90 @@ -6,8 +6,8 @@ MODULE FUTF_ASSERTIONS IMPLICIT NONE PRIVATE - PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_NOT_EQUAL - PUBLIC :: ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL + PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_TRUE, ASSERT_FALSE + PUBLIC :: ASSERT_NOT_EQUAL, ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL PUBLIC :: ASSERT_GREATER_THAN, ASSERT_GREATER_THAN_EQUAL PUBLIC :: ASSERT_IS_INT, ASSERT_IS_REAL, ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX PUBLIC :: ASSERT_ARRAY_CONTAINS diff --git a/src/test_suite.f90 b/src/test_suite.f90 index f92bf5c..5285a5f 100644 --- a/src/test_suite.f90 +++ b/src/test_suite.f90 @@ -8,12 +8,12 @@ MODULE FORTUTF IMPLICIT NONE PRIVATE - PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_NOT_EQUAL, & - & ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL, ASSERT_GREATER_THAN, & - & ASSERT_GREATER_THAN_EQUAL, ASSERT_IS_INT, ASSERT_IS_REAL, & - & ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX, ASSERT_ARRAY_CONTAINS, & - & INT_KIND_1BYTE, INT_KIND_2BYTE, INT_KIND_4BYTE, INT_KIND_8BYTE, & - & REAL_KIND_4BYTE, REAL_KIND_8BYTE + PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_TRUE, ASSERT_FALSE, & + & ASSERT_NOT_EQUAL, ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL, & + & ASSERT_GREATER_THAN, ASSERT_GREATER_THAN_EQUAL, ASSERT_IS_INT, & + & ASSERT_IS_REAL, ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX, & + & ASSERT_ARRAY_CONTAINS, INT_KIND_1BYTE, INT_KIND_2BYTE, & + & INT_KIND_4BYTE, INT_KIND_8BYTE, REAL_KIND_4BYTE, REAL_KIND_8BYTE PUBLIC :: FAIL, SUCCEED PUBLIC :: STRING_CONTAINS, STRING_HAS_SUFFIX, STRING_HAS_PREFIX PUBLIC :: FUTF_PASSED, FUTF_TOTAL, FUTF_EXIT_CODE, IDENTIFIER, TEST_NAMES, & From 11eb0d71e7a4a4e6b3b83fdebe5acf76b5379355 Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Tue, 16 Jun 2026 09:36:23 +0200 Subject: [PATCH 8/9] Remove redundant code --- src/test_suite.f90 | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/test_suite.f90 b/src/test_suite.f90 index 5285a5f..9f5818a 100644 --- a/src/test_suite.f90 +++ b/src/test_suite.f90 @@ -4,21 +4,4 @@ MODULE FORTUTF USE FTF_STRING_CHECK USE FUTF_SUITE USE FUTF_UTILITIES - - IMPLICIT NONE - PRIVATE - - PUBLIC :: ASSERT_EQUAL, ASSERT_ALMOST_EQUAL, ASSERT_TRUE, ASSERT_FALSE, & - & ASSERT_NOT_EQUAL, ASSERT_LESS_THAN, ASSERT_LESS_THAN_EQUAL, & - & ASSERT_GREATER_THAN, ASSERT_GREATER_THAN_EQUAL, ASSERT_IS_INT, & - & ASSERT_IS_REAL, ASSERT_IS_CHARACTER, ASSERT_IS_COMPLEX, & - & ASSERT_ARRAY_CONTAINS, INT_KIND_1BYTE, INT_KIND_2BYTE, & - & INT_KIND_4BYTE, INT_KIND_8BYTE, REAL_KIND_4BYTE, REAL_KIND_8BYTE - PUBLIC :: FAIL, SUCCEED - PUBLIC :: STRING_CONTAINS, STRING_HAS_SUFFIX, STRING_HAS_PREFIX - PUBLIC :: FUTF_PASSED, FUTF_TOTAL, FUTF_EXIT_CODE, IDENTIFIER, TEST_NAMES, & - & TEST_RESULTS, INFO_STRINGS, TAG_TEST, REGISTER_PASSED, & - & REGISTER_FAILED, TEST_SUMMARY, FAILED_TEST_SUMMARY, & - & RESET_LAST_TEST_STATUS - PUBLIC :: APPEND_CHAR, APPEND_INT, GET_INDEX_STRARRAY END MODULE FORTUTF From 760fc07500cf3cb3fdc673ee86c5574d152f3fec Mon Sep 17 00:00:00 2001 From: Yen-Chen Chen Date: Tue, 16 Jun 2026 09:40:25 +0200 Subject: [PATCH 9/9] Add -fmodule-private flag --- .github/workflows/futs_windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/futs_windows.yml b/.github/workflows/futs_windows.yml index 506651d..fcf625c 100644 --- a/.github/workflows/futs_windows.yml +++ b/.github/workflows/futs_windows.yml @@ -20,7 +20,7 @@ jobs: run: | choco upgrade mingw --version="'15.1.0'" -y choco install -y make - cmake -G "Unix Makefiles" -Bbuild -DBUILD_TESTS=ON + cmake -G "Unix Makefiles" -DCMAKE_Fortran_FLAGS="-fmodule-private" -Bbuild -DBUILD_TESTS=ON cmake --build build ./build/FortUTF_Tests.exe