diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2019-01-07 21:20:11 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2019-01-07 21:40:44 (GMT) |
commit | b043126e5e502d198b222139677bc08c9915a12b (patch) | |
tree | d7594f6cbdc7dc2264f4df71a042b5c744e40295 /test | |
parent | e52e68c82f16a74551d7ce21976d87b40c6ddcd7 (diff) | |
download | hdf5-b043126e5e502d198b222139677bc08c9915a12b.zip hdf5-b043126e5e502d198b222139677bc08c9915a12b.tar.gz hdf5-b043126e5e502d198b222139677bc08c9915a12b.tar.bz2 |
Delay checking if decoded message's "shareable" flag is appropriate for
the message type until we've verified we understand the message type.
Reduce size of H5O_msg_class_g to *not* include space for
H5O_BOGUS_INVALID. Make bogus messages shareable. Add new bogus
message test with shareable messages to cover the formerly problematic
code. Re-run gen_bogus.c to add this test case and also to fix the
bogus_invalid messages that were no longer H5O_BOGUS_INVLAID due to a
new message class being added in a previous commit. Added comment to
remind developers to run gen_bogus.c when adding a new message class.
Diffstat (limited to 'test')
-rw-r--r-- | test/gen_bogus.c | 8 | ||||
-rw-r--r-- | test/ohdr.c | 10 | ||||
-rw-r--r-- | test/tbogus.h5 | bin | 4512 -> 5056 bytes |
3 files changed, 18 insertions, 0 deletions
diff --git a/test/gen_bogus.c b/test/gen_bogus.c index ec29eb9..237b024 100644 --- a/test/gen_bogus.c +++ b/test/gen_bogus.c @@ -89,6 +89,14 @@ generate_datasets(hid_t loc_id, unsigned bogus_id) if((did = H5Dcreate2(loc_id, "Dataset4", H5T_NATIVE_INT, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0) goto error; if(H5Dclose(did) < 0) goto error; + /* Set "shareable" message flag for bogus message */ + bogus_flags = H5O_MSG_FLAG_SHAREABLE; + if(H5Pset(dcpl, H5O_BOGUS_MSG_FLAGS_NAME, &bogus_flags) < 0) goto error; + + /* Create fourth dataset, with "shareable" message flag */ + if((did = H5Dcreate2(loc_id, "Dataset5", H5T_NATIVE_INT, sid, H5P_DEFAULT, dcpl, H5P_DEFAULT)) < 0) goto error; + if(H5Dclose(did) < 0) goto error; + /* Close dataset creation property list */ if(H5Pclose(dcpl) < 0) goto error; diff --git a/test/ohdr.c b/test/ohdr.c index 25413cb..85554a5 100644 --- a/test/ohdr.c +++ b/test/ohdr.c @@ -521,6 +521,16 @@ test_unknown(unsigned bogus_id, char *filename, hid_t fapl) PASSED(); + TESTING("object with unknown header message & 'shareable' flag set"); + + /* Open the dataset with the unknown header message, adn "shareable" flag */ + if((did = H5Dopen2(loc_bogus, "Dataset5", H5P_DEFAULT)) < 0) + FAIL_STACK_ERROR + if(H5Dclose(did) < 0) + FAIL_STACK_ERROR + + PASSED(); + TESTING("object in r/o file with unknown header message & 'fail if unknown and open for write' flag set"); /* Open the dataset with the unknown header message, and "fail if unknown and open for write" flag */ diff --git a/test/tbogus.h5 b/test/tbogus.h5 Binary files differindex 91ab76f..efcbd79 100644 --- a/test/tbogus.h5 +++ b/test/tbogus.h5 |