summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2010-06-08 18:22:11 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2010-06-08 18:22:11 (GMT)
commited9a9f8c5077ab4ed9526ae97e2c5788ff7cf994 (patch)
treecdf98f224168356d4461c96813736fcb4dd41ff9 /tools
parent21d186a8e7f89a065f47d6f515da4ef1495e29b7 (diff)
downloadhdf5-ed9a9f8c5077ab4ed9526ae97e2c5788ff7cf994.zip
hdf5-ed9a9f8c5077ab4ed9526ae97e2c5788ff7cf994.tar.gz
hdf5-ed9a9f8c5077ab4ed9526ae97e2c5788ff7cf994.tar.bz2
[svn-r18985] Test feature: (bugs 1919)
Problem: some launching command like yod (and sometimes mpirun), do not pass back the exit code of the executables back to the shell. It always returns 0 if it can launch the executable. This cause tests that expect non-zero exit code to fail incorrectly. Short term Solution: Added the feature that if $RUNSERIAL_NOEXITCODE is defined, do not test conditions that rely on non-zero exit code. Tests: dove-linux using RUNSERIAL=thgyod to see the failures and using $RUNSERIAL_NOEXITCODE=yes to bypass the errors. Also h5committested.
Diffstat (limited to 'tools')
-rw-r--r--tools/h5copy/testh5copy.sh10
-rwxr-xr-xtools/h5diff/testh5diff.sh12
-rw-r--r--tools/h5ls/testh5ls.sh.in10
3 files changed, 28 insertions, 4 deletions
diff --git a/tools/h5copy/testh5copy.sh b/tools/h5copy/testh5copy.sh
index 3f24bdf..e98e67e 100644
--- a/tools/h5copy/testh5copy.sh
+++ b/tools/h5copy/testh5copy.sh
@@ -41,6 +41,7 @@ DIFF='diff -c'
nerrors=0
verbose=yes
+h5haveexitcode=yes # default is yes
# The build (current) directory might be different than the source directory.
if test -z "$srcdir"; then
@@ -51,6 +52,13 @@ OUTDIR=./testfiles
test -d $OUTDIR || mkdir $OUTDIR
+# RUNSERIAL is used. Check if it can return exit code from executalbe correctly.
+if [ -n "$RUNSERIAL_NOEXITCODE" ]; then
+ echo "***Warning*** Serial Exit Code is not passed back to shell corretly."
+ echo "***Warning*** Exit code checking is skipped."
+ h5haveexitcode=no
+fi
+
# Print a "SKIP" message
SKIP() {
TESTING $H5COPY $@
@@ -200,7 +208,7 @@ H5DIFFTEST_FAIL()
$RUNSERIAL $H5DIFF_BIN -q "$@"
RET=$?
- if [ $RET != 1 ] ; then
+ if [ $h5haveexitcode = 'yes' -a $RET != 1 ] ; then
echo "*FAILED*"
nerrors="`expr $nerrors + 1`"
else
diff --git a/tools/h5diff/testh5diff.sh b/tools/h5diff/testh5diff.sh
index 5bbec8d..421bf73 100755
--- a/tools/h5diff/testh5diff.sh
+++ b/tools/h5diff/testh5diff.sh
@@ -67,6 +67,7 @@ DIFF='diff -c'
nerrors=0
verbose=yes
+h5haveexitcode=yes # default is yes
pmode= # default to run h5diff tests
mydomainname=`domainname 2>/dev/null`
@@ -103,6 +104,13 @@ while [ $# -gt 0 ]; do
esac
done
+# RUNSERIAL is used. Check if it can return exit code from executalbe correctly.
+if [ -n "$RUNSERIAL_NOEXITCODE" ]; then
+ echo "***Warning*** Serial Exit Code is not passed back to shell corretly."
+ echo "***Warning*** Exit code checking is skipped."
+ h5haveexitcode=no
+fi
+
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
#
@@ -224,7 +232,7 @@ TOOLTEST() {
# is from mpirun not tool)
# if any problem occurs relate to an exit code, it will be caught in
# serial mode, so the test is fullfilled.
- if test -z "$pmode"; then
+ if test $h5haveexitcode = 'yes' -a -z "$pmode"; then
echo "EXIT CODE: $EXIT_CODE" >> $actual
fi
@@ -234,7 +242,7 @@ TOOLTEST() {
cp $actual $expect
elif $CMP $expect $actual; then
echo " PASSED"
- elif test -z "$pmode"; then
+ elif test $h5haveexitcode = 'yes' -a -z "$pmode"; then
echo "*FAILED*"
echo " Expected result ($expect) differs from actual result ($actual)"
nerrors="`expr $nerrors + 1`"
diff --git a/tools/h5ls/testh5ls.sh.in b/tools/h5ls/testh5ls.sh.in
index 970646d..7f07898 100644
--- a/tools/h5ls/testh5ls.sh.in
+++ b/tools/h5ls/testh5ls.sh.in
@@ -30,6 +30,7 @@ WORDS_BIGENDIAN="@WORDS_BIGENDIAN@"
nerrors=0
verbose=yes
+h5haveexitcode=yes # default is yes
# The build (current) directory might be different than the source directory.
if test -z "$srcdir"; then
@@ -37,6 +38,13 @@ if test -z "$srcdir"; then
fi
test -d ../testfiles || mkdir ../testfiles
+# RUNSERIAL is used. Check if it can return exit code from executalbe correctly.
+if [ -n "$RUNSERIAL_NOEXITCODE" ]; then
+ echo "***Warning*** Serial Exit Code is not passed back to shell corretly."
+ echo "***Warning*** Exit code checking is skipped."
+ h5haveexitcode=no
+fi
+
# Print a line-line message left justified in a field of 70 characters
# beginning with the word "Testing".
TESTING() {
@@ -74,7 +82,7 @@ TOOLTEST() {
exitcode=$?
cat $actual_err >> $actual
- if [ $exitcode -ne $retvalexpect ]; then
+ if [ $h5haveexitcode = 'yes' -a $exitcode -ne $retvalexpect ]; then
echo "*FAILED*"
nerrors="`expr $nerrors + 1`"
if [ yes = "$verbose" ]; then