diff options
author | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2007-10-11 19:42:30 (GMT) |
---|---|---|
committer | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2007-10-11 19:42:30 (GMT) |
commit | 8e4bcb5fee17d87d07ab0672439ed391731c96b8 (patch) | |
tree | 32e7960fa662f4922b1930f90ae4abb8b994ef29 | |
parent | e387120f945dcfdf113a34d47d828796dd84ad16 (diff) | |
download | hdf5-8e4bcb5fee17d87d07ab0672439ed391731c96b8.zip hdf5-8e4bcb5fee17d87d07ab0672439ed391731c96b8.tar.gz hdf5-8e4bcb5fee17d87d07ab0672439ed391731c96b8.tar.bz2 |
[svn-r14201] attribute ordering: added objects that do not have creation order tracked
current behavior is
if DCPL has creation order tracked for attributes then sort the attributes by creation order otherwise by name
regarding sort order (ascending or descending) it is done in whatever is requested
tested: linux
-rw-r--r-- | tools/h5dump/h5dumpgentest.c | 90 | ||||
-rw-r--r-- | tools/testfiles/torderattr.h5 | bin | 2728 -> 4120 bytes | |||
-rw-r--r-- | tools/testfiles/torderattr1.ddl | 46 | ||||
-rw-r--r-- | tools/testfiles/torderattr1.h5.xml | 114 | ||||
-rw-r--r-- | tools/testfiles/torderattr2.ddl | 46 | ||||
-rw-r--r-- | tools/testfiles/torderattr2.h5.xml | 114 | ||||
-rw-r--r-- | tools/testfiles/torderattr3.ddl | 46 | ||||
-rw-r--r-- | tools/testfiles/torderattr3.h5.xml | 114 | ||||
-rw-r--r-- | tools/testfiles/torderattr4.ddl | 50 | ||||
-rw-r--r-- | tools/testfiles/torderattr4.h5.xml | 114 |
10 files changed, 709 insertions, 25 deletions
diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index 0a6b607..d6893d9 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -5950,16 +5950,41 @@ gent_attr_creation_order(void) goto out; /*------------------------------------------------------------------------- - * create a dataset and atributes in it + * create a dataset with creation order tracked for attributes and atributes in it *------------------------------------------------------------------------- */ /* create a dataset */ - if((did = H5Dcreate2(fid, "dset", H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, dcpl_id, H5P_DEFAULT)) < 0) + if((did = H5Dcreate2(fid, "dt", H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, dcpl_id, H5P_DEFAULT)) < 0) goto out; /* add attributes */ - for(i = 0; i < 3; i++) { + for(i = 0; i < 3; i++) + { + if((aid = H5Acreate2(did, ".", attr_name[i], H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto out; + + /* close attribute */ + if(H5Aclose(aid) < 0) + goto out; + } /* end for */ + + if(H5Dclose(did) < 0) + goto out; + + +/*------------------------------------------------------------------------- + * create a dataset without creation order tracked for attributes and atributes in it + *------------------------------------------------------------------------- + */ + + /* create a dataset */ + if((did = H5Dcreate2(fid, "d", H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto out; + + /* add attributes */ + for(i = 0; i < 3; i++) + { if((aid = H5Acreate2(did, ".", attr_name[i], H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) goto out; @@ -5974,11 +5999,11 @@ gent_attr_creation_order(void) /*------------------------------------------------------------------------- - * create a group and atributes in it + * create a group with creation order tracked for attributes and atributes in it *------------------------------------------------------------------------- */ - if((gid = H5Gcreate2(fid, "g", H5P_DEFAULT, gcpl_id, H5P_DEFAULT)) < 0) + if((gid = H5Gcreate2(fid, "gt", H5P_DEFAULT, gcpl_id, H5P_DEFAULT)) < 0) goto out; /* add attributes */ @@ -5997,14 +6022,38 @@ gent_attr_creation_order(void) goto out; /*------------------------------------------------------------------------- - * create a named datatype and atributes in it + * create a group without creation order tracked for attributes and atributes in it + *------------------------------------------------------------------------- + */ + + if((gid = H5Gcreate2(fid, "g", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto out; + + /* add attributes */ + for(i = 0; i < 3; i++) + { + if((aid = H5Acreate2(gid, ".", attr_name[i], H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto out; + + /* close attribute */ + if(H5Aclose(aid) < 0) + goto out; + + } /* end for */ + + if(H5Gclose(gid) < 0) + goto out; + + +/*------------------------------------------------------------------------- + * create a named datatype with creation order tracked for attributes and atributes in it *------------------------------------------------------------------------- */ if((tid = H5Tcopy(H5T_NATIVE_INT)) < 0) goto out; - if((H5Tcommit2(fid, "t", tid, H5P_DEFAULT, tcpl_id, H5P_DEFAULT)) < 0) + if((H5Tcommit2(fid, "tt", tid, H5P_DEFAULT, tcpl_id, H5P_DEFAULT)) < 0) goto out; /* add attributes */ @@ -6021,6 +6070,33 @@ gent_attr_creation_order(void) if(H5Tclose(tid) < 0) goto out; + +/*------------------------------------------------------------------------- + * create a named datatype without creation order tracked for attributes and atributes in it + *------------------------------------------------------------------------- + */ + + if((tid = H5Tcopy(H5T_NATIVE_INT)) < 0) + goto out; + + if((H5Tcommit2(fid, "t", tid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto out; + + /* add attributes */ + for(i = 0; i < 3; i++) + { + if((aid = H5Acreate2(tid, ".", attr_name[i], H5T_NATIVE_UCHAR, sid, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT)) < 0) + goto out; + + /* close attribute */ + if(H5Aclose(aid) < 0) + goto out; + + } /* end for */ + + if(H5Tclose(tid) < 0) + goto out; + /*------------------------------------------------------------------------- * add some attributes to the root group *------------------------------------------------------------------------- diff --git a/tools/testfiles/torderattr.h5 b/tools/testfiles/torderattr.h5 Binary files differindex 57b1a87..bafa846 100644 --- a/tools/testfiles/torderattr.h5 +++ b/tools/testfiles/torderattr.h5 diff --git a/tools/testfiles/torderattr1.ddl b/tools/testfiles/torderattr1.ddl index 5572ef1..3c4bd6b 100644 --- a/tools/testfiles/torderattr1.ddl +++ b/tools/testfiles/torderattr1.ddl @@ -15,7 +15,23 @@ GROUP "/" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR } - DATASET "dset" { + DATASET "d" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } + DATASET "dt" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR ATTRIBUTE "a" { @@ -45,6 +61,20 @@ GROUP "/" { DATASPACE SCALAR } } + GROUP "gt" { + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } DATATYPE "t" H5T_STD_I32LE; ATTRIBUTE "a" { DATATYPE H5T_STD_U8LE @@ -59,5 +89,19 @@ GROUP "/" { DATASPACE SCALAR } + DATATYPE "tt" H5T_STD_I32LE; + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } } diff --git a/tools/testfiles/torderattr1.h5.xml b/tools/testfiles/torderattr1.h5.xml index 7ee2f10..fcbe444 100644 --- a/tools/testfiles/torderattr1.h5.xml +++ b/tools/testfiles/torderattr1.h5.xml @@ -43,7 +43,7 @@ Expected output for 'h5dump --xml -H --sort_by=name --sort_order=ascending torde <hdf5:NoData/> </hdf5:Data> </hdf5:Attribute> - <hdf5:Dataset Name="dset" OBJ-XID="xid_800" H5Path= "/dset" Parents="xid_96" H5ParentPaths="/"> + <hdf5:Dataset Name="d" OBJ-XID="xid_1412" H5Path= "/d" Parents="xid_96" H5ParentPaths="/"> <hdf5:StorageLayout> <hdf5:ContiguousLayout/> </hdf5:StorageLayout> @@ -103,7 +103,108 @@ Expected output for 'h5dump --xml -H --sort_by=name --sort_order=ascending torde <hdf5:NoData/> </hdf5:Data> </hdf5:Dataset> - <hdf5:Group Name="g" OBJ-XID="xid_1412" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:Dataset Name="dt" OBJ-XID="xid_800" H5Path= "/dt" Parents="xid_96" H5ParentPaths="/"> + <hdf5:StorageLayout> + <hdf5:ContiguousLayout/> + </hdf5:StorageLayout> + <hdf5:FillValueInfo FillTime="FillIfSet" AllocationTime="Late"> + <hdf5:FillValue> + <hdf5:NoFill/> + </hdf5:FillValue> + </hdf5:FillValueInfo> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Dataset> + <hdf5:Group Name="g" OBJ-XID="xid_2612" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + </hdf5:Group> + <hdf5:Group Name="gt" OBJ-XID="xid_1700" H5Path="/gt" Parents="xid_96" H5ParentPaths="/" > <hdf5:Attribute Name="a"> <hdf5:Dataspace> <hdf5:ScalarDataspace /> @@ -144,7 +245,14 @@ Expected output for 'h5dump --xml -H --sort_by=name --sort_order=ascending torde </hdf5:Data> </hdf5:Attribute> </hdf5:Group> - <hdf5:NamedDataType Name="t" OBJ-XID="xid_2324" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:NamedDataType Name="t" OBJ-XID="xid_3720" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> + </hdf5:AtomicType> + </hdf5:DataType> + </hdf5:NamedDataType> + <hdf5:NamedDataType Name="tt" OBJ-XID="xid_3508" H5Path="/tt" Parents="xid_96" H5ParentPaths="/"> <hdf5:DataType> <hdf5:AtomicType> <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> diff --git a/tools/testfiles/torderattr2.ddl b/tools/testfiles/torderattr2.ddl index c0862ed..89799d3 100644 --- a/tools/testfiles/torderattr2.ddl +++ b/tools/testfiles/torderattr2.ddl @@ -15,6 +15,20 @@ GROUP "/" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR } + DATATYPE "tt" H5T_STD_I32LE; + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + DATATYPE "t" H5T_STD_I32LE; ATTRIBUTE "c" { DATATYPE H5T_STD_U8LE @@ -29,6 +43,20 @@ GROUP "/" { DATASPACE SCALAR } + GROUP "gt" { + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } GROUP "g" { ATTRIBUTE "c" { DATATYPE H5T_STD_U8LE @@ -43,7 +71,23 @@ GROUP "/" { DATASPACE SCALAR } } - DATASET "dset" { + DATASET "dt" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } + DATASET "d" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR ATTRIBUTE "c" { diff --git a/tools/testfiles/torderattr2.h5.xml b/tools/testfiles/torderattr2.h5.xml index 9f5d216..5f2b434 100644 --- a/tools/testfiles/torderattr2.h5.xml +++ b/tools/testfiles/torderattr2.h5.xml @@ -43,14 +43,21 @@ Expected output for 'h5dump --xml -H --sort_by=name --sort_order=descending tord <hdf5:NoData/> </hdf5:Data> </hdf5:Attribute> - <hdf5:NamedDataType Name="t" OBJ-XID="xid_2324" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:NamedDataType Name="tt" OBJ-XID="xid_3508" H5Path="/tt" Parents="xid_96" H5ParentPaths="/"> <hdf5:DataType> <hdf5:AtomicType> <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> </hdf5:AtomicType> </hdf5:DataType> </hdf5:NamedDataType> - <hdf5:Group Name="g" OBJ-XID="xid_1412" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:NamedDataType Name="t" OBJ-XID="xid_3720" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> + </hdf5:AtomicType> + </hdf5:DataType> + </hdf5:NamedDataType> + <hdf5:Group Name="gt" OBJ-XID="xid_1700" H5Path="/gt" Parents="xid_96" H5ParentPaths="/" > <hdf5:Attribute Name="c"> <hdf5:Dataspace> <hdf5:ScalarDataspace /> @@ -91,7 +98,108 @@ Expected output for 'h5dump --xml -H --sort_by=name --sort_order=descending tord </hdf5:Data> </hdf5:Attribute> </hdf5:Group> - <hdf5:Dataset Name="dset" OBJ-XID="xid_800" H5Path= "/dset" Parents="xid_96" H5ParentPaths="/"> + <hdf5:Group Name="g" OBJ-XID="xid_2612" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + </hdf5:Group> + <hdf5:Dataset Name="dt" OBJ-XID="xid_800" H5Path= "/dt" Parents="xid_96" H5ParentPaths="/"> + <hdf5:StorageLayout> + <hdf5:ContiguousLayout/> + </hdf5:StorageLayout> + <hdf5:FillValueInfo FillTime="FillIfSet" AllocationTime="Late"> + <hdf5:FillValue> + <hdf5:NoFill/> + </hdf5:FillValue> + </hdf5:FillValueInfo> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Dataset> + <hdf5:Dataset Name="d" OBJ-XID="xid_1412" H5Path= "/d" Parents="xid_96" H5ParentPaths="/"> <hdf5:StorageLayout> <hdf5:ContiguousLayout/> </hdf5:StorageLayout> diff --git a/tools/testfiles/torderattr3.ddl b/tools/testfiles/torderattr3.ddl index 146767c..5dba83e 100644 --- a/tools/testfiles/torderattr3.ddl +++ b/tools/testfiles/torderattr3.ddl @@ -15,7 +15,23 @@ GROUP "/" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR } - DATASET "dset" { + DATASET "d" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } + DATASET "dt" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR ATTRIBUTE "c" { @@ -32,6 +48,20 @@ GROUP "/" { } } GROUP "g" { + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } + GROUP "gt" { ATTRIBUTE "c" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR @@ -46,6 +76,20 @@ GROUP "/" { } } DATATYPE "t" H5T_STD_I32LE; + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + + DATATYPE "tt" H5T_STD_I32LE; ATTRIBUTE "c" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR diff --git a/tools/testfiles/torderattr3.h5.xml b/tools/testfiles/torderattr3.h5.xml index 6659d1b..6488711 100644 --- a/tools/testfiles/torderattr3.h5.xml +++ b/tools/testfiles/torderattr3.h5.xml @@ -43,7 +43,67 @@ Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=ascen <hdf5:NoData/> </hdf5:Data> </hdf5:Attribute> - <hdf5:Dataset Name="dset" OBJ-XID="xid_800" H5Path= "/dset" Parents="xid_96" H5ParentPaths="/"> + <hdf5:Dataset Name="d" OBJ-XID="xid_1412" H5Path= "/d" Parents="xid_96" H5ParentPaths="/"> + <hdf5:StorageLayout> + <hdf5:ContiguousLayout/> + </hdf5:StorageLayout> + <hdf5:FillValueInfo FillTime="FillIfSet" AllocationTime="Late"> + <hdf5:FillValue> + <hdf5:NoFill/> + </hdf5:FillValue> + </hdf5:FillValueInfo> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Dataset> + <hdf5:Dataset Name="dt" OBJ-XID="xid_800" H5Path= "/dt" Parents="xid_96" H5ParentPaths="/"> <hdf5:StorageLayout> <hdf5:ContiguousLayout/> </hdf5:StorageLayout> @@ -103,7 +163,48 @@ Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=ascen <hdf5:NoData/> </hdf5:Data> </hdf5:Dataset> - <hdf5:Group Name="g" OBJ-XID="xid_1412" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:Group Name="g" OBJ-XID="xid_2612" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + </hdf5:Group> + <hdf5:Group Name="gt" OBJ-XID="xid_1700" H5Path="/gt" Parents="xid_96" H5ParentPaths="/" > <hdf5:Attribute Name="c"> <hdf5:Dataspace> <hdf5:ScalarDataspace /> @@ -144,7 +245,14 @@ Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=ascen </hdf5:Data> </hdf5:Attribute> </hdf5:Group> - <hdf5:NamedDataType Name="t" OBJ-XID="xid_2324" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:NamedDataType Name="t" OBJ-XID="xid_3720" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> + </hdf5:AtomicType> + </hdf5:DataType> + </hdf5:NamedDataType> + <hdf5:NamedDataType Name="tt" OBJ-XID="xid_3508" H5Path="/tt" Parents="xid_96" H5ParentPaths="/"> <hdf5:DataType> <hdf5:AtomicType> <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> diff --git a/tools/testfiles/torderattr4.ddl b/tools/testfiles/torderattr4.ddl index cd46d41..fc59f6a 100644 --- a/tools/testfiles/torderattr4.ddl +++ b/tools/testfiles/torderattr4.ddl @@ -15,7 +15,7 @@ GROUP "/" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR } - DATATYPE "t" H5T_STD_I32LE; + DATATYPE "tt" H5T_STD_I32LE; ATTRIBUTE "a" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR @@ -29,7 +29,21 @@ GROUP "/" { DATASPACE SCALAR } - GROUP "g" { + DATATYPE "t" H5T_STD_I32LE; + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + + GROUP "gt" { ATTRIBUTE "a" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR @@ -43,7 +57,21 @@ GROUP "/" { DATASPACE SCALAR } } - DATASET "dset" { + GROUP "g" { + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } + DATASET "dt" { DATATYPE H5T_STD_U8LE DATASPACE SCALAR ATTRIBUTE "a" { @@ -59,5 +87,21 @@ GROUP "/" { DATASPACE SCALAR } } + DATASET "d" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + ATTRIBUTE "c" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "b" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + ATTRIBUTE "a" { + DATATYPE H5T_STD_U8LE + DATASPACE SCALAR + } + } } } diff --git a/tools/testfiles/torderattr4.h5.xml b/tools/testfiles/torderattr4.h5.xml index 82e57e0..c6fa0ad 100644 --- a/tools/testfiles/torderattr4.h5.xml +++ b/tools/testfiles/torderattr4.h5.xml @@ -43,14 +43,21 @@ Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=desce <hdf5:NoData/> </hdf5:Data> </hdf5:Attribute> - <hdf5:NamedDataType Name="t" OBJ-XID="xid_2324" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:NamedDataType Name="tt" OBJ-XID="xid_3508" H5Path="/tt" Parents="xid_96" H5ParentPaths="/"> <hdf5:DataType> <hdf5:AtomicType> <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> </hdf5:AtomicType> </hdf5:DataType> </hdf5:NamedDataType> - <hdf5:Group Name="g" OBJ-XID="xid_1412" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:NamedDataType Name="t" OBJ-XID="xid_3720" H5Path="/t" Parents="xid_96" H5ParentPaths="/"> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="true" Size="4" /> + </hdf5:AtomicType> + </hdf5:DataType> + </hdf5:NamedDataType> + <hdf5:Group Name="gt" OBJ-XID="xid_1700" H5Path="/gt" Parents="xid_96" H5ParentPaths="/" > <hdf5:Attribute Name="a"> <hdf5:Dataspace> <hdf5:ScalarDataspace /> @@ -91,7 +98,48 @@ Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=desce </hdf5:Data> </hdf5:Attribute> </hdf5:Group> - <hdf5:Dataset Name="dset" OBJ-XID="xid_800" H5Path= "/dset" Parents="xid_96" H5ParentPaths="/"> + <hdf5:Group Name="g" OBJ-XID="xid_2612" H5Path="/g" Parents="xid_96" H5ParentPaths="/" > + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + </hdf5:Group> + <hdf5:Dataset Name="dt" OBJ-XID="xid_800" H5Path= "/dt" Parents="xid_96" H5ParentPaths="/"> <hdf5:StorageLayout> <hdf5:ContiguousLayout/> </hdf5:StorageLayout> @@ -151,5 +199,65 @@ Expected output for 'h5dump --xml -H --sort_by=creation_order --sort_order=desce <hdf5:NoData/> </hdf5:Data> </hdf5:Dataset> + <hdf5:Dataset Name="d" OBJ-XID="xid_1412" H5Path= "/d" Parents="xid_96" H5ParentPaths="/"> + <hdf5:StorageLayout> + <hdf5:ContiguousLayout/> + </hdf5:StorageLayout> + <hdf5:FillValueInfo FillTime="FillIfSet" AllocationTime="Late"> + <hdf5:FillValue> + <hdf5:NoFill/> + </hdf5:FillValue> + </hdf5:FillValueInfo> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Attribute Name="c"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="b"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Attribute Name="a"> + <hdf5:Dataspace> + <hdf5:ScalarDataspace /> + </hdf5:Dataspace> + <hdf5:DataType> + <hdf5:AtomicType> + <hdf5:IntegerType ByteOrder="LE" Sign="false" Size="1" /> + </hdf5:AtomicType> + </hdf5:DataType> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Attribute> + <hdf5:Data> + <hdf5:NoData/> + </hdf5:Data> + </hdf5:Dataset> </hdf5:RootGroup> </hdf5:HDF5-File> |