mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-02-23 16:20:57 +08:00
[svn-r23996] HDFFV-7989: Add any_path option to search the file for paths. New test added, scripts updated, help text updated.
Tested: local linux
This commit is contained in:
parent
a3204d77e7
commit
5d0b400f69
2
MANIFEST
2
MANIFEST
@ -1396,6 +1396,8 @@
|
||||
./tools/testfiles/tall-5s.ddl
|
||||
./tools/testfiles/tall-6.ddl
|
||||
./tools/testfiles/tall-6.exp
|
||||
./tools/testfiles/tall-7.ddl
|
||||
./tools/testfiles/tall-7N.ddl
|
||||
./tools/testfiles/tall.h5
|
||||
./tools/testfiles/tarray1.ddl
|
||||
./tools/testfiles/tarray1.h5
|
||||
|
@ -279,7 +279,11 @@ New Features
|
||||
|
||||
Tools:
|
||||
------
|
||||
- h5dump: Fixed displaying comporession ratio for unknown or user-defined
|
||||
- h5dump: Added option -N --any_path, which searches the file for paths that
|
||||
match the search path. HDFFV-7989 (ADB - 2013/08/12).
|
||||
- h5dump: Added optional arg 0 to -A, which excludes attributes from display.
|
||||
HDFFV-8134 (ADB - 2013/08/01).
|
||||
- h5dump: Fixed displaying compression ratio for unknown or user-defined
|
||||
filters. HDFFV-8344 (XCAO 2013/03/19)
|
||||
- h5dump: Changed UNKNOWN_FILTER to USER_DEFINED_FILTER for user defined filter.
|
||||
HDFFV-8346 (XCAO 2013/03/19)
|
||||
|
@ -58,6 +58,8 @@ IF (BUILD_TESTING)
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-4s.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-5s.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-6.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-7.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tall-7N.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tallfilters.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tarray1.ddl
|
||||
${HDF5_TOOLS_SRC_DIR}/testfiles/tarray1_big.ddl
|
||||
@ -752,6 +754,39 @@ IF (BUILD_TESTING)
|
||||
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
|
||||
ENDMACRO (ADD_H5_TEST file)
|
||||
|
||||
MACRO (ADD_H5_TEST_N resultfile resultcode)
|
||||
# If using memchecker add tests without using scripts
|
||||
IF (HDF5_ENABLE_USING_MEMCHECKER)
|
||||
ADD_TEST (NAME H5DUMP-N-${resultfile} COMMAND $<TARGET_FILE:h5dump> ${ARGN})
|
||||
SET_TESTS_PROPERTIES (H5DUMP-N-${resultfile} PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
|
||||
IF (NOT ${resultcode} STREQUAL "0")
|
||||
SET_TESTS_PROPERTIES (H5DUMP-N-${resultfile} PROPERTIES WILL_FAIL "true")
|
||||
ENDIF (NOT ${resultcode} STREQUAL "0")
|
||||
IF (NOT "${last_test}" STREQUAL "")
|
||||
SET_TESTS_PROPERTIES (H5DUMP-N-${resultfile} PROPERTIES DEPENDS ${last_test})
|
||||
ENDIF (NOT "${last_test}" STREQUAL "")
|
||||
ELSE (HDF5_ENABLE_USING_MEMCHECKER)
|
||||
ADD_TEST (
|
||||
NAME H5DUMP-N-${resultfile}-clear-objects
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-E remove ${resultfile}-N.bin ${resultfile}-N.out ${resultfile}-N.out.err
|
||||
)
|
||||
SET_TESTS_PROPERTIES (H5DUMP-N-${resultfile}-clear-objects PROPERTIES WORKING_DIRECTORY "${PROJECT_BINARY_DIR}/testfiles/std")
|
||||
ADD_TEST (
|
||||
NAME H5DUMP-N-${resultfile}
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_PROGRAM=$<TARGET_FILE:h5dump>"
|
||||
-D "TEST_ARGS:STRING=${ARGN}"
|
||||
-D "TEST_FOLDER=${PROJECT_BINARY_DIR}/testfiles/std"
|
||||
-D "TEST_OUTPUT=${resultfile}-N.out"
|
||||
-D "TEST_EXPECT=${resultcode}"
|
||||
-D "TEST_REFERENCE=${resultfile}.ddl"
|
||||
-P "${HDF5_RESOURCES_DIR}/runTest.cmake"
|
||||
)
|
||||
SET_TESTS_PROPERTIES (H5DUMP-N-${resultfile} PROPERTIES DEPENDS "H5DUMP-N-${resultfile}-clear-objects")
|
||||
ENDIF (HDF5_ENABLE_USING_MEMCHECKER)
|
||||
ENDMACRO (ADD_H5_TEST_N file)
|
||||
|
||||
MACRO (ADD_H5_TEST_EXPORT resultfile targetfile resultcode)
|
||||
# If using memchecker add tests without using scripts
|
||||
IF (HDF5_ENABLE_USING_MEMCHECKER)
|
||||
@ -1087,6 +1122,10 @@ IF (BUILD_TESTING)
|
||||
tall-6.txt
|
||||
tall-6.out
|
||||
tall-6.out.err
|
||||
tall-7.out
|
||||
tall-7.out.err
|
||||
tall-7N.out
|
||||
tall-7N.out.err
|
||||
tallfilters.out
|
||||
tallfilters.out.err
|
||||
tarray1.out
|
||||
@ -1415,6 +1454,7 @@ IF (BUILD_TESTING)
|
||||
ADD_H5_TEST (tattr-1 0 --enable-error-stack tattr.h5)
|
||||
# test for displaying the selected attributes of string type and scalar space
|
||||
ADD_H5_TEST (tattr-2 0 --enable-error-stack -a /\\\\/attr1 --attribute /attr4 --attribute=/attr5 tattr.h5)
|
||||
ADD_H5_TEST_N (tattr-2 0 --enable-error-stack -N /\\\\/attr1 --any_object /attr4 --any_object=/attr5 tattr.h5)
|
||||
# test for header and error messages
|
||||
ADD_H5ERR_MASK_TEST (tattr-3 1 --enable-error-stack --header -a /attr2 --attribute=/attr tattr.h5)
|
||||
# test for displaying attributes in shared datatype (also in group and dataset)
|
||||
@ -1427,6 +1467,7 @@ IF (BUILD_TESTING)
|
||||
ADD_H5_TEST (tudlink-1 0 --enable-error-stack tudlink.h5)
|
||||
# test for displaying the selected link
|
||||
ADD_H5_TEST (tslink-2 0 --enable-error-stack -l slink2 tslink.h5)
|
||||
ADD_H5_TEST_N (tslink-2 0 --enable-error-stack -N slink2 tslink.h5)
|
||||
ADD_H5_TEST (tudlink-2 0 --enable-error-stack -l udlink2 tudlink.h5)
|
||||
# test for displaying dangling soft links
|
||||
ADD_H5ERR_MASK_TEST (tslink-D 0 --enable-error-stack -d /slink1 tslink.h5)
|
||||
@ -1436,12 +1477,15 @@ IF (BUILD_TESTING)
|
||||
ADD_H5_TEST (thlink-2 0 --enable-error-stack -d /g1/dset2 --dataset /dset1 --dataset=/g1/g1.1/dset3 thlink.h5)
|
||||
ADD_H5_TEST (thlink-3 0 --enable-error-stack -d /g1/g1.1/dset3 --dataset /g1/dset2 --dataset=/dset1 thlink.h5)
|
||||
ADD_H5_TEST (thlink-4 0 --enable-error-stack -g /g1 thlink.h5)
|
||||
ADD_H5_TEST_N (thlink-4 0 --enable-error-stack -N /g1 thlink.h5)
|
||||
ADD_H5_TEST (thlink-5 0 --enable-error-stack -d /dset1 -g /g2 -d /g1/dset2 thlink.h5)
|
||||
ADD_H5_TEST_N (thlink-5 0 --enable-error-stack -N /dset1 -N /g2 -N /g1/dset2 thlink.h5)
|
||||
|
||||
# tests for compound data types
|
||||
ADD_H5_TEST (tcomp-1 0 --enable-error-stack tcompound.h5)
|
||||
# test for named data types
|
||||
ADD_H5_TEST (tcomp-2 0 --enable-error-stack -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5)
|
||||
ADD_H5_TEST_N (tcomp-2 0 --enable-error-stack -N /type1 --any_object /type2 --any_object=/group1/type3 tcompound.h5)
|
||||
# test for unamed type
|
||||
ADD_H5ERR_MASK_TEST (tcomp-3 0 "--enable-error-stack;-t;/#6632;-g;/group2;tcompound.h5")
|
||||
# test complicated compound datatype
|
||||
@ -1455,6 +1499,9 @@ IF (BUILD_TESTING)
|
||||
ADD_H5ERR_MASK_TEST (tall-1 0 --enable-error-stack tall.h5)
|
||||
ADD_H5_TEST (tall-2 0 --enable-error-stack --header -g /g1/g1.1 -a attr2 tall.h5)
|
||||
ADD_H5_TEST (tall-3 0 --enable-error-stack -d /g2/dset2.1 -l /g1/g1.2/g1.2.1/slink tall.h5)
|
||||
ADD_H5_TEST_N (tall-3 0 --enable-error-stack -N /g2/dset2.1 -N /g1/g1.2/g1.2.1/slink tall.h5)
|
||||
ADD_H5_TEST (tall-7 0 --enable-error-stack -a attr1 tall.h5)
|
||||
ADD_H5_TEST (tall-7N 0 --enable-error-stack -N attr1 tall.h5)
|
||||
|
||||
# test for loop detection
|
||||
ADD_H5_TEST (tloop-1 0 --enable-error-stack tloop.h5)
|
||||
|
@ -71,7 +71,7 @@ struct handler_t {
|
||||
*/
|
||||
/* The following initialization makes use of C language cancatenating */
|
||||
/* "xxx" "yyy" into "xxxyyy". */
|
||||
static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RECM:O*";
|
||||
static const char *s_opts = "hn*peyBHirVa:c:d:f:g:k:l:t:w:xD:uX:o*b*F:s:S:A*q:z:m:RECM:O*N:";
|
||||
static struct long_options l_opts[] = {
|
||||
{ "help", no_arg, 'h' },
|
||||
{ "hel", no_arg, 'h' },
|
||||
@ -188,6 +188,7 @@ static struct long_options l_opts[] = {
|
||||
{ "packed-bits", require_arg, 'M' },
|
||||
{ "no-compact-subset", no_arg, 'C' },
|
||||
{ "ddl", optional_arg, 'O' },
|
||||
{ "any_object", require_arg, 'N' },
|
||||
{ NULL, 0, '\0' }
|
||||
};
|
||||
|
||||
@ -250,6 +251,8 @@ usage(const char *prog)
|
||||
PRINTVALSTREAM(rawoutstream, " -g P, --group=P Print the specified group and all members\n");
|
||||
PRINTVALSTREAM(rawoutstream, " -l P, --soft-link=P Print the value(s) of the specified soft link\n");
|
||||
PRINTVALSTREAM(rawoutstream, " -t P, --datatype=P Print the specified named datatype\n");
|
||||
PRINTVALSTREAM(rawoutstream, " -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P\n");
|
||||
PRINTVALSTREAM(rawoutstream, " P can be the absolute path or just a relative path.\n");
|
||||
PRINTVALSTREAM(rawoutstream, " -A, --onlyattr Print the header and value of attributes\n");
|
||||
PRINTVALSTREAM(rawoutstream, " Optional value 0 suppresses printing attributes.\n");
|
||||
PRINTVALSTREAM(rawoutstream, "--------------- Object Property Options ---------------\n");
|
||||
@ -956,6 +959,18 @@ parse_start:
|
||||
if (h5tools_nCols <= 0) {
|
||||
h5tools_nCols = 65535;
|
||||
}
|
||||
last_was_dset = FALSE;
|
||||
break;
|
||||
case 'N':
|
||||
display_all = 0;
|
||||
|
||||
for (i = 0; i < argc; i++)
|
||||
if (!hand[i].func) {
|
||||
hand[i].func = handle_paths;
|
||||
hand[i].obj = HDstrdup(opt_arg);
|
||||
break;
|
||||
}
|
||||
|
||||
last_was_dset = FALSE;
|
||||
break;
|
||||
case 'a':
|
||||
|
@ -24,6 +24,16 @@
|
||||
#include "h5dump_extern.h"
|
||||
#include "h5dump_ddl.h"
|
||||
|
||||
typedef struct {
|
||||
hid_t fid; /* File ID being traversed */
|
||||
char *op_name; /* Object name wanted */
|
||||
} trav_handle_udata_t;
|
||||
|
||||
typedef struct {
|
||||
char *path; /* Path of object being searched */
|
||||
char *op_name; /* Object name wanted */
|
||||
} trav_attr_udata_t;
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: dump_datatype
|
||||
*
|
||||
@ -1288,6 +1298,203 @@ dump_fcontents(hid_t fid)
|
||||
PRINTSTREAM(rawoutstream, " %s\n",END);
|
||||
}
|
||||
|
||||
static herr_t
|
||||
attr_search(hid_t oid, const char *attr_name, const H5A_info_t UNUSED *ainfo, void *_op_data)
|
||||
{
|
||||
herr_t ret = SUCCEED;
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
char *obj_attrname;
|
||||
char *obj_op_name;
|
||||
char *obj_name;
|
||||
trav_attr_udata_t *attr_data = (trav_attr_udata_t*)_op_data;
|
||||
char *buf = attr_data->path;
|
||||
char *op_name = attr_data->op_name;
|
||||
|
||||
j = (int)HDstrlen(op_name) - 1;
|
||||
/* find the last / */
|
||||
while(j >= 0) {
|
||||
if (op_name[j] == '/' && (j==0 || (j>0 && op_name[j-1]!='\\')))
|
||||
break;
|
||||
j--;
|
||||
}
|
||||
|
||||
obj_op_name = h5tools_str_replace(op_name + j + 1, "\\/", "/");
|
||||
|
||||
if(obj_op_name == NULL) {
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
ret = FAIL;
|
||||
}
|
||||
else {
|
||||
if(HDstrcmp(attr_name, obj_op_name)==0) {
|
||||
/* object name */
|
||||
i = (int)HDstrlen(buf);
|
||||
j = (int)HDstrlen(op_name);
|
||||
k = (size_t)i + 1 + (size_t)j + 1 + 2;
|
||||
obj_name = (char *)HDmalloc((size_t)k);
|
||||
if(obj_name == NULL) {
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
ret = FAIL;
|
||||
}
|
||||
else {
|
||||
HDmemset(obj_name, '\0', (size_t)k);
|
||||
if(op_name[0] != '/') {
|
||||
HDstrncat(obj_name, buf, (size_t)i + 1);
|
||||
if(buf[i-1] != '/')
|
||||
HDstrncat(obj_name, "/", 2);
|
||||
}
|
||||
HDstrncat(obj_name, op_name, (size_t)j + 1);
|
||||
|
||||
handle_attributes(oid, obj_name, NULL, 0, NULL);
|
||||
HDfree(obj_name);
|
||||
}
|
||||
}
|
||||
HDfree(obj_op_name);
|
||||
}
|
||||
return ret;
|
||||
} /* end attr_search() */
|
||||
|
||||
static herr_t
|
||||
obj_search(const char *path, const H5O_info_t *oi, const char *already_visited, void *_op_data)
|
||||
{
|
||||
trav_handle_udata_t *handle_data = (trav_handle_udata_t*)_op_data;
|
||||
char *op_name = (char*)handle_data->op_name;
|
||||
|
||||
trav_attr_udata_t attr_data;
|
||||
attr_data.path = (char*)path;
|
||||
attr_data.op_name = op_name;
|
||||
H5Aiterate_by_name(handle_data->fid, path, H5_INDEX_NAME, H5_ITER_INC, NULL, attr_search, (void*)&attr_data, H5P_DEFAULT);
|
||||
|
||||
if(HDstrcmp(path, op_name)==0) {
|
||||
switch(oi->type) {
|
||||
case H5O_TYPE_GROUP:
|
||||
handle_groups(handle_data->fid, path, NULL, 0, NULL);
|
||||
break;
|
||||
case H5O_TYPE_DATASET:
|
||||
handle_datasets(handle_data->fid, path, NULL, 0, NULL);
|
||||
break;
|
||||
case H5O_TYPE_NAMED_DATATYPE:
|
||||
handle_datatypes(handle_data->fid, path, NULL, 0, NULL);
|
||||
break;
|
||||
case H5O_TYPE_UNKNOWN:
|
||||
case H5O_TYPE_NTYPES:
|
||||
default:
|
||||
error_msg("unknown object type value\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
} /* end switch */
|
||||
}
|
||||
|
||||
return 0;
|
||||
} /* end obj_search() */
|
||||
|
||||
static herr_t
|
||||
lnk_search(const char *path, const H5L_info_t *li, void *_op_data)
|
||||
{
|
||||
int search_len;
|
||||
int k;
|
||||
char *search_name;
|
||||
trav_handle_udata_t *handle_data = (trav_handle_udata_t*)_op_data;
|
||||
char *op_name = (char*)handle_data->op_name;
|
||||
|
||||
search_len = HDstrlen(op_name);
|
||||
if(search_len > 0 && op_name[0] != '/') {
|
||||
k = 2;
|
||||
}
|
||||
else
|
||||
k = 1;
|
||||
search_name = (char *)HDmalloc(search_len + k);
|
||||
if(search_name == NULL) {
|
||||
error_msg("creating temporary link\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
else {
|
||||
if (k == 2) {
|
||||
HDstrcpy(search_name, "/");
|
||||
HDstrncat(search_name, op_name, (size_t)search_len + 1);
|
||||
}
|
||||
else
|
||||
HDstrncpy(search_name, op_name, (size_t)search_len + 1);
|
||||
search_name[search_len + k] = '\0';
|
||||
|
||||
if(HDstrcmp(path, search_name) == 0) {
|
||||
switch(li->type) {
|
||||
case H5L_TYPE_SOFT:
|
||||
case H5L_TYPE_EXTERNAL:
|
||||
handle_links(handle_data->fid, op_name, NULL, 0, NULL);
|
||||
break;
|
||||
|
||||
case H5L_TYPE_HARD:
|
||||
case H5L_TYPE_MAX:
|
||||
case H5L_TYPE_ERROR:
|
||||
default:
|
||||
error_msg("unknown link type value\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
break;
|
||||
} /* end switch() */
|
||||
}
|
||||
HDfree(search_name);
|
||||
}
|
||||
return 0;
|
||||
} /* end lnk_search() */
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: handle_paths
|
||||
*
|
||||
* Purpose: Handle objects from the command.
|
||||
*
|
||||
* Return: void
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
void
|
||||
handle_paths(hid_t fid, const char *path_name, void* data, int pe, const char *display_name)
|
||||
{
|
||||
hid_t obj_id = -1;
|
||||
hid_t gid = -1;
|
||||
H5O_info_t oinfo;
|
||||
|
||||
if((gid = H5Gopen2(fid, "/", H5P_DEFAULT)) < 0) {
|
||||
error_msg("unable to open root group\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
else {
|
||||
hid_t gcpl_id;
|
||||
unsigned crt_order_flags;
|
||||
unsigned attr_crt_order_flags;
|
||||
|
||||
if ((gcpl_id = H5Gget_create_plist(gid)) < 0) {
|
||||
error_msg("error in getting group creation property list ID\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* query the group creation properties for attributes */
|
||||
if (H5Pget_attr_creation_order(gcpl_id, &attr_crt_order_flags) < 0) {
|
||||
error_msg("error in getting group creation properties\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
/* query the group creation properties */
|
||||
if(H5Pget_link_creation_order(gcpl_id, &crt_order_flags) < 0) {
|
||||
error_msg("error in getting group creation properties\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(H5Pclose(gcpl_id) < 0) {
|
||||
error_msg("error in closing group creation property list ID\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
trav_handle_udata_t handle_udata; /* User data for traversal */
|
||||
|
||||
handle_udata.fid = fid;
|
||||
handle_udata.op_name = (char*)path_name;
|
||||
if(h5trav_visit(fid, "/", TRUE, TRUE, obj_search, lnk_search, &handle_udata) < 0) {
|
||||
error_msg("error traversing information\n");
|
||||
h5tools_setstatus(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: handle_attributes
|
||||
*
|
||||
@ -1363,7 +1570,6 @@ handle_attributes(hid_t fid, const char *attr, void UNUSED * data, int UNUSED pe
|
||||
|
||||
attr_name = h5tools_str_replace(attr + j + 1, "\\/", "/");
|
||||
|
||||
|
||||
/* handle error case: cannot open the object with the attribute */
|
||||
if((oid = H5Oopen(fid, obj_name, H5P_DEFAULT)) < 0) {
|
||||
/* setup */
|
||||
|
@ -37,6 +37,7 @@ void dump_fcontents(hid_t fid);
|
||||
/* callback function used by H5Aiterate2() */
|
||||
herr_t dump_attr_cb(hid_t loc_id, const char *attr_name, const H5A_info_t *info, void *_op_data);
|
||||
|
||||
void handle_paths(hid_t fid, const char *path_name, void *data, int pe, const char *display_name);
|
||||
void handle_datasets(hid_t fid, const char *dset, void *data, int pe, const char *display_name);
|
||||
void handle_attributes(hid_t fid, const char *attr, void UNUSED * data, int UNUSED pe, const char UNUSED *display_name);
|
||||
void handle_groups(hid_t fid, const char *group, void UNUSED *data, int pe, const char *display_name);
|
||||
|
@ -182,6 +182,8 @@ $SRC_H5DUMP_TESTFILES/tall-4s.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tall-5s.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tall-6.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tall-6.exp
|
||||
$SRC_H5DUMP_TESTFILES/tall-7.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tall-7N.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tallfilters.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tarray1.ddl
|
||||
$SRC_H5DUMP_TESTFILES/tarray1_big.ddl
|
||||
@ -912,6 +914,7 @@ TOOLTEST4 tdset-2.ddl --enable-error-stack -H -d dset1 -d /dset2 --dataset=dset3
|
||||
TOOLTEST tattr-1.ddl --enable-error-stack tattr.h5
|
||||
# test for displaying the selected attributes of string type and scalar space
|
||||
TOOLTEST tattr-2.ddl --enable-error-stack -a "/\/attr1" --attribute /attr4 --attribute=/attr5 tattr.h5
|
||||
TOOLTEST tattr-2.ddl --enable-error-stack -N "/\/attr1" --any_object /attr4 --any_object=/attr5 tattr.h5
|
||||
# test for header and error messages
|
||||
TOOLTEST4 tattr-3.ddl --enable-error-stack --header -a /attr2 --attribute=/attr tattr.h5
|
||||
# test for displaying at least 9 attributes on root from a BE machine
|
||||
@ -924,6 +927,7 @@ TOOLTEST tslink-1.ddl --enable-error-stack tslink.h5
|
||||
TOOLTEST tudlink-1.ddl --enable-error-stack tudlink.h5
|
||||
# test for displaying the selected link
|
||||
TOOLTEST tslink-2.ddl --enable-error-stack -l slink2 tslink.h5
|
||||
TOOLTEST tslink-2.ddl --enable-error-stack -N slink2 tslink.h5
|
||||
TOOLTEST tudlink-2.ddl --enable-error-stack -l udlink2 tudlink.h5
|
||||
# test for displaying dangling soft links
|
||||
TOOLTEST4 tslink-D.ddl --enable-error-stack -d /slink1 tslink.h5
|
||||
@ -933,12 +937,15 @@ TOOLTEST thlink-1.ddl --enable-error-stack thlink.h5
|
||||
TOOLTEST thlink-2.ddl --enable-error-stack -d /g1/dset2 --dataset /dset1 --dataset=/g1/g1.1/dset3 thlink.h5
|
||||
TOOLTEST thlink-3.ddl --enable-error-stack -d /g1/g1.1/dset3 --dataset /g1/dset2 --dataset=/dset1 thlink.h5
|
||||
TOOLTEST thlink-4.ddl --enable-error-stack -g /g1 thlink.h5
|
||||
TOOLTEST thlink-4.ddl --enable-error-stack -N /g1 thlink.h5
|
||||
TOOLTEST thlink-5.ddl --enable-error-stack -d /dset1 -g /g2 -d /g1/dset2 thlink.h5
|
||||
TOOLTEST thlink-5.ddl --enable-error-stack -N /dset1 -N /g2 -N /g1/dset2 thlink.h5
|
||||
|
||||
# tests for compound data types
|
||||
TOOLTEST tcomp-1.ddl --enable-error-stack tcompound.h5
|
||||
# test for named data types
|
||||
TOOLTEST tcomp-2.ddl --enable-error-stack -t /type1 --datatype /type2 --datatype=/group1/type3 tcompound.h5
|
||||
TOOLTEST tcomp-2.ddl --enable-error-stack -N /type1 --any_object /type2 --any_object=/group1/type3 tcompound.h5
|
||||
# test for unamed type
|
||||
TOOLTEST4 tcomp-3.ddl --enable-error-stack -t /#6632 -g /group2 tcompound.h5
|
||||
# test complicated compound datatype
|
||||
@ -952,6 +959,9 @@ TOOLTEST tnestedcmpddt.ddl --enable-error-stack tnestedcmpddt.h5
|
||||
TOOLTEST4 tall-1.ddl --enable-error-stack tall.h5
|
||||
TOOLTEST tall-2.ddl --enable-error-stack --header -g /g1/g1.1 -a attr2 tall.h5
|
||||
TOOLTEST tall-3.ddl --enable-error-stack -d /g2/dset2.1 -l /g1/g1.2/g1.2.1/slink tall.h5
|
||||
TOOLTEST tall-3.ddl --enable-error-stack -N /g2/dset2.1 -N /g1/g1.2/g1.2.1/slink tall.h5
|
||||
TOOLTEST tall-7.ddl --enable-error-stack -a attr1 tall.h5
|
||||
TOOLTEST tall-7N.ddl --enable-error-stack -N attr1 tall.h5
|
||||
|
||||
# test for loop detection
|
||||
TOOLTEST tloop-1.ddl --enable-error-stack tloop.h5
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
9
tools/testfiles/tall-7.ddl
Normal file
9
tools/testfiles/tall-7.ddl
Normal file
@ -0,0 +1,9 @@
|
||||
HDF5 "tall.h5" {
|
||||
ATTRIBUTE "attr1" {
|
||||
DATATYPE H5T_STD_I8BE
|
||||
DATASPACE SIMPLE { ( 10 ) / ( 10 ) }
|
||||
DATA {
|
||||
(0): 97, 98, 99, 100, 101, 102, 103, 104, 105, 0
|
||||
}
|
||||
}
|
||||
}
|
17
tools/testfiles/tall-7N.ddl
Normal file
17
tools/testfiles/tall-7N.ddl
Normal file
@ -0,0 +1,17 @@
|
||||
HDF5 "tall.h5" {
|
||||
ATTRIBUTE "attr1" {
|
||||
DATATYPE H5T_STD_I8BE
|
||||
DATASPACE SIMPLE { ( 10 ) / ( 10 ) }
|
||||
DATA {
|
||||
(0): 97, 98, 99, 100, 101, 102, 103, 104, 105, 0
|
||||
}
|
||||
}
|
||||
ATTRIBUTE "attr1" {
|
||||
DATATYPE H5T_STD_I8BE
|
||||
DATASPACE SIMPLE { ( 27 ) / ( 27 ) }
|
||||
DATA {
|
||||
(0): 49, 115, 116, 32, 97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 111,
|
||||
(15): 102, 32, 100, 115, 101, 116, 49, 46, 49, 46, 49, 0
|
||||
}
|
||||
}
|
||||
}
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
@ -21,6 +21,8 @@ usage: h5dump [OPTIONS] files
|
||||
-g P, --group=P Print the specified group and all members
|
||||
-l P, --soft-link=P Print the value(s) of the specified soft link
|
||||
-t P, --datatype=P Print the specified named datatype
|
||||
-N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
|
||||
P can be the absolute path or just a relative path.
|
||||
-A, --onlyattr Print the header and value of attributes
|
||||
Optional value 0 suppresses printing attributes.
|
||||
--------------- Object Property Options ---------------
|
||||
|
Loading…
Reference in New Issue
Block a user