From 98567db19290dc07cc86efae720b0dc457ae9f65 Mon Sep 17 00:00:00 2001 From: lrknox Date: Wed, 15 Mar 2017 12:49:19 -0500 Subject: output_filter.sh: Comment added to address HDFFV-8270. The sample ontput in the file's comments are not up-to-date with the scripts in the file that remove output unique to certain systems when running test scripts. This output doesn't match expected output files for the tests, causing them to fail. Ther output_filter.sh file removes such output. Currently we don't have access to these systems to update the comments. testflushrefresh.sh.in: flushrefresh and other SWMR tests have been failing occasionally but regularly since bringing them to the develop branch. The logs and debugging point to unexpected deletion of signal files as the point of failure, and John Mainzer suggests that two such tests running simultaneously in the same directory may lead to the operating system deleting the other test's signal file. Running the flushrefresh test in its own directory seems to solve the problem. --- bin/output_filter.sh | 15 +++++++++++++++ test/testflushrefresh.sh.in | 27 ++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/bin/output_filter.sh b/bin/output_filter.sh index 58f1c48..35af819 100644 --- a/bin/output_filter.sh +++ b/bin/output_filter.sh @@ -17,6 +17,21 @@ # Created Date: 2011/5/3 +# Comment added to address HDFFV-8270: +# As I understand it, the purpose of this file is to remove extraneous messages +# that appear in stdout and stderr on some machines that have been tested outside +# of the HDF Group realm. The purpose of this script is to filter those +# extraneous messages from stdout and stderr so that when the output files are +# compared to the expected output, the extra messages will not cause failures in +# the tests. The system messages in the comments below are out of date, meaning +# I suppose that while the script code to filter messages on the system was +# correct correct when last used, the output in the comments doesn't match the +# script code that follows. I don't currently have access to any of these +# systems to see the current output and the effect of the script code. If using +# this file in the future, please update the comments to match the scripts in use. +# Larry Knox 2017/3/15 + + # Some systems will dump some messages to stdout for various reasons. # Remove them from the stdout result file. # $1 is the file name of the file to be filtered. diff --git a/test/testflushrefresh.sh.in b/test/testflushrefresh.sh.in index 83b7134..e7917a0 100644 --- a/test/testflushrefresh.sh.in +++ b/test/testflushrefresh.sh.in @@ -79,11 +79,22 @@ if [ $rc -ne 0 ] ; then exit 0 fi -# ======================== -# Launch the Test Program. -# ======================== -./flushrefresh & -pid_main=$! +# HDF5 has several tests that create and delete signal files to communicate +# between processes, and it seems that even though the names of the files are +# different, occasionally the wrong file is deleted, interrupting the flow of +# the test. Running each of these tests in its own directory should eliminate +# the problem. +mkdir -p flushrefresh_test/.libs +cp flushrefresh flushrefresh_test + +# With the --disable-shared option, flushrefresh is built in the test directory, +# otherwise it is in test/.libs with a wrapper script named flushrefresh in +# the test directory. test/flushrefresh should always be copied, +# .libs/flushrefresh should be copied only if it exists. +if [ -f .libs/flushrefresh ]; then + cp .libs/flushrefresh flushrefresh_test/.libs +fi +cd flushrefresh_test # ================================================= # Set up/initialize some variables to be used later @@ -98,6 +109,12 @@ if [ -e $testfile ]; then rm $testfile fi +# ======================== +# Launch the Test Program. +# ======================== +./flushrefresh & +pid_main=$! + # ======================================= # Run flush verification on test program. # ======================================= -- cgit v0.12