#! /bin/sh # # Copyright by The HDF Group. # All rights reserved. # # This file is part of HDF5. The full HDF5 copyright notice, including # terms governing use, modification, and redistribution, is contained in # the COPYING file, which can be found at the root of the source code # distribution tree, or in https://www.hdfgroup.org/licenses. # If you do not have access to either file, you may request a copy from # help@hdfgroup.org. # # # Test script for the parallel flush test # # The parallel flush test uses two programs to test flush operations # in parallel HDF5. The first program purposely exits without calling # MPI_Finalize(), which is an error under the MPI standard and mpiexec # in some implementations will return an error code even though all # processes exit successfully. This script lets us swallow the error # from the first program. # # True errors in the first program will be detected as errors in the # second program, so watch out for that. # # Programmer: Dana Robinson # Fall 2018 # The build (current) directory might be different than the source directory. if test -z "$srcdir"; then srcdir=. fi # Turn the $$ we use to avoid Autotools munging into $ # # Allowing $$ to substitute in both the RUNPARALLEL string and the # regexp is intentional. There doesn't seem to be a way around # this using quote shenanigans. The downside is that there is a remote # chance that the shell's pid will match a number in the RUNPARALLEL # variable, but that seems less likely to cause problems than expecting # library builders to specify two almost identical versions of the # RUNPARALLEL command, one for use in scripts and one via Makefiles. RUNPARALLELSCRIPT=`echo "@RUNPARALLEL@" | sed "s/$$/\$/g"` # ========================================== # Run the first parallel flush test program # (note that we ignore any errors here) # ========================================== echo "*** NOTE ***********************************************************" echo "You may see complaints from mpiexec et al. that not all processes" echo "called MPI_Finalize(). This is an intended characteristic of the" echo "test and should not be considered an error." echo "********************************************************************" eval ${RUNPARALLELSCRIPT} ./t_pflush1 # =========================================== # Run the second parallel flush test program # The return code of this call is the return # code of the script. # =========================================== eval ${RUNPARALLELSCRIPT} ./t_pflush2