GROMACS 2023.1 25 - CommandLineUnitTests (Failed)

GROMACS version: 2023.1
GROMACS modification: None

No matter what parameters I use to build GROMACS, the regression test CommandLineUnitTests always fails at ParseCommonArgsTest.HandlesCompressedFiles.

Here is the error message:

[ RUN ] ParseCommonArgsTest.HandlesCompressedFiles
/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/src/gromacs/commandline/tests/pargs.cpp:416: Failure
Expected equality of these values:
expectedF
Which is: “/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.pdb.gz/ParseCommonArgsTest_HandlesCompressedFiles.pdb”
opt2fn(“-f”, nfile(), fnm)
Which is: 0x744af8
/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/src/gromacs/commandline/tests/pargs.cpp:417: Failure
Expected equality of these values:
expectedG
Which is: “/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.gro.Z/ParseCommonArgsTest_HandlesCompressedFiles.gro”
opt2fn(“-g”, nfile(), fnm)
Which is: 0x745038
[ FAILED ] ParseCommonArgsTest.HandlesCompressedFiles (7 ms)

I cannot resolve this error. Does anyone have an idea how to solve this problem?
Thank you in advance for your help.

Hi!

It looks like an issue with our tests, but a bit hard to confirm since it appears to be very compiler/environment dependent.

Could you please try editing the /data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/src/gromacs/commandline/tests/pargs.cpp file, and replacing, in line 415:

    EXPECT_EQ(expectedF, opt2fn("-f", nfile(), fnm));
    EXPECT_EQ(expectedG, opt2fn("-g", nfile(), fnm));

with

    EXPECT_EQ(expectedF.u8string(), opt2fn("-f", nfile(), fnm));
    EXPECT_EQ(expectedG.u8string(), opt2fn("-g", nfile(), fnm));

?

If my suspicion is correct and the suggestion above helps, the problem is totally harmless, and we’ll fix our tests in 2023.2.

Hello!

First of all, thank you for the quick reply and solution.
Unfortunately, I still get an error message.

[RUN] ParseCommonArgsTest.HandlesCompressedFiles
/data/a/lore***/GROMACS/gromacs-2023.1/gromacs-2023.1/src/gromacs/commandline/tests/pargs.cpp:422: Failure
Expected equality of these values:
  expectedF.u8string()
    Which is: "/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.pdb.gz/ParseCommonArgsTest_HandlesCompressedFiles.pdb"
  opt2fn("-f", nfile(), fnm)
    This is: "/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.pdb"
/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/src/gromacs/commandline/tests/pargs.cpp:423: Fails
Expected equality of these values:
  expectedG.u8string()
    Which is: "/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.gro.Z/ParseCommonArgsTest_HandlesCompressedFiles.gro"
  opt2fn("-g", nfile(), fnm)
    This is: "/data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.gro"
[ FAILED ] ParseCommonArgsTest.HandlesCompressedFiles (6 ms)

Unfortunately that’s not it yet, does anyone have another idea?

I have added the following Debugcode:

std::cout << "expectedF: " << expectedF.u8string() << std::endl;
std::cout << "opt2fn(\"-f\", nfile(), fnm): " << opt2fn("-f", nfile(), fnm) << std::endl;
std::cout << "expectedG: " << expectedG.u8string() << std::endl;
std::cout << "opt2fn(\"-g\", nfile(), fnm): " << opt2fn("-g", nfile(), fnm) << std::endl;

Here are the output:

expectedF: /data/a/loret***/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.pdb.gz/ParseCommonArgsTest_HandlesCompressedFiles.pdb
opt2fn("-f", nfile(), fnm): /data/a/lore***/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.pdb
expectedG: /data/a/loret***/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.gro.Z/ParseCommonArgsTest_HandlesCompressedFiles.gro
opt2fn("-g", nfile(), fnm): /data/a/lore****/GROMACS/gromacs-2023.1/gromacs-2023.1/build_create_andy_gcc9ucx_nopme_hpcx/src/gromacs/commandline/tests/Testing/Temporary/ParseCommonArgsTest_HandlesCompressedFiles.gro

Thanks for the verbose output. opt2fn produces the correct results; the reference data in our tests is getting messed up for some reason.

What version of the compiler and OS (and whatever else you think is relevant) are you using?

I use GNU 9.3.1 as C and CXX compiler and my OS is CentOS7.

Here are some details how I started the build process.
Maybe it helps.

source scl_source enable devtoolset-9
load module userspace/all
load module cuda/11.8 cmake/3.25.2
load module hwloc/2.9.1

export HWLOC_ROOT=/trinity/shared/apps/tr17.10/x86_64/hwloc-2.9.1
export LD_LIBRARY_PATH=$HWLOC_ROOT/lib:$LD_LIBRARY_PATH
export CPATH=$HWLOC_ROOT/include:$CPATH

export HPCX_HOME=/trinity/home/src/hpcx-v2.14-gcc-inbox-redhat7-cuda11-gdrcopy2-nccl2.16-x86_64
Source $HPCX_HOME/hpcx-init.sh
hpcx_load

cmake …
-DGMX_HWLOC_PREFIX=$HWLOC_ROOT
-DGMX_MPI=ON
-DGMX_FFT_LIBRARY=fftw3
-DGMX_BUILD_OWN_FFTW=ON
-DGMX_GPU=CUDA
-DCMAKE_BUILD_TYPE=release
-DGMX_DOUBLE=off
-DGMX_HWLOC=ON
-DREGRESSIONTEST_DOWNLOAD=ON

Thanks again for the effort.

Hi! We merged the fix. GROMACS 2023.2 (soon to be released) should be working fine.