From f6a22fb0de3b415d3c7fe9ad2e3c1a72bd0334ab Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Wed, 14 Feb 2007 11:31:11 -0500 Subject: [svn-r13301] Description: Add '-p' flag to h5copy tool, to create intermediate "parent" groups that don't exist in destination file yet. Add more tests to h5copy script. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2) --- MANIFEST | 3 +- tools/h5copy/h5copy.c | 164 +++++++------ tools/h5copy/h5copygentest.c | 24 ++ tools/h5copy/testh5copy.sh | 61 +++-- tools/testfiles/h5copytst.a.out.ls | 185 -------------- tools/testfiles/h5copytst.b.out.ls | 185 -------------- tools/testfiles/h5copytst.h5 | Bin 22072 -> 30448 bytes tools/testfiles/h5copytst.out.ls | 484 +++++++++++++++++++++++++++++++++++++ 8 files changed, 639 insertions(+), 467 deletions(-) delete mode 100644 tools/testfiles/h5copytst.a.out.ls delete mode 100644 tools/testfiles/h5copytst.b.out.ls create mode 100644 tools/testfiles/h5copytst.out.ls diff --git a/MANIFEST b/MANIFEST index 78bfc9a..152e0ea 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1386,8 +1386,7 @@ # test files for h5copy ./tools/testfiles/h5copytst.h5 -./tools/testfiles/h5copytst.a.out.ls -./tools/testfiles/h5copytst.b.out.ls +./tools/testfiles/h5copytst.out.ls # test files for h5mkgrp ./tools/testfiles/h5mkgrp_help.ls diff --git a/tools/h5copy/h5copy.c b/tools/h5copy/h5copy.c index cbbb738..cadb0d0 100644 --- a/tools/h5copy/h5copy.c +++ b/tools/h5copy/h5copy.c @@ -14,7 +14,6 @@ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -#include "hdf5.h" #include "h5tools.h" #include "h5tools_utils.h" #include @@ -23,23 +22,45 @@ const char *progname="h5copy"; int d_status; -static void leave(int ret); - /* command-line options: short and long-named parameters */ -static const char *s_opts = "hvf:Vi:o:s:d:"; +static const char *s_opts = "d:f:hi:o:ps:vV"; static struct long_options l_opts[] = { - { "help", no_arg, 'h' }, - { "verbose", no_arg, 'v' }, + { "destination", require_arg, 'd' }, { "flag", require_arg, 'f' }, - { "version", no_arg, 'V' }, + { "help", no_arg, 'h' }, { "input", require_arg, 'i' }, { "output", require_arg, 'o' }, + { "parents", no_arg, 'p' }, { "source", require_arg, 's' }, - { "destination", require_arg, 'd' }, + { "verbose", no_arg, 'v' }, + { "version", no_arg, 'V' }, { NULL, 0, '\0' } }; /*------------------------------------------------------------------------- + * Function: leave + * + * Purpose: Shutdown MPI & HDF5 and call exit() + * + * Return: Does not return + * + * Programmer: Quincey Koziol + * Saturday, 31. January 2004 + * + * Modifications: + * + *------------------------------------------------------------------------- + */ +static void +leave(int ret) +{ + h5tools_close(); + + exit(ret); +} + + +/*------------------------------------------------------------------------- * Function: usage * * Purpose: Prints a usage message on stderr and then returns. @@ -64,6 +85,7 @@ usage: h5copy [OPTIONS] [OBJECTS...]\n\ -d, --destination destination object name\n\ OPTIONS\n\ -h, --help Print a usage message and exit\n\ + -p, --parents No error if existing, make parent groups as needed\n\ -v, --verbose Print information about OBJECTS and OPTIONS\n\ -V, --version Print version number and exit\n\ -f, --flag Flag type\n\n\ @@ -144,7 +166,7 @@ static int parse_flag(const char* str_flag, unsigned *flag) } else { - printf("Error in input flag\n"); + error_msg(progname, "Error in input flag\n"); return -1; } @@ -175,8 +197,10 @@ main (int argc, const char *argv[]) char *oname_src=NULL; char *oname_dst=NULL; unsigned flag=0; - int verbose=0; - hid_t pid; + unsigned verbose=0; + unsigned parents=0; + hid_t ocpl_id; /* Object copy property list */ + hid_t lcpl_id; /* Link creation property list */ char str_flag[20]; int opt; @@ -194,20 +218,10 @@ main (int argc, const char *argv[]) { switch ((char)opt) { - case 'h': - usage(); - leave(EXIT_SUCCESS); - break; - - case 'V': - print_version(progname); - leave(EXIT_SUCCESS); - break; - - case 'v': - verbose = 1; + case 'd': + oname_dst = strdup(opt_arg); break; - + case 'f': /* validate flag */ if (parse_flag(opt_arg,&flag)<0) @@ -218,6 +232,11 @@ main (int argc, const char *argv[]) strcpy(str_flag,opt_arg); break; + case 'h': + usage(); + leave(EXIT_SUCCESS); + break; + case 'i': fname_src = strdup(opt_arg); break; @@ -226,15 +245,23 @@ main (int argc, const char *argv[]) fname_dst = strdup(opt_arg); break; + case 'p': + parents = 1; + break; + case 's': oname_src = strdup(opt_arg); break; - case 'd': - oname_dst = strdup(opt_arg); + case 'V': + print_version(progname); + leave(EXIT_SUCCESS); break; - - case '?': + + case 'v': + verbose = 1; + break; + default: usage(); leave(EXIT_FAILURE); @@ -247,28 +274,28 @@ main (int argc, const char *argv[]) if (fname_src==NULL) { - printf("Input file name missing\n"); + error_msg(progname, "Input file name missing\n"); usage(); leave(EXIT_FAILURE); } if (fname_dst==NULL) { - printf("Output file name missing\n"); + error_msg(progname, "Output file name missing\n"); usage(); leave(EXIT_FAILURE); } if (oname_src==NULL) { - printf("Input object name missing\n"); + error_msg(progname, "Source object name missing\n"); usage(); leave(EXIT_FAILURE); } if (oname_dst==NULL) { - printf("Destination object name missing\n"); + error_msg(progname, "Destination object name missing\n"); usage(); leave(EXIT_FAILURE); } @@ -285,7 +312,7 @@ main (int argc, const char *argv[]) *-------------------------------------------------------------------------*/ if (fid_src==-1) { - printf("Could not open input file <%s>...Exiting\n",fname_src); + error_msg(progname, "Could not open input file <%s>...Exiting\n", fname_src); if (fname_src) free(fname_src); leave(EXIT_FAILURE); @@ -308,7 +335,7 @@ main (int argc, const char *argv[]) *-------------------------------------------------------------------------*/ if (fid_dst==-1) { - printf("Could not open output file <%s>...Exiting\n",fname_dst); + error_msg(progname, "Could not open output file <%s>...Exiting\n", fname_dst); if (fname_src) free(fname_src); if (fname_dst) @@ -333,34 +360,55 @@ main (int argc, const char *argv[]) /*------------------------------------------------------------------------- - * create a property list for copy + * create property lists for copy *-------------------------------------------------------------------------*/ /* create property to pass copy options */ - if ( (pid = H5Pcreate(H5P_OBJECT_COPY)) < 0) + if ( (ocpl_id = H5Pcreate(H5P_OBJECT_COPY)) < 0) goto error; /* set options for object copy */ if (flag) { - if ( H5Pset_copy_object(pid, flag) < 0) + if ( H5Pset_copy_object(ocpl_id, flag) < 0) goto error; } + /* Create link creation property list */ + if((lcpl_id = H5Pcreate(H5P_LINK_CREATE)) < 0) { + error_msg(progname, "Could not create link creation property list\n"); + goto error; + } /* end if */ + + /* Check for creating intermediate groups */ + if(parents) { + /* Set the intermediate group creation property */ + if(H5Pset_create_intermediate_group(lcpl_id, 1) < 0) { + error_msg(progname, "Could not set property for creating parent groups\n"); + goto error; + } /* end if */ + + /* Display some output if requested */ + if(verbose) + printf("%s: Creating parent groups\n", progname); + } /* end if */ + /*------------------------------------------------------------------------- * do the copy *-------------------------------------------------------------------------*/ - if (H5Ocopy(fid_src, /* Source file or group identifier */ - oname_src, /* Name of the source object to be copied */ - fid_dst, /* Destination file or group identifier */ - oname_dst, /* Name of the destination object */ - pid, /* Properties which apply to the copy */ - H5P_DEFAULT)<0) /* Properties which apply to the new hard link */ + if (H5Ocopy(fid_src, /* Source file or group identifier */ + oname_src, /* Name of the source object to be copied */ + fid_dst, /* Destination file or group identifier */ + oname_dst, /* Name of the destination object */ + ocpl_id, /* Object copy property list */ + lcpl_id)<0) /* Link creation property list */ goto error; - /* close property */ - if (H5Pclose(pid)<0) + /* close propertis */ + if(H5Pclose(ocpl_id)<0) + goto error; + if(H5Pclose(lcpl_id)<0) goto error; /* close files */ @@ -385,7 +433,8 @@ main (int argc, const char *argv[]) error: printf("Error in copy...Exiting\n"); H5E_BEGIN_TRY { - H5Pclose(pid); + H5Pclose(ocpl_id); + H5Pclose(lcpl_id); H5Fclose(fid_src); H5Fclose(fid_dst); } H5E_END_TRY; @@ -403,26 +452,3 @@ error: return 1; } - -/*------------------------------------------------------------------------- - * Function: leave - * - * Purpose: Shutdown MPI & HDF5 and call exit() - * - * Return: Does not return - * - * Programmer: Quincey Koziol - * Saturday, 31. January 2004 - * - * Modifications: - * - *------------------------------------------------------------------------- - */ -static void -leave(int ret) -{ - h5tools_close(); - - exit(ret); -} - diff --git a/tools/h5copy/h5copygentest.c b/tools/h5copy/h5copygentest.c index c9dc01f..ee6862a 100644 --- a/tools/h5copy/h5copygentest.c +++ b/tools/h5copy/h5copygentest.c @@ -29,6 +29,7 @@ #define DATASET_NESTED_VL "nested_vl" #define GROUP_EMPTY "grp_empty" #define GROUP_DATASETS "grp_dsets" +#define GROUP_NESTED "grp_nested" /*------------------------------------------------------------------------- @@ -364,6 +365,28 @@ static void gent_nested_datasets(hid_t loc_id) } /*------------------------------------------------------------------------- + * Function: gent_nested_group + * + * Purpose: Generate a group in a location and populate it with another group + * containing the "standard" datasets + * + *------------------------------------------------------------------------- + */ +static void gent_nested_group(hid_t loc_id) +{ + hid_t gid; + + /* Create group in location */ + gid = H5Gcreate(loc_id, GROUP_NESTED, (size_t)0); + + /* Add datasets to group created */ + gent_nested_datasets(gid); + + /* Release resources */ + H5Gclose(gid); +} + +/*------------------------------------------------------------------------- * Function: main * *------------------------------------------------------------------------- @@ -378,6 +401,7 @@ int main(void) gent_datasets(fid); gent_empty_group(fid); gent_nested_datasets(fid); + gent_nested_group(fid); H5Fclose(fid); return 0; diff --git a/tools/h5copy/testh5copy.sh b/tools/h5copy/testh5copy.sh index b8fbb79..61839bb 100644 --- a/tools/h5copy/testh5copy.sh +++ b/tools/h5copy/testh5copy.sh @@ -169,35 +169,50 @@ H5LSTEST() # adding object copied to the destination file each time # # Assumed arguments: -# $1 is test "variation" (a single letter, normally) -# $2 is group within source file -# $3 is group within destination file +# COPYOBJECTS() { TESTFILE="$INDIR/$SRCFILE" - FILEOUT="$OUTDIR/`basename $SRCFILE .h5`.$1.out.h5" + FILEOUT="$OUTDIR/`basename $SRCFILE .h5`.out.h5" # Remove any output file left over from previous test run rm -f $FILEOUT - # Test copying various forms of datasets - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"simple -d "$3"simple - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"chunk -d "$3"chunk - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"compact -d "$3"compact - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"compound -d "$3"compound - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"compressed -d "$3"compressed - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"named_vl -d "$3"named_vl - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"nested_vl -d "$3"nested_vl + echo "Test copying various forms of datasets" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s simple -d simple + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s chunk -d chunk + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s compact -d compact + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s compound -d compound + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s compressed -d compressed + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s named_vl -d named_vl + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s nested_vl -d nested_vl - # Test copying & renaming dataset - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"compound -d "$3"rename + echo "Test copying dataset within group in source file to root of destination" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s grp_dsets/simple -d simple_top - # Test copying empty & "full" groups - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"grp_empty -d "$3"grp_empty - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"grp_dsets -d "$3"grp_dsets + echo "Test copying & renaming dataset" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s compound -d rename - # Test copying & renaming group - TOOLTEST -i $TESTFILE -o $FILEOUT -v -s "$2"grp_dsets -d "$3"grp_rename + echo "Test copying empty, 'full' & 'nested' groups" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s grp_empty -d grp_empty + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d grp_dsets + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s grp_nested -d grp_nested + + echo "Test copying dataset within group in source file to group in destination" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s /grp_dsets/simple -d /grp_dsets/simple_group + + echo "Test copying & renaming group" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d grp_rename + + echo "Test copying 'full' group hierarchy into group in destination file" + TOOLTEST -i $TESTFILE -o $FILEOUT -v -s grp_dsets -d /grp_rename/grp_dsets + + echo "Test copying objects into group hier. that doesn't exist yet in destination file" + TOOLTEST -i $TESTFILE -o $FILEOUT -vp -s simple -d /A/B1/simple + TOOLTEST -i $TESTFILE -o $FILEOUT -vp -s simple -d /A/B2/simple2 + TOOLTEST -i $TESTFILE -o $FILEOUT -vp -s /grp_dsets/simple -d /C/D/simple + TOOLTEST -i $TESTFILE -o $FILEOUT -vp -s /grp_dsets -d /E/F/grp_dsets + TOOLTEST -i $TESTFILE -o $FILEOUT -vp -s /grp_nested -d /G/H/grp_nested # Verify that the file created above is correct H5LSTEST $FILEOUT @@ -213,13 +228,7 @@ COPYOBJECTS() ### T H E T E S T S ### ############################################################################## -echo "Copy objects from root group of source file to root of destination file" -echo "(with implicit root group paths)" -COPYOBJECTS a "" "" - -echo "Copy objects from root group of source file to root of destination file" -echo "(with explicit root group paths)" -COPYOBJECTS b "/" "/" +COPYOBJECTS if test $nerrors -eq 0 ; then diff --git a/tools/testfiles/h5copytst.a.out.ls b/tools/testfiles/h5copytst.a.out.ls deleted file mode 100644 index 73c67d6..0000000 --- a/tools/testfiles/h5copytst.a.out.ls +++ /dev/null @@ -1,185 +0,0 @@ -############################# -Expected output for 'h5ls ../testfiles/h5copytst.a.out.h5' -############################# -Opened "../testfiles/h5copytst.a.out.h5" with sec2 driver. -/chunk Dataset {6/6} - Location: 1:6216 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/compact Dataset {6/6} - Location: 1:6344 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/compound Dataset {2/2} - Location: 1:8528 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/compressed Dataset {6/6} - Location: 1:12888 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization - Filter-0: deflate-1 OPT {1} - Type: native int -/grp_dsets Group - Location: 1:31584 - Links: 1 -/grp_dsets/chunk Dataset {6/6} - Location: 1:33720 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_dsets/compact Dataset {6/6} - Location: 1:34176 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_dsets/compound Dataset {2/2} - Location: 1:34312 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/grp_dsets/compressed Dataset {6/6} - Location: 1:34528 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization - Filter-0: deflate-1 OPT {1} - Type: native int -/grp_dsets/named_vl Dataset {2/2} - Location: 1:34744 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: shared-1:34696 variable length of - native int -/grp_dsets/nested_vl Dataset {2/2} - Location: 1:43216 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: variable length of - variable length of - native int -/grp_dsets/simple Dataset {6/6} - Location: 1:43360 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_dsets/vl Type - Location: 1:34696 - Links: 2 - Type: shared-1:34696 variable length of - native int -/grp_empty Group - Location: 1:30464 - Links: 1 -/grp_rename Group - Location: 1:44240 - Links: 1 -/grp_rename/chunk Dataset {6/6} - Location: 1:46376 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_rename/compact Dataset {6/6} - Location: 1:46832 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_rename/compound Dataset {2/2} - Location: 1:46968 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/grp_rename/compressed Dataset {6/6} - Location: 1:47184 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization - Filter-0: deflate-1 OPT {1} - Type: native int -/grp_rename/named_vl Dataset {2/2} - Location: 1:47400 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: shared-1:47352 variable length of - native int -/grp_rename/nested_vl Dataset {2/2} - Location: 1:55872 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: variable length of - variable length of - native int -/grp_rename/simple Dataset {6/6} - Location: 1:56016 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_rename/vl Type - Location: 1:47352 - Links: 2 - Type: shared-1:47352 variable length of - native int -/named_vl Dataset {2/2} - Location: 1:13104 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: shared-1:13056 variable length of - native int -/nested_vl Dataset {2/2} - Location: 1:27392 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: variable length of - variable length of - native int -/rename Dataset {2/2} - Location: 1:29584 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/simple Dataset {6/6} - Location: 1:808 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int diff --git a/tools/testfiles/h5copytst.b.out.ls b/tools/testfiles/h5copytst.b.out.ls deleted file mode 100644 index df18eac..0000000 --- a/tools/testfiles/h5copytst.b.out.ls +++ /dev/null @@ -1,185 +0,0 @@ -############################# -Expected output for 'h5ls ../testfiles/h5copytst.b.out.h5' -############################# -Opened "../testfiles/h5copytst.b.out.h5" with sec2 driver. -/chunk Dataset {6/6} - Location: 1:6216 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/compact Dataset {6/6} - Location: 1:6344 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/compound Dataset {2/2} - Location: 1:8528 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/compressed Dataset {6/6} - Location: 1:12888 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization - Filter-0: deflate-1 OPT {1} - Type: native int -/grp_dsets Group - Location: 1:31584 - Links: 1 -/grp_dsets/chunk Dataset {6/6} - Location: 1:33720 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_dsets/compact Dataset {6/6} - Location: 1:34176 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_dsets/compound Dataset {2/2} - Location: 1:34312 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/grp_dsets/compressed Dataset {6/6} - Location: 1:34528 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization - Filter-0: deflate-1 OPT {1} - Type: native int -/grp_dsets/named_vl Dataset {2/2} - Location: 1:34744 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: shared-1:34696 variable length of - native int -/grp_dsets/nested_vl Dataset {2/2} - Location: 1:43216 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: variable length of - variable length of - native int -/grp_dsets/simple Dataset {6/6} - Location: 1:43360 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_dsets/vl Type - Location: 1:34696 - Links: 2 - Type: shared-1:34696 variable length of - native int -/grp_empty Group - Location: 1:30464 - Links: 1 -/grp_rename Group - Location: 1:44240 - Links: 1 -/grp_rename/chunk Dataset {6/6} - Location: 1:46376 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_rename/compact Dataset {6/6} - Location: 1:46832 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_rename/compound Dataset {2/2} - Location: 1:46968 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/grp_rename/compressed Dataset {6/6} - Location: 1:47184 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Chunks: {2} 8 bytes - Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization - Filter-0: deflate-1 OPT {1} - Type: native int -/grp_rename/named_vl Dataset {2/2} - Location: 1:47400 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: shared-1:47352 variable length of - native int -/grp_rename/nested_vl Dataset {2/2} - Location: 1:55872 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: variable length of - variable length of - native int -/grp_rename/simple Dataset {6/6} - Location: 1:56016 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int -/grp_rename/vl Type - Location: 1:47352 - Links: 2 - Type: shared-1:47352 variable length of - native int -/named_vl Dataset {2/2} - Location: 1:13104 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: shared-1:13056 variable length of - native int -/nested_vl Dataset {2/2} - Location: 1:27392 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization - Type: variable length of - variable length of - native int -/rename Dataset {2/2} - Location: 1:29584 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization - Type: struct { - "str1" +0 20-byte null-terminated ASCII string - "str2" +20 20-byte null-terminated ASCII string - } 40 bytes -/simple Dataset {6/6} - Location: 1:808 - Links: 1 - Modified: 2007-02-13 18:36:15 CST - Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization - Type: native int diff --git a/tools/testfiles/h5copytst.h5 b/tools/testfiles/h5copytst.h5 index 09f2bb9..f407f82 100644 Binary files a/tools/testfiles/h5copytst.h5 and b/tools/testfiles/h5copytst.h5 differ diff --git a/tools/testfiles/h5copytst.out.ls b/tools/testfiles/h5copytst.out.ls new file mode 100644 index 0000000..d2a6db7 --- /dev/null +++ b/tools/testfiles/h5copytst.out.ls @@ -0,0 +1,484 @@ +############################# +Expected output for 'h5ls ../testfiles/h5copytst.out.h5' +############################# +Opened "../testfiles/h5copytst.out.h5" with sec2 driver. +/A Group + Location: 1:90344 + Links: 1 +/A/B1 Group + Location: 1:91056 + Links: 1 +/A/B1/simple Dataset {6/6} + Location: 1:90216 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/A/B2 Group + Location: 1:94600 + Links: 1 +/A/B2/simple2 Dataset {6/6} + Location: 1:94472 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/C Group + Location: 1:97816 + Links: 1 +/C/D Group + Location: 1:98528 + Links: 1 +/C/D/simple Dataset {6/6} + Location: 1:97688 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/E Group + Location: 1:103960 + Links: 1 +/E/F Group + Location: 1:113216 + Links: 1 +/E/F/grp_dsets Group + Location: 1:100648 + Links: 1 +/E/F/grp_dsets/chunk Dataset {6/6} + Location: 1:102784 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/E/F/grp_dsets/compact Dataset {6/6} + Location: 1:103240 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/E/F/grp_dsets/compound Dataset {2/2} + Location: 1:103376 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/E/F/grp_dsets/compressed Dataset {6/6} + Location: 1:103592 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/E/F/grp_dsets/named_vl Dataset {2/2} + Location: 1:103808 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:103760 variable length of + native int +/E/F/grp_dsets/nested_vl Dataset {2/2} + Location: 1:112280 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/E/F/grp_dsets/simple Dataset {6/6} + Location: 1:112424 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/E/F/grp_dsets/vl Type + Location: 1:103760 + Links: 2 + Type: shared-1:103760 variable length of + native int +/G Group + Location: 1:128264 + Links: 1 +/G/H Group + Location: 1:128976 + Links: 1 +/G/H/grp_nested Group + Location: 1:115248 + Links: 1 +/G/H/grp_nested/grp_dsets Group + Location: 1:116040 + Links: 1 +/G/H/grp_nested/grp_dsets/chunk Dataset {6/6} + Location: 1:118176 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/G/H/grp_nested/grp_dsets/compact Dataset {6/6} + Location: 1:120776 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/G/H/grp_nested/grp_dsets/compound Dataset {2/2} + Location: 1:120912 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/G/H/grp_nested/grp_dsets/compressed Dataset {6/6} + Location: 1:123224 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/G/H/grp_nested/grp_dsets/named_vl Dataset {2/2} + Location: 1:127536 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:123392 variable length of + native int +/G/H/grp_nested/grp_dsets/nested_vl Dataset {2/2} + Location: 1:127664 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/G/H/grp_nested/grp_dsets/simple Dataset {6/6} + Location: 1:127808 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/G/H/grp_nested/grp_dsets/vl Type + Location: 1:123392 + Links: 2 + Type: shared-1:123392 variable length of + native int +/chunk Dataset {6/6} + Location: 1:6216 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/compact Dataset {6/6} + Location: 1:6344 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/compound Dataset {2/2} + Location: 1:8528 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/compressed Dataset {6/6} + Location: 1:12888 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/grp_dsets Group + Location: 1:33760 + Links: 1 +/grp_dsets/chunk Dataset {6/6} + Location: 1:35896 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_dsets/compact Dataset {6/6} + Location: 1:36352 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_dsets/compound Dataset {2/2} + Location: 1:36488 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/grp_dsets/compressed Dataset {6/6} + Location: 1:36704 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/grp_dsets/named_vl Dataset {2/2} + Location: 1:36920 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:36872 variable length of + native int +/grp_dsets/nested_vl Dataset {2/2} + Location: 1:45392 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/grp_dsets/simple Dataset {6/6} + Location: 1:45536 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_dsets/simple_group Dataset {6/6} + Location: 1:61744 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_dsets/vl Type + Location: 1:36872 + Links: 2 + Type: shared-1:36872 variable length of + native int +/grp_empty Group + Location: 1:32968 + Links: 1 +/grp_nested Group + Location: 1:46328 + Links: 1 +/grp_nested/grp_dsets Group + Location: 1:47120 + Links: 1 +/grp_nested/grp_dsets/chunk Dataset {6/6} + Location: 1:49256 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_nested/grp_dsets/compact Dataset {6/6} + Location: 1:51856 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_nested/grp_dsets/compound Dataset {2/2} + Location: 1:51992 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/grp_nested/grp_dsets/compressed Dataset {6/6} + Location: 1:54304 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/grp_nested/grp_dsets/named_vl Dataset {2/2} + Location: 1:58616 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:54472 variable length of + native int +/grp_nested/grp_dsets/nested_vl Dataset {2/2} + Location: 1:58744 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/grp_nested/grp_dsets/simple Dataset {6/6} + Location: 1:58888 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_nested/grp_dsets/vl Type + Location: 1:54472 + Links: 2 + Type: shared-1:54472 variable length of + native int +/grp_rename Group + Location: 1:62952 + Links: 1 +/grp_rename/chunk Dataset {6/6} + Location: 1:65088 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_rename/compact Dataset {6/6} + Location: 1:65544 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_rename/compound Dataset {2/2} + Location: 1:65680 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/grp_rename/compressed Dataset {6/6} + Location: 1:65896 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/grp_rename/grp_dsets Group + Location: 1:75936 + Links: 1 +/grp_rename/grp_dsets/chunk Dataset {6/6} + Location: 1:78072 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_rename/grp_dsets/compact Dataset {6/6} + Location: 1:78528 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_rename/grp_dsets/compound Dataset {2/2} + Location: 1:78664 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/grp_rename/grp_dsets/compressed Dataset {6/6} + Location: 1:78880 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Chunks: {2} 8 bytes + Storage: 24 logical bytes, 42 allocated bytes, 57.14% utilization + Filter-0: deflate-1 OPT {1} + Type: native int +/grp_rename/grp_dsets/named_vl Dataset {2/2} + Location: 1:79096 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:79048 variable length of + native int +/grp_rename/grp_dsets/nested_vl Dataset {2/2} + Location: 1:87568 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/grp_rename/grp_dsets/simple Dataset {6/6} + Location: 1:87712 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_rename/grp_dsets/vl Type + Location: 1:79048 + Links: 2 + Type: shared-1:79048 variable length of + native int +/grp_rename/named_vl Dataset {2/2} + Location: 1:66112 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:66064 variable length of + native int +/grp_rename/nested_vl Dataset {2/2} + Location: 1:74584 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/grp_rename/simple Dataset {6/6} + Location: 1:74728 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/grp_rename/vl Type + Location: 1:66064 + Links: 2 + Type: shared-1:66064 variable length of + native int +/named_vl Dataset {2/2} + Location: 1:13104 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: shared-1:13056 variable length of + native int +/nested_vl Dataset {2/2} + Location: 1:27392 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 16 logical bytes, 32 allocated bytes, 50.00% utilization + Type: variable length of + variable length of + native int +/rename Dataset {2/2} + Location: 1:31760 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 80 logical bytes, 80 allocated bytes, 100.00% utilization + Type: struct { + "str1" +0 20-byte null-terminated ASCII string + "str2" +20 20-byte null-terminated ASCII string + } 40 bytes +/simple Dataset {6/6} + Location: 1:808 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int +/simple_top Dataset {6/6} + Location: 1:29584 + Links: 1 + Modified: 2007-02-14 10:56:03 CST + Storage: 24 logical bytes, 24 allocated bytes, 100.00% utilization + Type: native int -- cgit v0.12