gFTL
gFTL copied to clipboard
Test fail to run, complaining about missing txt files: /usr/bin/diff: actual_logical.txt: No such file or directory, etc.
1/18 Testing: test_derived_logical
1/18 Test: test_derived_logical
Command: "/usr/bin/diff" "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.8.1/include/v2/parameters/tests/expected_logical.txt" "actual_logical.txt"
Directory: /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.8.1/include/v2/parameters/tests
"test_derived_logical" start time: Jan 22 11:05 CST
Output:
----------------------------------------------------------
/usr/bin/diff: actual_logical.txt: No such file or directory
<end of output>
Test time = 0.01 sec
----------------------------------------------------------
Test Failed.
"test_derived_logical" end time: Jan 22 11:05 CST
"test_derived_logical" time elapsed: 00:00:00
Very odd. I don't have any immediate theory as to what could generate that error. It should be produced by a relatively simple python script that preprocesses a Fortran-FPP file. Please give me the exact sequence of commands that you issued to reach this state and I will attempt to replicate.
I also got the same error. These are the commands I used.
git clone [email protected]:Goddard-Fortran-Ecosystem/gFTL.git
cd gFTL
mkdir build
cd build
cmake .. -DCMAKE_Fortran_COMPILER_ID=NVHPC
make -j
make test
ctest
ccmake .
AWK /usr/bin/awk
CMAKE_BUILD_TYPE
CMAKE_INSTALL_PREFIX /tmp/pfunit/gFTL/build/installed
CPP /usr/bin/cpp
FILTER /tmp/pfunit/gFTL/build/include/v2/parameters/tests/filter.x
GFTL_TOP_DIR /tmp/pfunit/gFTL/build/installed/GFTL-1.10
M4 /usr/bin/m4
PFUNIT_DIR PFUNIT_DIR-NOTFOUND
@tclune Sorry, this went forgotten somehow. I will look into this again – I think the portfile is on another machine.
@tclune So, I just use CMake build system, nothing unusual. It just does not generate needed files for tests. Problem still there with 1.10.0.
make[2]: Nothing to be done for `include/v1/CMakeFiles/force-generation-of-includes.dir/build'.
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0'
[100%] Built target force-generation-of-includes
make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0'
/opt/local/bin/cmake -E cmake_progress_start /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0/CMakeFiles 0
make: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0'
36-25% sudo port -v test gFTL
Warning: configured user/group macports does not exist, will build as root
---> Computing dependencies for gFTL.
---> Testing gFTL
Executing: cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0" && ctest test
Test project /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0
Start 1: test_derived_logical
1/18 Test #1: test_derived_logical ..............***Failed 0.01 sec
Start 2: test_derived_integer
2/18 Test #2: test_derived_integer ..............***Failed 0.01 sec
Start 3: test_derived_integer32
3/18 Test #3: test_derived_integer32 ............***Failed 0.01 sec
Start 4: test_derived_real
4/18 Test #4: test_derived_real .................***Failed 0.01 sec
Start 5: test_derived_double
5/18 Test #5: test_derived_double ...............***Failed 0.01 sec
Start 6: test_derived_complex
6/18 Test #6: test_derived_complex ..............***Failed 0.01 sec
Start 7: test_derived_complex32
7/18 Test #7: test_derived_complex32 ............***Failed 0.01 sec
Start 8: test_derived_double_complex
8/18 Test #8: test_derived_double_complex .......***Failed 0.01 sec
Start 9: test_derived_fixed_string
9/18 Test #9: test_derived_fixed_string .........***Failed 0.01 sec
Start 10: test_derived_deferred_string
10/18 Test #10: test_derived_deferred_string ......***Failed 0.01 sec
Start 11: test_derived_unlimited
11/18 Test #11: test_derived_unlimited ............***Failed 0.01 sec
Start 12: test_derived_integer_rank_1
12/18 Test #12: test_derived_integer_rank_1 .......***Failed 0.01 sec
Start 13: test_derived_integer32_rank_2
13/18 Test #13: test_derived_integer32_rank_2 .....***Failed 0.01 sec
Start 14: test_derived_integer_shape_1d
14/18 Test #14: test_derived_integer_shape_1d .....***Failed 0.01 sec
Start 15: test_derived_integer32_shape_2d
15/18 Test #15: test_derived_integer32_shape_2d ...***Failed 0.01 sec
Start 16: test_derived_Foo
16/18 Test #16: test_derived_Foo ..................***Failed 0.01 sec
Start 17: test_derived_FooPoly
17/18 Test #17: test_derived_FooPoly ..............***Failed 0.01 sec
Start 18: test_derived_kitchen_sink
18/18 Test #18: test_derived_kitchen_sink .........***Failed 0.01 sec
0% tests passed, 18 tests failed out of 18
Total Test time (real) = 0.15 sec
The following tests FAILED:
1 - test_derived_logical (Failed)
2 - test_derived_integer (Failed)
3 - test_derived_integer32 (Failed)
4 - test_derived_real (Failed)
5 - test_derived_double (Failed)
6 - test_derived_complex (Failed)
7 - test_derived_complex32 (Failed)
8 - test_derived_double_complex (Failed)
9 - test_derived_fixed_string (Failed)
10 - test_derived_deferred_string (Failed)
11 - test_derived_unlimited (Failed)
12 - test_derived_integer_rank_1 (Failed)
13 - test_derived_integer32_rank_2 (Failed)
14 - test_derived_integer_shape_1d (Failed)
15 - test_derived_integer32_shape_2d (Failed)
16 - test_derived_Foo (Failed)
17 - test_derived_FooPoly (Failed)
18 - test_derived_kitchen_sink (Failed)
Errors while running CTest
Couldn’t we just provide ready-to-use txt files for tests? After all, we do not test text processing her.
Configure stage:
---> Extracting gFTL-1.10.0.tar.gz
Executing: cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/gFTL/gFTL-1.10.0.tar.gz' | /usr/bin/gnutar --no-same-owner -xf -
---> Configuring gFTL
Executing: cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0" && /opt/local/bin/cmake -G "CodeBlocks - Unix Makefiles" -DCMAKE_BUILD_TYPE=MacPorts -DCMAKE_INSTALL_PREFIX="/opt/local" -DCMAKE_INSTALL_NAME_DIR="/opt/local/lib" -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr" -DCMAKE_C_COMPILER="$CC" -DCMAKE_CXX_COMPILER="$CXX" -DCMAKE_OBJC_COMPILER="$CC" -DCMAKE_OBJCXX_COMPILER="$CXX" -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_POLICY_DEFAULT_CMP0060=NEW -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_MAKE_PROGRAM=/usr/bin/make -DCMAKE_MODULE_PATH="/opt/local/share/cmake/Modules" -DCMAKE_PREFIX_PATH="/opt/local/share/cmake/Modules" -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON -DCMAKE_INSTALL_RPATH="/opt/local/lib" -Wno-dev -DCMAKE_OSX_ARCHITECTURES="ppc" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.6" -DCMAKE_OSX_SYSROOT="/" /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0
-- cpp is /opt/local/bin/cpp
-- Looking for a Fortran compiler
-- Looking for a Fortran compiler - /opt/local/bin/gfortran-mp-12
-- The Fortran compiler identification is GNU 12.3.0
-- Checking whether Fortran compiler has -isysroot
-- Checking whether Fortran compiler has -isysroot - yes
-- Checking whether Fortran compiler supports OSX deployment target flag
-- Checking whether Fortran compiler supports OSX deployment target flag - yes
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /opt/local/bin/gfortran-mp-12 - skipped
-- Configuring done (4.2s)
-- Generating done (0.2s)
Well, I found the cause of the problem: neither all nor test target includes preprocessing of those files. One should dig into a Makefile and find a special build target for that, test_generated_incs -_-
Then tests pass:
---> Testing gFTL
Executing: cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0" && ctest test
Test project /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_gFTL/gFTL/work/gFTL-1.10.0
Start 1: test_derived_logical
1/18 Test #1: test_derived_logical .............. Passed 0.01 sec
Start 2: test_derived_integer
2/18 Test #2: test_derived_integer .............. Passed 0.01 sec
Start 3: test_derived_integer32
3/18 Test #3: test_derived_integer32 ............ Passed 0.01 sec
Start 4: test_derived_real
4/18 Test #4: test_derived_real ................. Passed 0.00 sec
Start 5: test_derived_double
5/18 Test #5: test_derived_double ............... Passed 0.00 sec
Start 6: test_derived_complex
6/18 Test #6: test_derived_complex .............. Passed 0.01 sec
Start 7: test_derived_complex32
7/18 Test #7: test_derived_complex32 ............ Passed 0.01 sec
Start 8: test_derived_double_complex
8/18 Test #8: test_derived_double_complex ....... Passed 0.01 sec
Start 9: test_derived_fixed_string
9/18 Test #9: test_derived_fixed_string ......... Passed 0.00 sec
Start 10: test_derived_deferred_string
10/18 Test #10: test_derived_deferred_string ...... Passed 0.01 sec
Start 11: test_derived_unlimited
11/18 Test #11: test_derived_unlimited ............ Passed 0.01 sec
Start 12: test_derived_integer_rank_1
12/18 Test #12: test_derived_integer_rank_1 ....... Passed 0.01 sec
Start 13: test_derived_integer32_rank_2
13/18 Test #13: test_derived_integer32_rank_2 ..... Passed 0.01 sec
Start 14: test_derived_integer_shape_1d
14/18 Test #14: test_derived_integer_shape_1d ..... Passed 0.00 sec
Start 15: test_derived_integer32_shape_2d
15/18 Test #15: test_derived_integer32_shape_2d ... Passed 0.00 sec
Start 16: test_derived_Foo
16/18 Test #16: test_derived_Foo .................. Passed 0.01 sec
Start 17: test_derived_FooPoly
17/18 Test #17: test_derived_FooPoly .............. Passed 0.01 sec
Start 18: test_derived_kitchen_sink
18/18 Test #18: test_derived_kitchen_sink ......... Passed 0.01 sec
100% tests passed, 0 tests failed out of 18
Total Test time (real) = 0.12 sec
I'll be on leave through next week and will not be able to dig into this until after that.
The "multi-repo" testing definitely became more fragile after I allowed other user requests for variant configurations. If you have a PR for this, all the better ...