epfl-ecps / channelflow

Channelflow is a software system for numerical analysis of the incompressible fluid flow in channel geometries, written in C++ and MPI-parallelized.
GNU General Public License v2.0
65 stars 29 forks source link

make test seems broken #26

Open johnfgibson opened 4 years ago

johnfgibson commented 4 years ago

Describe the bug

On running "make test", many individual tests are reported to fail, even though the tests pass when run individually.

For example, running "make test" blow reports that chebyTest passes and laminarTest fails, but if you run each individually, they both emit "pass" and have return status 0 (correct termination).

gibson@sophist$ pwd
/home/gibson/channelflow-master/build_release

gibson@sophist$ make test
Running tests...
Test project /home/gibson/channelflow-master/build_release
        Start   1: unitTests
  1/105 Test   #1: unitTests ........................***Failed    2.06 sec
        Start   2: tridiag
  2/105 Test   #2: tridiag ..........................   Passed    0.06 sec
        Start   3: cheby
  3/105 Test   #3: cheby ............................   Passed    0.04 sec
        Start   4: laminar
  4/105 Test   #4: laminar ..........................***Failed    2.04 sec
        Start   5: helmholtz
  5/105 Test   #5: helmholtz ........................   Passed    0.12 sec
        Start   6: tausolver
  6/105 Test   #6: tausolver ........................***Failed    2.04 sec
        Start   7: poisson
  7/105 Test   #7: poisson ..........................***Failed    2.06 sec

^C^C make:  [Makefile:130: test] Interrupt

gibson@sophist$ tests/chebyTest | tail
chebyTest:         pass   
L1Dist(diff(integrate(g)), g) == 9.31699e-17
L1Dist(integrate(diff(gy)), g) == 0
trans  error == 2.27846e-18
d/dy   error == 1.3089e-15
d2/dy2 error == 2.24967e-14
test1
test2
test3
test4
           pass   
gibson@sophist$ echo $?
0

gibson@sophist$ tests/tausolverTest | tail

tausolverTest:           pass   
L2Dist(P,Ps)/L2Norm(P) == 1.9395e-14
L2Norm(udiv)  == 4.37638e-15
L2Norm(udivs) == 4.01131e-15
L2Dist(udiv,udivs)  == 5.1362e-15
 us(+/-1) == (-5.55112e-16, 1.59872e-14) (-1.44329e-15, 2.13163e-14)
 vs(+/-1) == (3.27516e-15, 7.85483e-15) (2.498e-15, 8.13238e-15)
vsy(+/-1) == (2.22045e-16, -1.27676e-15) (-6.66134e-16, 4.996e-16)
 ws(+/-1) == (6.66134e-16, 5.55112e-16) (4.44089e-16, -5.88418e-15)
 Ps(+/-1) == (-1.82077e-14, -4.36179e-14) (1.53766e-14, 4.25077e-14)
           pass   
gibson@sophist$ echo $?
0

Information on your system

openSUSE 15.2, openmpi3, gcc 7.5.0

This problem first appeared for me after upgrading to openSUSE 15.2 from 15.1. All the failed tests take about 2.06 seconds to execute, whereas the passing tests take fractions of a second. All the DNS tests fail.

cmake /home/gibson/gitworking/channelflow -DCMAKE_C_COMPILER=/usr/lib64/mpi/gcc/openmpi3/bin/mpicc -DCMAKE_CXX_COMPILER=/usr/lib64/mpi/gcc/openmpi3/bin/mpic++ -DCMAKE_BUILD_TYPE=release -DWITH_HDF5CXX=ON -DCMAKE_INSTALL_PREFIX=~/channelflow-masterster