summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/H5Ppublic.h2
-rw-r--r--test/links.c98
-rw-r--r--tools/h5dump/testh5dump.sh.in4
3 files changed, 73 insertions, 31 deletions
diff --git a/src/H5Ppublic.h b/src/H5Ppublic.h
index 589b30c..d76e743 100644
--- a/src/H5Ppublic.h
+++ b/src/H5Ppublic.h
@@ -366,6 +366,8 @@ H5_DLL herr_t H5Pget_char_encoding(hid_t plist_id, H5T_cset_t *encoding /*out*/)
H5_DLL herr_t H5Pset_nlinks(hid_t plist_id, size_t nlinks);
H5_DLL herr_t H5Pget_nlinks(hid_t plist_id, size_t *nlinks);
+H5_DLL herr_t H5Pset_elink_prefix(hid_t plist_id, const char *prefix);
+H5_DLL herr_t H5Pget_elink_prefix(hid_t plist_id, char **prefix);
H5_DLL herr_t H5Pset_copy_object(hid_t plist_id, unsigned crt_intmd);
H5_DLL herr_t H5Pget_copy_object(hid_t plist_id, unsigned *crt_intmd /*out*/);
diff --git a/test/links.c b/test/links.c
index 0ecbf5e..1f4b43b 100644
--- a/test/links.c
+++ b/test/links.c
@@ -19,9 +19,17 @@
* Purpose: Tests hard, soft (symbolic) & external links.
*/
+#include "h5test.h"
+
#include "H5Lprivate.h"
-#include "h5test.h"
+/*
+ * This file needs to access private information from the H5G package.
+ * This file also needs to access the group testing code.
+ */
+#define H5G_PACKAGE
+#define H5G_TESTING
+#include "H5Gpkg.h" /* Groups */
const char *FILENAME[] = {
"links0",
@@ -777,7 +785,6 @@ error:
static int
test_lcpl(hid_t fapl)
{
- hid_t fapl_id=-1;
hid_t file_id=-1;
hid_t group_id=-1;
hid_t space_id=-1;
@@ -793,10 +800,9 @@ test_lcpl(hid_t fapl)
* Here we only need to test the character encoding property */
/* Create file */
- fapl_id = h5_fileaccess();
- h5_fixname(FILENAME[0], fapl_id, filename, sizeof filename);
+ h5_fixname(FILENAME[0], fapl, filename, sizeof filename);
- if((file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id))<0) TEST_ERROR;
+ if((file_id = H5Fcreate(filename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl))<0) TEST_ERROR;
/* Create and link a group with the default LCPL */
if((group_id = H5Gcreate_expand(file_id, H5P_DEFAULT, H5P_DEFAULT)) < 0) TEST_ERROR;
@@ -913,19 +919,18 @@ test_lcpl(hid_t fapl)
if(H5Pclose(lcpl_id)<0) TEST_ERROR;
if(H5Sclose(space_id)<0) TEST_ERROR;
if(H5Fclose(file_id)<0) TEST_ERROR;
- if(H5Pclose(fapl_id)<0) TEST_ERROR;
+
PASSED();
return 0;
error:
H5E_BEGIN_TRY {
- H5Gclose(group_id);
- H5Dclose(dset_id);
- H5Tclose(type_id);
- H5Pclose(lcpl_id);
- H5Sclose(space_id);
- H5Fclose(file_id);
- H5Pclose(fapl_id);
+ H5Gclose(group_id);
+ H5Dclose(dset_id);
+ H5Tclose(type_id);
+ H5Pclose(lcpl_id);
+ H5Sclose(space_id);
+ H5Fclose(file_id);
} H5E_END_TRY;
return 1;
} /* end test_lcpl() */
@@ -2189,7 +2194,7 @@ external_link_toomany(hid_t fapl)
/* XXX: should probably make a "generic" test that creates the proper
* # of links based on this value - QAK
*/
- HDassert(H5G_NLINKS == 16);
+ HDassert(H5L_NLINKS_DEF == 16);
/* Set up filenames */
h5_fixname(FILENAME[3], fapl, filename1, sizeof filename1);
@@ -3709,7 +3714,8 @@ ud_link_reregister(hid_t fapl)
*/
/* Callback functions for UD "callback" links. */
/* Creation callback. Called during move as well. */
-herr_t UD_cb_create(const char * link_name, hid_t loc_group, void * udata, size_t udata_size, hid_t lcpl_id)
+static herr_t
+UD_cb_create(const char * link_name, hid_t loc_group, void * udata, size_t udata_size, hid_t lcpl_id)
{
if(!link_name) TEST_ERROR;
if(loc_group < 0) TEST_ERROR;
@@ -3725,7 +3731,9 @@ herr_t UD_cb_create(const char * link_name, hid_t loc_group, void * udata, size_
error:
return -1;
}
-static hid_t UD_cb_traverse(const char * link_name, hid_t cur_group, void * udata, size_t udata_size, hid_t lapl_id)
+
+static hid_t
+UD_cb_traverse(const char * link_name, hid_t cur_group, void * udata, size_t udata_size, hid_t lapl_id)
{
const char *target = (char *) udata;
hid_t ret_value;
@@ -3746,11 +3754,11 @@ static hid_t UD_cb_traverse(const char * link_name, hid_t cur_group, void * udat
error:
return -1;
}
+
/* Callback for when the link is moved or renamed */
-herr_t UD_cb_move(const char * new_name, hid_t new_loc, void * udata, size_t udata_size)
+static herr_t
+UD_cb_move(const char * new_name, hid_t new_loc, void * udata, size_t udata_size)
{
- const char *target = (char *) udata;
-
if(!new_name) TEST_ERROR;
if(new_loc < 0) TEST_ERROR;
if(udata_size > 0 && !udata) TEST_ERROR;
@@ -3764,8 +3772,10 @@ herr_t UD_cb_move(const char * new_name, hid_t new_loc, void * udata, size_t uda
error:
return -1;
}
+
/* Callback for when the link is deleted. Also called during move */
-herr_t UD_cb_delete(const char * link_name, hid_t loc_group, void * udata, size_t udata_size)
+static herr_t
+UD_cb_delete(const char * link_name, hid_t loc_group, void * udata, size_t udata_size)
{
if(!link_name) TEST_ERROR;
if(loc_group < 0) TEST_ERROR;
@@ -3781,7 +3791,8 @@ error:
return -1;
}
/* Callback for when the link is queried */
-ssize_t UD_cb_query(const char * link_name, void * udata, size_t udata_size, void* buf, size_t buf_size)
+static ssize_t
+UD_cb_query(const char * link_name, void * udata, size_t udata_size, void* buf, size_t buf_size)
{
if(!link_name) TEST_ERROR;
if(udata_size > 0 && !udata) TEST_ERROR;
@@ -3816,7 +3827,7 @@ const H5L_link_class_t UD_cb_class[1] = {{
}};
static int
-ud_callbacks(fapl)
+ud_callbacks(hid_t fapl)
{
hid_t fid = (-1); /* File ID */
hid_t gid = (-1); /* Group ID */
@@ -4088,7 +4099,9 @@ lapl_udata(hid_t fapl)
*
*-------------------------------------------------------------------------
*/
-herr_t UD_cbsucc_create(const char * link_name, hid_t loc_group, void * udata, size_t udata_size, hid_t lcpl_id)
+static herr_t
+UD_cbsucc_create(const char UNUSED * link_name, hid_t UNUSED loc_group,
+ void * udata, size_t udata_size, hid_t UNUSED lcpl_id)
{
/* Check to make sure that this "soft link" has a target */
if(udata_size < 1 || !udata)
@@ -4096,7 +4109,10 @@ herr_t UD_cbsucc_create(const char * link_name, hid_t loc_group, void * udata, s
return 0;
}
-static hid_t UD_cbsucc_traverse(const char * link_name, hid_t cur_group, void * udata, size_t udata_size, hid_t lapl_id)
+
+static hid_t
+UD_cbsucc_traverse(const char UNUSED * link_name, hid_t cur_group,
+ void * udata, size_t UNUSED udata_size, hid_t lapl_id)
{
const char *target = (char *) udata;
hid_t ret_value;
@@ -4110,39 +4126,57 @@ static hid_t UD_cbsucc_traverse(const char * link_name, hid_t cur_group, void *
error:
return -1;
}
+
/* Failure callback for when the link is moved or renamed */
-herr_t UD_cbfail_move(const char * new_name, hid_t new_loc, void * udata, size_t udata_size)
+static herr_t
+UD_cbfail_move(const char UNUSED * new_name, hid_t UNUSED new_loc,
+ void UNUSED * udata, size_t UNUSED udata_size)
{
/* This traversal function will always fail. */
return -1;
}
+
/* SuccessCallback for when the link is moved or renamed */
-herr_t UD_cbsucc_move(const char * new_name, hid_t new_loc, void * udata, size_t udata_size)
+static herr_t
+UD_cbsucc_move(const char UNUSED * new_name, hid_t UNUSED new_loc,
+ void UNUSED * udata, size_t UNUSED udata_size)
{
/* This traversal function will always succeed. */
return 0;
}
+
/* Callback for when the link is deleted. Also called during move */
-herr_t UD_cbsucc_delete(const char * link_name, hid_t loc_group, void * udata, size_t udata_size)
+static herr_t
+UD_cbsucc_delete(const char UNUSED * link_name, hid_t UNUSED loc_group,
+ void UNUSED * udata, size_t UNUSED udata_size)
{
/* This callback will always succeed */
return 0;
}
+
/* Callback for when the link is deleted. Also called during move */
-herr_t UD_cbfail_delete(const char * link_name, hid_t loc_group, void * udata, size_t udata_size)
+static herr_t
+UD_cbfail_delete(const char UNUSED * link_name, hid_t UNUSED loc_group,
+ void UNUSED * udata, size_t UNUSED udata_size)
{
/* This traversal function will always fail. */
/* Note: un-deletable links are in general a very bad idea! */
return -1;
}
+
/* Callback for when the link is queried */
-ssize_t UD_cbfail_query(const char * link_name, void * udata, size_t udata_size, void *buf, size_t buf_size)
+static ssize_t
+UD_cbfail_query(const char UNUSED * link_name, void UNUSED * udata,
+ size_t UNUSED udata_size, void UNUSED *buf, size_t UNUSED buf_size)
{
/* This traversal function will always fail. */
return -1;
}
+
/* Callback for when the link is queried */
-ssize_t UD_cbfail_on_write_query(const char * link_name, void * udata, size_t udata_size, void *buf, size_t buf_size)
+static ssize_t
+UD_cbfail_on_write_query(const char UNUSED * link_name, void UNUSED * udata,
+ size_t UNUSED udata_size, void *buf, size_t UNUSED buf_size)
{
/* This traversal function will return a buffer size,
* but will fail when a buffer is passed in ("writing to the buffer"
@@ -4154,8 +4188,10 @@ ssize_t UD_cbfail_on_write_query(const char * link_name, void * udata, size_t ud
return 0;
}
+
/* Callback for when the link is queried */
-ssize_t UD_cbsucc_query(const char * link_name, void * udata, size_t udata_size, void *buf, size_t buf_size)
+static ssize_t
+UD_cbsucc_query(const char UNUSED * link_name, void UNUSED * udata, size_t UNUSED udata_size, void *buf, size_t buf_size)
{
/* This traversal function will return a buffer size,
* but will fail when a buffer is passed in ("writing to the buffer"
diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in
index 3f40976..5de3a61 100644
--- a/tools/h5dump/testh5dump.sh.in
+++ b/tools/h5dump/testh5dump.sh.in
@@ -327,6 +327,10 @@ TOOLTEST tbin1.ddl -d integer -b out1.bin test1.h5
TOOLTEST tbin2.ddl -d integer -b out2.bin -F DI test1.h5
TOOLTEST tbin3.ddl -d integer -b out3.bin -F LE test1.h5
TOOLTEST tbin4.ddl -d integer -b out4.bin -F BE test1.h5
+ # Clean up binary output files
+ if test -z "$HDF5_NOCLEANUP"; then
+ rm -f $srcdir/../testfiles/out[1-4].bin
+ fi
if test $nerrors -eq 0 ; then
echo "All $DUMPER tests passed."