summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@lbl.gov>2020-12-17 03:36:13 (GMT)
committerGitHub <noreply@github.com>2020-12-17 03:36:13 (GMT)
commit3f37f6648dcb868fdbd7f94658ad1cd965ae257c (patch)
treea922501d6c0bc59dcbf45e8b9b2b90028aca885b
parent068136351c3d52d12c6dd55f5d4185b700e9b5c4 (diff)
downloadhdf5-3f37f6648dcb868fdbd7f94658ad1cd965ae257c.zip
hdf5-3f37f6648dcb868fdbd7f94658ad1cd965ae257c.tar.gz
hdf5-3f37f6648dcb868fdbd7f94658ad1cd965ae257c.tar.bz2
Fix datatype lookup in named datatype flush/refresh code and detect more core dumps in test scripts (#193)hdf5-1_13_0-rc3
* Detect coredumps, and avoid printing a warning when creating a directory that already exists * Retrieve the actual datatype object correctly, in the face of possible pass-through VOL connectors * Detect more core dumps, and tiny formatting cleanup * Revert error status checks for mirror VFD test script
-rw-r--r--src/H5Tcommit.c4
-rw-r--r--test/testerror.sh.in6
-rw-r--r--test/testexternal_env.sh.in8
-rw-r--r--test/testflushrefresh.sh.in16
-rw-r--r--test/testlinks_env.sh.in4
-rw-r--r--test/testvds_env.sh.in4
6 files changed, 30 insertions, 12 deletions
diff --git a/src/H5Tcommit.c b/src/H5Tcommit.c
index b990e4a..3eacea3 100644
--- a/src/H5Tcommit.c
+++ b/src/H5Tcommit.c
@@ -1333,7 +1333,7 @@ H5T_save_refresh_state(hid_t tid, H5O_shared_t *cached_H5O_shared)
if (NULL == (dt = (H5T_t *)H5I_object_verify(tid, H5I_DATATYPE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "tid is not a datatype ID")
- vol_dt = (H5T_t *)(dt->vol_obj->data);
+ vol_dt = H5T_get_actual_type(dt);
if (NULL == vol_dt)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "tid is not not a named datatype ID")
@@ -1373,7 +1373,7 @@ H5T_restore_refresh_state(hid_t tid, H5O_shared_t *cached_H5O_shared)
if (NULL == (dt = (H5T_t *)H5I_object_verify(tid, H5I_DATATYPE)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "tid not a datatype ID")
- vol_dt = (H5T_t *)(dt->vol_obj->data);
+ vol_dt = H5T_get_actual_type(dt);
if (NULL == vol_dt)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "tid is not not a named datatype ID")
diff --git a/test/testerror.sh.in b/test/testerror.sh.in
index b5ec853..e4c6339 100644
--- a/test/testerror.sh.in
+++ b/test/testerror.sh.in
@@ -64,6 +64,12 @@ TEST() {
# Skip the plugin for testing missing filter.
$ENVCMD $RUNSERIAL $TEST_ERR_BIN
) >$actual 2>$actual_err
+
+ # Check for core dump
+ if [ $? != 0 ]; then
+ nerrors=`expr $nerrors + 1`
+ fi
+
# Extract file name, line number, version and thread IDs because they may be different
sed -e 's/thread [0-9]*/thread (IDs)/' -e 's/: .*\.c /: (file name) /' \
-e 's/line [0-9]*/line (number)/' \
diff --git a/test/testexternal_env.sh.in b/test/testexternal_env.sh.in
index 3cc140d..1327c7d 100644
--- a/test/testexternal_env.sh.in
+++ b/test/testexternal_env.sh.in
@@ -34,9 +34,9 @@ ENVCMD="env HDF5_EXTFILE_PREFIX=\${ORIGIN}" # The environment variable & valu
$ENVCMD $RUNSERIAL $TEST_BIN
exitcode=$?
if [ $exitcode -eq 0 ]; then
- echo "Test prefix for HDF5_EXTFILE_PREFIX PASSED"
- else
- nerrors="`expr $nerrors + 1`"
- echo "***Error encountered for HDF5_EXTFILE_PREFIX test***"
+ echo "Test prefix for HDF5_EXTFILE_PREFIX PASSED"
+else
+ nerrors="`expr $nerrors + 1`"
+ echo "***Error encountered for HDF5_EXTFILE_PREFIX test***"
fi
exit $nerrors
diff --git a/test/testflushrefresh.sh.in b/test/testflushrefresh.sh.in
index 3cdf10f..be44a13 100644
--- a/test/testflushrefresh.sh.in
+++ b/test/testflushrefresh.sh.in
@@ -82,7 +82,7 @@ fi
# 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 flushrefresh_test
+mkdir -p flushrefresh_test
cp flushrefresh flushrefresh_test
# With the --disable-shared option, flushrefresh is built in the test directory,
@@ -90,7 +90,7 @@ cp flushrefresh flushrefresh_test
# the test directory. test/flushrefresh should always be copied,
# .libs/flushrefresh should be copied only if it exists.
if [ -f .libs/flushrefresh ]; then
- mkdir flushrefresh_test/.libs
+ mkdir -p flushrefresh_test/.libs
for FILE in .libs/flushrefresh*; do
case "$FILE" in
*.o) continue ;; ## don't copy the .o files
@@ -156,6 +156,12 @@ until [ $verification_done -eq 1 ]; do
echo "all flush verification complete" > $endsignal
else
./flushrefresh $param1 $param2
+
+ # Check for core dump
+ if [ $? -gt 0 ]; then
+ nerrors=`expr $nerrors + 1`
+ fi
+
echo "verification flush process done" > $endsignal
fi
@@ -195,6 +201,12 @@ if [ $timedout -eq 0 ]; then
echo "all refresh verification complete" > $endsignal
else
./flushrefresh $param1
+
+ # Check for core dump
+ if [ $? -gt 0 ]; then
+ nerrors=`expr $nerrors + 1`
+ fi
+
echo "refresh verifiction process done" > $endsignal
fi
diff --git a/test/testlinks_env.sh.in b/test/testlinks_env.sh.in
index 3d6b3ce..e61e057 100644
--- a/test/testlinks_env.sh.in
+++ b/test/testlinks_env.sh.in
@@ -34,8 +34,8 @@ echo "$ENVCMD $RUNSERIAL $TEST_BIN"
$ENVCMD $RUNSERIAL $TEST_BIN
exitcode=$?
if [ $exitcode -eq 0 ]; then
- echo "Test for HDF5_EXT_PREFIX PASSED"
- else
+ echo "Test for HDF5_EXT_PREFIX PASSED"
+else
nerrors="`expr $nerrors + 1`"
echo "***Error encountered for HDF5_EXT_PREFIX test***"
fi
diff --git a/test/testvds_env.sh.in b/test/testvds_env.sh.in
index e9a27da..9577d7d 100644
--- a/test/testvds_env.sh.in
+++ b/test/testvds_env.sh.in
@@ -35,8 +35,8 @@ UNENVCMD="unset HDF5_VDS_PREFIX" # Unset the environment variable
$ENVCMD $RUNSERIAL $TEST_BIN
exitcode=$?
if [ $exitcode -eq 0 ]; then
- echo "Test prefix for HDF5_VDS_PREFIX PASSED"
- else
+ echo "Test prefix for HDF5_VDS_PREFIX PASSED"
+else
nerrors="`expr $nerrors + 1`"
echo "***Error encountered for HDF5_VDS_PREFIX test***"
fi