summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2015-09-16 19:55:38 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2015-09-16 19:55:38 (GMT)
commitd23cc2da70510d5c52216234b5d2a7b292a3ab30 (patch)
tree55d0caf28a8a06823ca0c54690f2ab365fbc6710
parent52ac462e7c7af08f176e0772914fa16d815d7e16 (diff)
downloadhdf5-d23cc2da70510d5c52216234b5d2a7b292a3ab30.zip
hdf5-d23cc2da70510d5c52216234b5d2a7b292a3ab30.tar.gz
hdf5-d23cc2da70510d5c52216234b5d2a7b292a3ab30.tar.bz2
[svn-r27806] Fix property list serialization for values encoded by H5Pset_chunk_cache to be
compatible between 32 and 64 bit systems. Expand cross platform property list encode/decode testing. Fix warning in H5P__fill_value_enc. Tested: jam, koala, ostrich (h5committest), ummon
-rw-r--r--MANIFEST122
-rw-r--r--src/H5Pdapl.c234
-rw-r--r--src/H5Pdcpl.c2
-rw-r--r--test/Makefile.am2
-rw-r--r--test/enc_dec_plist_cross_platform.c235
-rw-r--r--test/enc_dec_plist_with_endianess.c160
-rw-r--r--test/gen_plist.c81
-rw-r--r--test/testfiles/plist_files/acpl_32be (renamed from test/testfiles/plist_files/acpl_le)bin23 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/acpl_32le (renamed from test/testfiles/plist_files/acpl_be)bin23 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/acpl_64bebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/acpl_64lebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/dapl_32be (renamed from test/testfiles/plist_files/dapl_le)bin136 -> 136 bytes
-rw-r--r--test/testfiles/plist_files/dapl_32le (renamed from test/testfiles/plist_files/dapl_be)bin136 -> 136 bytes
-rw-r--r--test/testfiles/plist_files/dapl_64bebin0 -> 136 bytes
-rw-r--r--test/testfiles/plist_files/dapl_64lebin0 -> 136 bytes
-rw-r--r--test/testfiles/plist_files/dcpl_32be (renamed from test/testfiles/plist_files/dcpl_le)bin221 -> 221 bytes
-rw-r--r--test/testfiles/plist_files/dcpl_32le (renamed from test/testfiles/plist_files/dcpl_be)bin221 -> 221 bytes
-rw-r--r--test/testfiles/plist_files/dcpl_64bebin0 -> 221 bytes
-rw-r--r--test/testfiles/plist_files/dcpl_64lebin0 -> 221 bytes
-rw-r--r--test/testfiles/plist_files/def_acpl_32bebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_acpl_32lebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_acpl_64bebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_acpl_64lebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_dapl_32bebin0 -> 131 bytes
-rw-r--r--test/testfiles/plist_files/def_dapl_32lebin0 -> 131 bytes
-rw-r--r--test/testfiles/plist_files/def_dapl_64bebin0 -> 131 bytes
-rw-r--r--test/testfiles/plist_files/def_dapl_64lebin0 -> 131 bytes
-rw-r--r--test/testfiles/plist_files/def_dcpl_32bebin0 -> 132 bytes
-rw-r--r--test/testfiles/plist_files/def_dcpl_32lebin0 -> 132 bytes
-rw-r--r--test/testfiles/plist_files/def_dcpl_64bebin0 -> 132 bytes
-rw-r--r--test/testfiles/plist_files/def_dcpl_64lebin0 -> 132 bytes
-rw-r--r--test/testfiles/plist_files/def_dxpl_32bebin0 -> 225 bytes
-rw-r--r--test/testfiles/plist_files/def_dxpl_32lebin0 -> 225 bytes
-rw-r--r--test/testfiles/plist_files/def_dxpl_64bebin0 -> 225 bytes
-rw-r--r--test/testfiles/plist_files/def_dxpl_64lebin0 -> 225 bytes
-rw-r--r--test/testfiles/plist_files/def_fapl_32bebin0 -> 1460 bytes
-rw-r--r--test/testfiles/plist_files/def_fapl_32lebin0 -> 1460 bytes
-rw-r--r--test/testfiles/plist_files/def_fapl_64bebin0 -> 1460 bytes
-rw-r--r--test/testfiles/plist_files/def_fapl_64lebin0 -> 1460 bytes
-rw-r--r--test/testfiles/plist_files/def_fcpl_32bebin0 -> 412 bytes
-rw-r--r--test/testfiles/plist_files/def_fcpl_32lebin0 -> 412 bytes
-rw-r--r--test/testfiles/plist_files/def_fcpl_64bebin0 -> 412 bytes
-rw-r--r--test/testfiles/plist_files/def_fcpl_64lebin0 -> 412 bytes
-rw-r--r--test/testfiles/plist_files/def_gcpl_32bebin0 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/def_gcpl_32lebin0 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/def_gcpl_64bebin0 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/def_gcpl_64lebin0 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/def_lapl_32bebin0 -> 88 bytes
-rw-r--r--test/testfiles/plist_files/def_lapl_32lebin0 -> 88 bytes
-rw-r--r--test/testfiles/plist_files/def_lapl_64bebin0 -> 88 bytes
-rw-r--r--test/testfiles/plist_files/def_lapl_64lebin0 -> 88 bytes
-rw-r--r--test/testfiles/plist_files/def_lcpl_32bebin0 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/def_lcpl_32lebin0 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/def_lcpl_64bebin0 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/def_lcpl_64lebin0 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpl_32bebin0 -> 75 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpl_32lebin0 -> 75 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpl_64bebin0 -> 75 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpl_64lebin0 -> 75 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpypl_32bebin0 -> 48 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpypl_32lebin0 -> 48 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpypl_64bebin0 -> 48 bytes
-rw-r--r--test/testfiles/plist_files/def_ocpypl_64lebin0 -> 48 bytes
-rw-r--r--test/testfiles/plist_files/def_strcpl_32bebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_strcpl_32lebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_strcpl_64bebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/def_strcpl_64lebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/dxpl_32bebin0 -> 229 bytes
-rw-r--r--test/testfiles/plist_files/dxpl_32lebin0 -> 229 bytes
-rw-r--r--test/testfiles/plist_files/dxpl_64bebin0 -> 229 bytes
-rw-r--r--test/testfiles/plist_files/dxpl_64lebin0 -> 229 bytes
-rw-r--r--test/testfiles/plist_files/dxpl_bebin229 -> 0 bytes
-rw-r--r--test/testfiles/plist_files/dxpl_lebin229 -> 0 bytes
-rw-r--r--test/testfiles/plist_files/fapl_32be (renamed from test/testfiles/plist_files/fapl_le)bin1462 -> 1462 bytes
-rw-r--r--test/testfiles/plist_files/fapl_32le (renamed from test/testfiles/plist_files/fapl_be)bin1462 -> 1462 bytes
-rw-r--r--test/testfiles/plist_files/fapl_64bebin0 -> 1462 bytes
-rw-r--r--test/testfiles/plist_files/fapl_64lebin0 -> 1462 bytes
-rw-r--r--test/testfiles/plist_files/fcpl_32be (renamed from test/testfiles/plist_files/fcpl_le)bin413 -> 413 bytes
-rw-r--r--test/testfiles/plist_files/fcpl_32le (renamed from test/testfiles/plist_files/fcpl_be)bin413 -> 413 bytes
-rw-r--r--test/testfiles/plist_files/fcpl_64bebin0 -> 413 bytes
-rw-r--r--test/testfiles/plist_files/fcpl_64lebin0 -> 413 bytes
-rw-r--r--test/testfiles/plist_files/gcpl_32be (renamed from test/testfiles/plist_files/gcpl_le)bin113 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/gcpl_32le (renamed from test/testfiles/plist_files/gcpl_be)bin113 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/gcpl_64bebin0 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/gcpl_64lebin0 -> 113 bytes
-rw-r--r--test/testfiles/plist_files/lapl_32be (renamed from test/testfiles/plist_files/lapl_be)bin1565 -> 1565 bytes
-rw-r--r--test/testfiles/plist_files/lapl_32le (renamed from test/testfiles/plist_files/lapl_le)bin1565 -> 1565 bytes
-rw-r--r--test/testfiles/plist_files/lapl_64bebin0 -> 1565 bytes
-rw-r--r--test/testfiles/plist_files/lapl_64lebin0 -> 1565 bytes
-rw-r--r--test/testfiles/plist_files/lcpl_32be (renamed from test/testfiles/plist_files/lcpl_le)bin47 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/lcpl_32le (renamed from test/testfiles/plist_files/lcpl_be)bin47 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/lcpl_64bebin0 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/lcpl_64lebin0 -> 47 bytes
-rw-r--r--test/testfiles/plist_files/ocpl_32be (renamed from test/testfiles/plist_files/ocpl_le)bin86 -> 86 bytes
-rw-r--r--test/testfiles/plist_files/ocpl_32le (renamed from test/testfiles/plist_files/ocpl_be)bin86 -> 86 bytes
-rw-r--r--test/testfiles/plist_files/ocpl_64bebin0 -> 86 bytes
-rw-r--r--test/testfiles/plist_files/ocpl_64lebin0 -> 86 bytes
-rw-r--r--test/testfiles/plist_files/ocpypl_32be (renamed from test/testfiles/plist_files/ocpypl_le)bin56 -> 56 bytes
-rw-r--r--test/testfiles/plist_files/ocpypl_32le (renamed from test/testfiles/plist_files/ocpypl_be)bin56 -> 56 bytes
-rw-r--r--test/testfiles/plist_files/ocpypl_64bebin0 -> 56 bytes
-rw-r--r--test/testfiles/plist_files/ocpypl_64lebin0 -> 56 bytes
-rw-r--r--test/testfiles/plist_files/strcpl_32be (renamed from test/testfiles/plist_files/strcpl_le)bin23 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/strcpl_32le (renamed from test/testfiles/plist_files/strcpl_be)bin23 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/strcpl_64bebin0 -> 23 bytes
-rw-r--r--test/testfiles/plist_files/strcpl_64lebin0 -> 23 bytes
105 files changed, 627 insertions, 209 deletions
diff --git a/MANIFEST b/MANIFEST
index 737bce7..a6da129 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -855,7 +855,7 @@
./test/earray.c
./test/efc.c
./test/enc_dec_plist.c
-./test/enc_dec_plist_with_endianess.c
+./test/enc_dec_plist_cross_platform.c
./test/enum.c
./test/extend.c
./test/external.c
@@ -994,30 +994,102 @@
./test/testfiles/error_test_1
./test/testfiles/error_test_2
./test/testfiles/links_env.out
-./test/testfiles/plist_files/acpl_be
-./test/testfiles/plist_files/acpl_le
-./test/testfiles/plist_files/dapl_be
-./test/testfiles/plist_files/dapl_le
-./test/testfiles/plist_files/dcpl_be
-./test/testfiles/plist_files/dcpl_le
-./test/testfiles/plist_files/dxpl_be
-./test/testfiles/plist_files/dxpl_le
-./test/testfiles/plist_files/fapl_be
-./test/testfiles/plist_files/fapl_le
-./test/testfiles/plist_files/fcpl_be
-./test/testfiles/plist_files/fcpl_le
-./test/testfiles/plist_files/gcpl_be
-./test/testfiles/plist_files/gcpl_le
-./test/testfiles/plist_files/lapl_be
-./test/testfiles/plist_files/lapl_le
-./test/testfiles/plist_files/lcpl_be
-./test/testfiles/plist_files/lcpl_le
-./test/testfiles/plist_files/ocpl_be
-./test/testfiles/plist_files/ocpl_le
-./test/testfiles/plist_files/ocpypl_be
-./test/testfiles/plist_files/ocpypl_le
-./test/testfiles/plist_files/strcpl_be
-./test/testfiles/plist_files/strcpl_le
+./test/testfiles/plist_files/acpl_32be
+./test/testfiles/plist_files/acpl_32le
+./test/testfiles/plist_files/acpl_64be
+./test/testfiles/plist_files/acpl_64le
+./test/testfiles/plist_files/dapl_32be
+./test/testfiles/plist_files/dapl_32le
+./test/testfiles/plist_files/dapl_64be
+./test/testfiles/plist_files/dapl_64le
+./test/testfiles/plist_files/dcpl_32be
+./test/testfiles/plist_files/dcpl_32le
+./test/testfiles/plist_files/dcpl_64be
+./test/testfiles/plist_files/dcpl_64le
+./test/testfiles/plist_files/def_acpl_32be
+./test/testfiles/plist_files/def_acpl_32le
+./test/testfiles/plist_files/def_acpl_64be
+./test/testfiles/plist_files/def_acpl_64le
+./test/testfiles/plist_files/def_dapl_32be
+./test/testfiles/plist_files/def_dapl_32le
+./test/testfiles/plist_files/def_dapl_64be
+./test/testfiles/plist_files/def_dapl_64le
+./test/testfiles/plist_files/def_dcpl_32be
+./test/testfiles/plist_files/def_dcpl_32le
+./test/testfiles/plist_files/def_dcpl_64be
+./test/testfiles/plist_files/def_dcpl_64le
+./test/testfiles/plist_files/def_dxpl_32be
+./test/testfiles/plist_files/def_dxpl_32le
+./test/testfiles/plist_files/def_dxpl_64be
+./test/testfiles/plist_files/def_dxpl_64le
+./test/testfiles/plist_files/def_fapl_32be
+./test/testfiles/plist_files/def_fapl_32le
+./test/testfiles/plist_files/def_fapl_64be
+./test/testfiles/plist_files/def_fapl_64le
+./test/testfiles/plist_files/def_fcpl_32be
+./test/testfiles/plist_files/def_fcpl_32le
+./test/testfiles/plist_files/def_fcpl_64be
+./test/testfiles/plist_files/def_fcpl_64le
+./test/testfiles/plist_files/def_gcpl_32be
+./test/testfiles/plist_files/def_gcpl_32le
+./test/testfiles/plist_files/def_gcpl_64be
+./test/testfiles/plist_files/def_gcpl_64le
+./test/testfiles/plist_files/def_lapl_32be
+./test/testfiles/plist_files/def_lapl_32le
+./test/testfiles/plist_files/def_lapl_64be
+./test/testfiles/plist_files/def_lapl_64le
+./test/testfiles/plist_files/def_lcpl_32be
+./test/testfiles/plist_files/def_lcpl_32le
+./test/testfiles/plist_files/def_lcpl_64be
+./test/testfiles/plist_files/def_lcpl_64le
+./test/testfiles/plist_files/def_ocpl_32be
+./test/testfiles/plist_files/def_ocpl_32le
+./test/testfiles/plist_files/def_ocpl_64be
+./test/testfiles/plist_files/def_ocpl_64le
+./test/testfiles/plist_files/def_ocpypl_32be
+./test/testfiles/plist_files/def_ocpypl_32le
+./test/testfiles/plist_files/def_ocpypl_64be
+./test/testfiles/plist_files/def_ocpypl_64le
+./test/testfiles/plist_files/def_strcpl_32be
+./test/testfiles/plist_files/def_strcpl_32le
+./test/testfiles/plist_files/def_strcpl_64be
+./test/testfiles/plist_files/def_strcpl_64le
+./test/testfiles/plist_files/dxpl_32be
+./test/testfiles/plist_files/dxpl_32le
+./test/testfiles/plist_files/dxpl_64be
+./test/testfiles/plist_files/dxpl_64le
+./test/testfiles/plist_files/fapl_32be
+./test/testfiles/plist_files/fapl_32le
+./test/testfiles/plist_files/fapl_64be
+./test/testfiles/plist_files/fapl_64le
+./test/testfiles/plist_files/fcpl_32be
+./test/testfiles/plist_files/fcpl_32le
+./test/testfiles/plist_files/fcpl_64be
+./test/testfiles/plist_files/fcpl_64le
+./test/testfiles/plist_files/gcpl_32be
+./test/testfiles/plist_files/gcpl_32le
+./test/testfiles/plist_files/gcpl_64be
+./test/testfiles/plist_files/gcpl_64le
+./test/testfiles/plist_files/lapl_32be
+./test/testfiles/plist_files/lapl_32le
+./test/testfiles/plist_files/lapl_64be
+./test/testfiles/plist_files/lapl_64le
+./test/testfiles/plist_files/lcpl_32be
+./test/testfiles/plist_files/lcpl_32le
+./test/testfiles/plist_files/lcpl_64be
+./test/testfiles/plist_files/lcpl_64le
+./test/testfiles/plist_files/ocpl_32be
+./test/testfiles/plist_files/ocpl_32le
+./test/testfiles/plist_files/ocpl_64be
+./test/testfiles/plist_files/ocpl_64le
+./test/testfiles/plist_files/ocpypl_32be
+./test/testfiles/plist_files/ocpypl_32le
+./test/testfiles/plist_files/ocpypl_64be
+./test/testfiles/plist_files/ocpypl_64le
+./test/testfiles/plist_files/strcpl_32be
+./test/testfiles/plist_files/strcpl_32le
+./test/testfiles/plist_files/strcpl_64be
+./test/testfiles/plist_files/strcpl_64le
./testpar/COPYING
./testpar/Makefile.am
diff --git a/src/H5Pdapl.c b/src/H5Pdapl.c
index 7b5108a..fc009fb 100644
--- a/src/H5Pdapl.c
+++ b/src/H5Pdapl.c
@@ -50,13 +50,13 @@
/* Definitions for size of raw data chunk cache(slots) */
#define H5D_ACS_DATA_CACHE_NUM_SLOTS_SIZE sizeof(size_t)
#define H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF H5D_CHUNK_CACHE_NSLOTS_DEFAULT
-#define H5D_ACS_DATA_CACHE_NUM_SLOTS_ENC H5P__encode_size_t
-#define H5D_ACS_DATA_CACHE_NUM_SLOTS_DEC H5P__decode_size_t
+#define H5D_ACS_DATA_CACHE_NUM_SLOTS_ENC H5P__encode_chunk_cache_nslots
+#define H5D_ACS_DATA_CACHE_NUM_SLOTS_DEC H5P__decode_chunk_cache_nslots
/* Definition for size of raw data chunk cache(bytes) */
#define H5D_ACS_DATA_CACHE_BYTE_SIZE_SIZE sizeof(size_t)
#define H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF H5D_CHUNK_CACHE_NBYTES_DEFAULT
-#define H5D_ACS_DATA_CACHE_BYTE_SIZE_ENC H5P__encode_size_t
-#define H5D_ACS_DATA_CACHE_BYTE_SIZE_DEC H5P__decode_size_t
+#define H5D_ACS_DATA_CACHE_BYTE_SIZE_ENC H5P__encode_chunk_cache_nbytes
+#define H5D_ACS_DATA_CACHE_BYTE_SIZE_DEC H5P__decode_chunk_cache_nbytes
/* Definition for preemption read chunks first */
#define H5D_ACS_PREEMPT_READ_CHUNKS_SIZE sizeof(double)
#define H5D_ACS_PREEMPT_READ_CHUNKS_DEF H5D_CHUNK_CACHE_W0_DEFAULT
@@ -79,6 +79,12 @@
/* Property class callbacks */
static herr_t H5P__dacc_reg_prop(H5P_genclass_t *pclass);
+static herr_t H5P__encode_chunk_cache_nslots(const void *value, void **_pp,
+ size_t *size);
+static herr_t H5P__decode_chunk_cache_nslots(const void **_pp, void *_value);
+static herr_t H5P__encode_chunk_cache_nbytes(const void *value, void **_pp,
+ size_t *size);
+static herr_t H5P__decode_chunk_cache_nbytes(const void **_pp, void *_value);
/*********************/
@@ -285,3 +291,223 @@ done:
FUNC_LEAVE_API(ret_value)
} /* end H5Pget_chunk_cache */
+
+/*-------------------------------------------------------------------------
+ * Function: H5P__encode_chunk_cache_nslots
+ *
+ * Purpose: Encode the rdcc_nslots parameter to a serialized
+ * property list. Similar to H5P__encode_size_t except
+ * the value of 255 for the enc_size field is reserved to
+ * indicate H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF, in which
+ * nothing further is encoded.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ * Programmer: Neil Fortner
+ * Wednesday, January 23, 2013
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+H5P__encode_chunk_cache_nslots(const void *value, void **_pp, size_t *size)
+{
+ uint64_t enc_value; /* Property value to encode */
+ uint8_t **pp = (uint8_t **)_pp;
+ unsigned enc_size; /* Size of encoded property */
+
+ FUNC_ENTER_PACKAGE_NOERR
+
+ /* Sanity checks */
+ HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t));
+ HDassert(size);
+
+ /* Determine if this is the default value, in which case only encode
+ * enc_size (as 255). Also set size needed for encoding. */
+ if(*(const size_t *)value == H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF) {
+ enc_size = 0;
+ *size += 1;
+ } /* end if */
+ else {
+ enc_value = (uint64_t)*(const size_t *)value;
+ enc_size = H5VM_limit_enc_size(enc_value);
+ HDassert(enc_size > 0);
+ *size += (1 + enc_size);
+ } /* end else */
+
+ HDassert(enc_size < 256);
+
+ if(NULL != *pp) {
+ /* Encode the size */
+ *(*pp)++ = (uint8_t)enc_size;
+
+ /* Encode the value if necessary */
+ if(enc_size != 0) {
+ UINT64ENCODE_VAR(*pp, enc_value, enc_size);
+ } /* end if */
+ } /* end if */
+
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5P__encode_chunk_cache_nslots() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5P__decode_chunk_cache_nslots
+ *
+ * Purpose: Decode the rdcc_nslots parameter from a serialized
+ * property list. Similar to H5P__decode_size_t except
+ * the value of 255 for the enc_size field is reserved to
+ * indicate H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF, in which
+ * nothing further needs to be decoded.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ * Programmer: Neil Fortner
+ * Wednesday, January 23, 2013
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+H5P__decode_chunk_cache_nslots(const void **_pp, void *_value)
+{
+ size_t *value = (size_t *)_value; /* Property value to return */
+ const uint8_t **pp = (const uint8_t **)_pp;
+ uint64_t enc_value; /* Decoded property value */
+ unsigned enc_size; /* Size of encoded property */
+
+ FUNC_ENTER_PACKAGE_NOERR
+
+ /* Sanity check */
+ HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t));
+ HDassert(pp);
+ HDassert(*pp);
+ HDassert(value);
+
+ /* Decode the size */
+ enc_size = *(*pp)++;
+ HDassert(enc_size < 256);
+
+ /* Determine if enc_size indicates that this is the default value, in which
+ * case set value to H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF and return */
+ if(enc_size == 0)
+ *value = H5D_ACS_DATA_CACHE_NUM_SLOTS_DEF;
+ else {
+ /* Decode the value */
+ UINT64DECODE_VAR(*pp, enc_value, enc_size);
+ H5_CHECKED_ASSIGN(*value, uint64_t, enc_value, size_t);
+ } /* end else */
+
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5P__decode_chunk_cache_nslots() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5P__encode_chunk_cache_nbytes
+ *
+ * Purpose: Encode the rdcc_nbytes parameter to a serialized
+ * property list. Similar to H5P__encode_size_t except
+ * the value of 255 for the enc_size field is reserved to
+ * indicate H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF, in which
+ * nothing further is encoded.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ * Programmer: Neil Fortner
+ * Wednesday, January 23, 2013
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+H5P__encode_chunk_cache_nbytes(const void *value, void **_pp, size_t *size)
+{
+ uint64_t enc_value; /* Property value to encode */
+ uint8_t **pp = (uint8_t **)_pp;
+ unsigned enc_size; /* Size of encoded property */
+
+ FUNC_ENTER_PACKAGE_NOERR
+
+ /* Sanity checks */
+ HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t));
+ HDassert(size);
+
+ /* Determine if this is the default value, in which case only encode
+ * enc_size (as 255). Also set size needed for encoding. */
+ if(*(const size_t *)value == H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF) {
+ enc_size = 0;
+ *size += 1;
+ } /* end if */
+ else {
+ enc_value = (uint64_t)*(const size_t *)value;
+ enc_size = H5VM_limit_enc_size(enc_value);
+ HDassert(enc_size > 0);
+ *size += (1 + enc_size);
+ } /* end else */
+
+ HDassert(enc_size < 256);
+
+ if(NULL != *pp) {
+ /* Encode the size */
+ *(*pp)++ = (uint8_t)enc_size;
+
+ /* Encode the value if necessary */
+ if(enc_size != 0) {
+ UINT64ENCODE_VAR(*pp, enc_value, enc_size);
+ } /* end if */
+ } /* end if */
+
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5P__encode_chunk_cache_nbytes() */
+
+
+/*-------------------------------------------------------------------------
+ * Function: H5P__decode_chunk_cache_nbytes
+ *
+ * Purpose: Decode the rdcc_nbytes parameter from a serialized
+ * property list. Similar to H5P__decode_size_t except
+ * the value of 255 for the enc_size field is reserved to
+ * indicate H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF, in which
+ * nothing further needs to be decoded.
+ *
+ * Return: Success: Non-negative
+ * Failure: Negative
+ *
+ * Programmer: Neil Fortner
+ * Wednesday, January 23, 2013
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+H5P__decode_chunk_cache_nbytes(const void **_pp, void *_value)
+{
+ size_t *value = (size_t *)_value; /* Property value to return */
+ const uint8_t **pp = (const uint8_t **)_pp;
+ uint64_t enc_value; /* Decoded property value */
+ unsigned enc_size; /* Size of encoded property */
+
+ FUNC_ENTER_PACKAGE_NOERR
+
+ /* Sanity check */
+ HDcompile_assert(sizeof(size_t) <= sizeof(uint64_t));
+ HDassert(pp);
+ HDassert(*pp);
+ HDassert(value);
+
+ /* Decode the size */
+ enc_size = *(*pp)++;
+ HDassert(enc_size < 256);
+
+ /* Determine if enc_size indicates that this is the default value, in which
+ * case set value to H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF and return */
+ if(enc_size == 0)
+ *value = H5D_ACS_DATA_CACHE_BYTE_SIZE_DEF;
+ else {
+ /* Decode the value */
+ UINT64DECODE_VAR(*pp, enc_value, enc_size);
+ H5_CHECKED_ASSIGN(*value, uint64_t, enc_value, size_t);
+ } /* end else */
+
+ FUNC_LEAVE_NOAPI(SUCCEED)
+} /* end H5P__decode_chunk_cache_nbytes() */
+
diff --git a/src/H5Pdcpl.c b/src/H5Pdcpl.c
index 8c40c97..98c00f9 100644
--- a/src/H5Pdcpl.c
+++ b/src/H5Pdcpl.c
@@ -639,7 +639,7 @@ H5P__fill_value_enc(const void *value, void **_pp, size_t *size)
herr_t ret_value = SUCCEED; /* Return value */
uint8_t **pp = (uint8_t **)_pp;
uint64_t enc_value;
- unsigned enc_size;
+ unsigned enc_size = 0;
FUNC_ENTER_STATIC
diff --git a/test/Makefile.am b/test/Makefile.am
index b5ebcf3..51c8ff0 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -44,7 +44,7 @@ TEST_PROG= testhdf5 lheap ohdr stab gheap cache cache_api cache_tagging \
pool accum hyperslab istore bittests dt_arith \
dtypes dsets cmpd_dset filter_fail extend external efc objcopy links unlink \
big mtime fillval mount flush1 flush2 app_ref enum \
- set_extent ttsafe enc_dec_plist enc_dec_plist_with_endianess\
+ set_extent ttsafe enc_dec_plist enc_dec_plist_cross_platform\
getname vfd ntypes dangle dtransform reserved cross_read \
freespace mf farray earray btree2 fheap file_image unregister
diff --git a/test/enc_dec_plist_cross_platform.c b/test/enc_dec_plist_cross_platform.c
new file mode 100644
index 0000000..a5d5552
--- /dev/null
+++ b/test/enc_dec_plist_cross_platform.c
@@ -0,0 +1,235 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * Copyright by the Board of Trustees of the University of Illinois. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
+ * access to either file, you may request a copy from help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/*
+ * Serial tests for encoding/decoding plists
+ */
+
+#include "h5test.h"
+#include "H5srcdir.h"
+
+#define CONFIG_LE 0x01
+#define CONFIG_64 0x02
+#define NCONFIG 0x04
+
+static int test_plists(const char *filename_prefix);
+
+int
+main(void)
+{
+ if(VERBOSE_MED)
+ printf("Encode/Decode property list endianess\n");
+
+ /******* ENCODE/DECODE DCPLS *****/
+ TESTING("Default DCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_dcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("DCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/dcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE DAPLS *****/
+ TESTING("Default DAPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_dapl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("DAPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/dapl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE DXPLS *****/
+ TESTING("Default DXPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_dxpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("DXPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/dxpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE GCPLS *****/
+ TESTING("Default GCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_gcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("GCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/gcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE LCPLS *****/
+ TESTING("Default LCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_lcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("LCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/lcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE LAPLS *****/
+ TESTING("Default LAPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_lapl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("LAPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/lapl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE OCPLS *****/
+ TESTING("Default OCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_ocpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("OCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/ocpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE OCPYPLS *****/
+ TESTING("Default OCPYPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_ocpypl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("OCPYPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/ocpypl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE FCPLS *****/
+ TESTING("Default FCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_fcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("FCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/fcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE FAPLS *****/
+ TESTING("Default FAPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_fapl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("FAPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/fapl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE STRCPLS *****/
+ TESTING("Default STRCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_strcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("STRCPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/strcpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ /******* ENCODE/DECODE ACPLS *****/
+ TESTING("Default ACPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/def_acpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+ TESTING("ACPL Encoding/Decoding");
+ if(test_plists("testfiles/plist_files/acpl_") < 0)
+ FAIL_STACK_ERROR
+ PASSED();
+
+ return 0;
+
+error:
+ return 1;
+}
+
+static int
+test_plists(const char *filename_prefix)
+{
+ unsigned config_1, config_2;
+ int fd_1, fd_2;
+ size_t size_1 = 0, size_2 = 0;
+ void *buf_1 = NULL, *buf_2 = NULL;
+ hid_t plist_1, plist_2;
+ char filename[1024];
+ const char *testfile;
+
+ /* Iterate over all combinations of configurations */
+ for(config_1 = 0; config_1 < (NCONFIG - 1); config_1++)
+ for(config_2 = config_1 + 1; config_2 < NCONFIG; config_2++) {
+ /* Generate filename for file 1 */
+ if(HDsnprintf(filename, sizeof(filename), "%s%s%s", filename_prefix,
+ config_1 & CONFIG_64 ? "64" : "32",
+ config_1 & CONFIG_LE ? "le" : "be") < 0)
+ TEST_ERROR
+
+ /* Read file 1 */
+ testfile = H5_get_srcdir_filename(filename);
+ if((fd_1 = HDopen(testfile, O_RDONLY, 0666)) < 0)
+ TEST_ERROR
+ size_1 = (size_t)HDlseek(fd_1, (HDoff_t)0, SEEK_END);
+ HDlseek(fd_1, (HDoff_t)0, SEEK_SET);
+ buf_1 = (void *)HDmalloc(size_1);
+ if(HDread(fd_1, buf_1, size_1) < 0)
+ TEST_ERROR
+ HDclose(fd_1);
+
+ /* Generate filename for file 2 */
+ if(HDsnprintf(filename, sizeof(filename), "%s%s%s", filename_prefix,
+ config_2 & CONFIG_64 ? "64" : "32",
+ config_2 & CONFIG_LE ? "le" : "be") < 0)
+ TEST_ERROR
+
+ /* Read file 1 */
+ testfile = H5_get_srcdir_filename(filename);
+ if((fd_2 = HDopen(testfile, O_RDONLY, 0666)) < 0)
+ TEST_ERROR
+ size_2 = (size_t)HDlseek(fd_2, (HDoff_t)0, SEEK_END);
+ HDlseek(fd_2, (HDoff_t)0, SEEK_SET);
+ buf_2 = (void *)HDmalloc(size_2);
+ if(HDread(fd_2, buf_2, size_2) < 0)
+ TEST_ERROR
+ HDclose(fd_2);
+
+ /* Decode property lists */
+ if((plist_1 = H5Pdecode(buf_1)) < 0)
+ FAIL_STACK_ERROR
+ if((plist_2 = H5Pdecode(buf_2)) < 0)
+ FAIL_STACK_ERROR
+
+ /* Compare decoded property lists */
+ if(!H5Pequal(plist_1, plist_2))
+ FAIL_PUTS_ERROR("PLIST encoding/decoding comparison failed\n")
+
+ /* Close */
+ if((H5Pclose(plist_1)) < 0)
+ FAIL_STACK_ERROR
+ if((H5Pclose(plist_2)) < 0)
+ FAIL_STACK_ERROR
+
+ HDfree(buf_1);
+ HDfree(buf_2);
+ } /* end for */
+
+ return 1;
+
+error:
+ printf("***** Plist Encode/Decode tests FAILED! *****\n");
+ return -1;
+}
+
diff --git a/test/enc_dec_plist_with_endianess.c b/test/enc_dec_plist_with_endianess.c
deleted file mode 100644
index 4469604..0000000
--- a/test/enc_dec_plist_with_endianess.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Copyright by The HDF Group. *
- * Copyright by the Board of Trustees of the University of Illinois. *
- * All rights reserved. *
- * *
- * This file is part of HDF5. The full HDF5 copyright notice, including *
- * terms governing use, modification, and redistribution, is contained in *
- * the files COPYING and Copyright.html. COPYING can be found at the root *
- * of the source code distribution tree; Copyright.html can be found at the *
- * root level of an installed copy of the electronic HDF5 document set and *
- * is linked from the top-level documents page. It can also be found at *
- * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have *
- * access to either file, you may request a copy from help@hdfgroup.org. *
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-/*
- * Serial tests for encoding/decoding plists
- */
-
-#include "h5test.h"
-#include "H5srcdir.h"
-
-static int test_plists(const char *filename1, const char *filename2);
-
-int
-main(void)
-{
- if(VERBOSE_MED)
- printf("Encode/Decode property list endianess\n");
-
- /******* ENCODE/DECODE DCPLS *****/
- TESTING("DCPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/dcpl_le", "testfiles/plist_files/dcpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE DAPLS *****/
- TESTING("DAPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/dapl_le", "testfiles/plist_files/dapl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE DXPLS *****/
- TESTING("DXPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/dxpl_le", "testfiles/plist_files/dxpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE GCPLS *****/
- TESTING("GCPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/gcpl_le", "testfiles/plist_files/gcpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE LCPLS *****/
- TESTING("LCPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/lcpl_le", "testfiles/plist_files/lcpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE LAPLS *****/
- TESTING("LAPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/lapl_le", "testfiles/plist_files/lapl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE OCPLS *****/
- TESTING("OCPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/ocpl_le", "testfiles/plist_files/ocpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE OCPYPLS *****/
- TESTING("OCPYPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/ocpypl_le", "testfiles/plist_files/ocpypl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE FCPLS *****/
- TESTING("FCPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/fcpl_le", "testfiles/plist_files/fcpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE FAPLS *****/
- TESTING("FAPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/fapl_le", "testfiles/plist_files/fapl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE STRCPLS *****/
- TESTING("STRCPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/strcpl_le", "testfiles/plist_files/strcpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- /******* ENCODE/DECODE ACPLS *****/
- TESTING("ACPL Encoding/Decoding");
- if(test_plists("testfiles/plist_files/acpl_le", "testfiles/plist_files/acpl_be") < 0)
- FAIL_STACK_ERROR
- PASSED();
-
- return 0;
-
-error:
- return 1;
-}
-
-static int
-test_plists(const char *filename1, const char *filename2)
-{
- int fd_le, fd_be;
- size_t size_le = 0, size_be = 0;
- void *buf_le = NULL, *buf_be = NULL;
- hid_t plist_le, plist_be; /* dataset create prop. list */
- const char *testfile;
-
- testfile = H5_get_srcdir_filename(filename1);
- if((fd_le = HDopen(testfile, O_RDONLY, 0666)) < 0)
- TEST_ERROR
- size_le = HDlseek(fd_le, (HDoff_t)0, SEEK_END);
- HDlseek(fd_le, (HDoff_t)0, SEEK_SET);
- buf_le = (void *)HDmalloc(size_le);
- if(HDread(fd_le, buf_le, size_le) < 0)
- TEST_ERROR
- HDclose(fd_le);
-
- testfile = H5_get_srcdir_filename(filename2);
- if((fd_be = HDopen(testfile, O_RDONLY, 0666)) < 0)
- TEST_ERROR
- size_be = HDlseek(fd_be, (HDoff_t)0, SEEK_END);
- HDlseek(fd_be, (HDoff_t)0, SEEK_SET);
- buf_be = (void *)HDmalloc(size_be);
- if(HDread(fd_be, buf_be, size_be) < 0)
- TEST_ERROR
- HDclose(fd_be);
-
- if((plist_le = H5Pdecode(buf_le)) < 0)
- FAIL_STACK_ERROR
- if((plist_be = H5Pdecode(buf_be)) < 0)
- FAIL_STACK_ERROR
-
- if(!H5Pequal(plist_le, plist_be))
- FAIL_PUTS_ERROR("PLIST encoding/decoding comparison failed\n")
-
- if((H5Pclose(plist_le)) < 0)
- FAIL_STACK_ERROR
- if((H5Pclose(plist_be)) < 0)
- FAIL_STACK_ERROR
-
- HDfree(buf_le);
- HDfree(buf_be);
-
- return 1;
-
-error:
- printf("***** Plist Encode/Decode tests FAILED! *****\n");
- return -1;
-}
-
diff --git a/test/gen_plist.c b/test/gen_plist.c
index cd3748b..2746462 100644
--- a/test/gen_plist.c
+++ b/test/gen_plist.c
@@ -25,7 +25,7 @@
#include "H5private.h"
#include "hdf5.h"
-static int encode_plist(hid_t plist_id, int little_endian, const char *filename_le, const char *filename_be);
+static int encode_plist(hid_t plist_id, int little_endian, int word_length, const char *filename_prefix);
int
main(void)
@@ -54,6 +54,7 @@ main(void)
unsigned min_dense;
const char* c_to_f = "x+32";
int little_endian;
+ int word_length;
H5AC_cache_config_t my_cache_config = {
H5AC__CURR_CACHE_CONFIG_VERSION,
1 /*TRUE*/,
@@ -99,6 +100,11 @@ main(void)
little_endian = 0;
}
+ /* check word length */
+ {
+ word_length = 8 * sizeof(void *);
+ }
+
/* Explicitly initialize the library, since we are including the private header file */
H5open();
@@ -106,6 +112,9 @@ main(void)
if((dcpl1 = H5Pcreate(H5P_DATASET_CREATE)) < 0)
assert(dcpl1 > 0);
+ if((ret = encode_plist(dcpl1, little_endian, word_length, "testfiles/plist_files/def_dcpl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_chunk(dcpl1, 1, &chunk_size)) < 0)
assert(ret > 0);
@@ -131,7 +140,7 @@ main(void)
(hsize_t)(max_size[0] * sizeof(int)/4))) < 0)
assert(ret > 0);
- if((ret = encode_plist(dcpl1, little_endian, "testfiles/plist_files/dcpl_le", "testfiles/plist_files/dcpl_be")) < 0)
+ if((ret = encode_plist(dcpl1, little_endian, word_length, "testfiles/plist_files/dcpl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -143,10 +152,13 @@ main(void)
if((dapl1 = H5Pcreate(H5P_DATASET_ACCESS)) < 0)
assert(dapl1 > 0);
+ if((ret = encode_plist(dapl1, little_endian, word_length, "testfiles/plist_files/def_dapl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_chunk_cache(dapl1, nslots, nbytes, w0)) < 0)
assert(ret > 0);
- if((ret = encode_plist(dapl1, little_endian, "testfiles/plist_files/dapl_le", "testfiles/plist_files/dapl_be")) < 0)
+ if((ret = encode_plist(dapl1, little_endian, word_length, "testfiles/plist_files/dapl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -156,6 +168,10 @@ main(void)
/******* ENCODE/DECODE DXPLS *****/
if((dxpl1 = H5Pcreate(H5P_DATASET_XFER)) < 0)
assert(dxpl1 > 0);
+
+ if((ret = encode_plist(dxpl1, little_endian, word_length, "testfiles/plist_files/def_dxpl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_btree_ratios(dxpl1, 0.2f, 0.6f, 0.2f)) < 0)
assert(ret > 0);
if((ret = H5Pset_hyper_vector_size(dxpl1, 5)) < 0)
@@ -177,7 +193,7 @@ main(void)
if((ret = H5Pset_data_transform(dxpl1, c_to_f)) < 0)
assert(ret > 0);
- if((ret = encode_plist(dxpl1, little_endian, "testfiles/plist_files/dxpl_le", "testfiles/plist_files/dxpl_be")) < 0)
+ if((ret = encode_plist(dxpl1, little_endian, word_length, "testfiles/plist_files/dxpl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -189,6 +205,9 @@ main(void)
if((gcpl1 = H5Pcreate(H5P_GROUP_CREATE)) < 0)
assert(gcpl1 > 0);
+ if((ret = encode_plist(gcpl1, little_endian, word_length, "testfiles/plist_files/def_gcpl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_local_heap_size_hint(gcpl1, 256)) < 0)
assert(ret > 0);
@@ -205,7 +224,7 @@ main(void)
if((ret = H5Pset_link_creation_order(gcpl1, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED))) < 0)
assert(ret > 0);
- if((ret = encode_plist(gcpl1, little_endian, "testfiles/plist_files/gcpl_le", "testfiles/plist_files/gcpl_be")) < 0)
+ if((ret = encode_plist(gcpl1, little_endian, word_length, "testfiles/plist_files/gcpl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -216,10 +235,13 @@ main(void)
if((lcpl1 = H5Pcreate(H5P_LINK_CREATE)) < 0)
assert(lcpl1 > 0);
+ if((ret = encode_plist(lcpl1, little_endian, word_length, "testfiles/plist_files/def_lcpl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_create_intermediate_group(lcpl1, 1 /*TRUE*/)) < 0)
assert(ret > 0);
- if((ret = encode_plist(lcpl1, little_endian, "testfiles/plist_files/lcpl_le", "testfiles/plist_files/lcpl_be")) < 0)
+ if((ret = encode_plist(lcpl1, little_endian, word_length, "testfiles/plist_files/lcpl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -230,6 +252,9 @@ main(void)
if((ocpypl1 = H5Pcreate(H5P_OBJECT_COPY)) < 0)
assert(ocpypl1 > 0);
+ if((ret = encode_plist(ocpypl1, little_endian, word_length, "testfiles/plist_files/def_ocpypl_")) < 0)
+ assert(ret > 0);
+
ret = H5Pset_copy_object(ocpypl1, H5O_COPY_EXPAND_EXT_LINK_FLAG);
assert(ret >= 0);
@@ -239,7 +264,7 @@ main(void)
ret = H5Padd_merge_committed_dtype_path(ocpypl1, "bar");
assert(ret >= 0);
- if((ret = encode_plist(ocpypl1, little_endian, "testfiles/plist_files/ocpypl_le", "testfiles/plist_files/ocpypl_be")) < 0)
+ if((ret = encode_plist(ocpypl1, little_endian, word_length, "testfiles/plist_files/ocpypl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -250,6 +275,9 @@ main(void)
if((ocpl1 = H5Pcreate(H5P_OBJECT_CREATE)) < 0)
assert(ocpl1 > 0);
+ if((ret = encode_plist(ocpl1, little_endian, word_length, "testfiles/plist_files/def_ocpl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_attr_creation_order(ocpl1, (H5P_CRT_ORDER_TRACKED | H5P_CRT_ORDER_INDEXED))) < 0)
assert(ret > 0);
@@ -259,7 +287,7 @@ main(void)
if((ret = H5Pset_filter (ocpl1, H5Z_FILTER_FLETCHER32, 0, (size_t)0, NULL)) < 0)
assert(ret > 0);
- if((ret = encode_plist(ocpl1, little_endian, "testfiles/plist_files/ocpl_le", "testfiles/plist_files/ocpl_be")) < 0)
+ if((ret = encode_plist(ocpl1, little_endian, word_length, "testfiles/plist_files/ocpl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -270,6 +298,9 @@ main(void)
if((lapl1 = H5Pcreate(H5P_LINK_ACCESS)) < 0)
assert(lapl1 > 0);
+ if((ret = encode_plist(lapl1, little_endian, word_length, "testfiles/plist_files/def_lapl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_nlinks(lapl1, (size_t)134)) < 0)
assert(ret > 0);
@@ -292,7 +323,7 @@ main(void)
if((ret = H5Pclose(fapl1)) < 0)
assert(ret > 0);
- if((ret = encode_plist(lapl1, little_endian, "testfiles/plist_files/lapl_le", "testfiles/plist_files/lapl_be")) < 0)
+ if((ret = encode_plist(lapl1, little_endian, word_length, "testfiles/plist_files/lapl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -303,6 +334,9 @@ main(void)
if((fapl1 = H5Pcreate(H5P_FILE_ACCESS)) < 0)
assert(fapl1 > 0);
+ if((ret = encode_plist(fapl1, little_endian, word_length, "testfiles/plist_files/def_fapl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_family_offset(fapl1, 1024)) < 0)
assert(ret > 0);
if((ret = H5Pset_meta_block_size(fapl1, 2098452)) < 0)
@@ -330,7 +364,7 @@ main(void)
if((ret = H5Pset_core_write_tracking(fapl1, TRUE, (size_t)(1024 * 1024))) < 0)
assert(ret > 0);
- if((ret = encode_plist(fapl1, little_endian, "testfiles/plist_files/fapl_le", "testfiles/plist_files/fapl_be")) < 0)
+ if((ret = encode_plist(fapl1, little_endian, word_length, "testfiles/plist_files/fapl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -341,6 +375,9 @@ main(void)
if((fcpl1 = H5Pcreate(H5P_FILE_CREATE)) < 0)
assert(fcpl1 > 0);
+ if((ret = encode_plist(fcpl1, little_endian, word_length, "testfiles/plist_files/def_fcpl_")) < 0)
+ assert(ret > 0);
+
if((ret = H5Pset_userblock(fcpl1, 1024) < 0))
assert(ret > 0);
@@ -362,7 +399,7 @@ main(void)
if((ret = H5Pset_sizes(fcpl1, 8, 4) < 0))
assert(ret > 0);
- if((ret = encode_plist(fcpl1, little_endian, "testfiles/plist_files/fcpl_le", "testfiles/plist_files/fcpl_be")) < 0)
+ if((ret = encode_plist(fcpl1, little_endian, word_length, "testfiles/plist_files/fcpl_")) < 0)
assert(ret > 0);
/* release resource */
@@ -373,10 +410,13 @@ main(void)
strcpl1 = H5Pcreate(H5P_STRING_CREATE);
assert(strcpl1 > 0);
+ ret = encode_plist(strcpl1, little_endian, word_length, "testfiles/plist_files/def_strcpl_");
+ assert(ret > 0);
+
ret = H5Pset_char_encoding(strcpl1, H5T_CSET_UTF8);
assert(ret >= 0);
- ret = encode_plist(strcpl1, little_endian, "testfiles/plist_files/strcpl_le", "testfiles/plist_files/strcpl_be");
+ ret = encode_plist(strcpl1, little_endian, word_length, "testfiles/plist_files/strcpl_");
assert(ret > 0);
/* release resource */
@@ -387,10 +427,13 @@ main(void)
acpl1 = H5Pcreate(H5P_ATTRIBUTE_CREATE);
assert(acpl1 > 0);
+ ret = encode_plist(acpl1, little_endian, word_length, "testfiles/plist_files/def_acpl_");
+ assert(ret > 0);
+
ret = H5Pset_char_encoding(acpl1, H5T_CSET_UTF8);
assert(ret >= 0);
- ret = encode_plist(acpl1, little_endian, "testfiles/plist_files/acpl_le", "testfiles/plist_files/acpl_be");
+ ret = encode_plist(acpl1, little_endian, word_length, "testfiles/plist_files/acpl_");
assert(ret > 0);
/* release resource */
@@ -401,13 +444,18 @@ main(void)
}
static int
-encode_plist(hid_t plist_id, int little_endian, const char *filename_le, const char *filename_be)
+encode_plist(hid_t plist_id, int little_endian, int word_length, const char *filename_prefix)
{
int fd = 0; /* file descriptor */
herr_t ret = 0;
void *temp_buf = NULL;
size_t temp_size = 0;
ssize_t write_size;
+ char filename[1024];
+
+ /* Generate filename */
+ if((ret = HDsnprintf(filename, sizeof(filename), "%s%d%s", filename_prefix, word_length, little_endian ? "le" : "be")) < 0)
+ assert(ret > 0);
/* first call to encode returns only the size of the buffer needed */
if((ret = H5Pencode(plist_id, NULL, &temp_size)) < 0)
@@ -419,10 +467,7 @@ encode_plist(hid_t plist_id, int little_endian, const char *filename_le, const c
if((ret = H5Pencode(plist_id, temp_buf, &temp_size)) < 0)
assert(ret > 0);
- if(little_endian)
- fd = HDopen(filename_le, O_RDWR | O_CREAT | O_TRUNC, 0666);
- else
- fd = HDopen(filename_be, O_RDWR | O_CREAT | O_TRUNC, 0666);
+ fd = HDopen(filename, O_RDWR | O_CREAT | O_TRUNC, 0666);
assert(fd > 0);
write_size = HDwrite(fd, temp_buf, temp_size);
diff --git a/test/testfiles/plist_files/acpl_le b/test/testfiles/plist_files/acpl_32be
index ba342d9..ba342d9 100644
--- a/test/testfiles/plist_files/acpl_le
+++ b/test/testfiles/plist_files/acpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/acpl_be b/test/testfiles/plist_files/acpl_32le
index ba342d9..ba342d9 100644
--- a/test/testfiles/plist_files/acpl_be
+++ b/test/testfiles/plist_files/acpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/acpl_64be b/test/testfiles/plist_files/acpl_64be
new file mode 100644
index 0000000..ba342d9
--- /dev/null
+++ b/test/testfiles/plist_files/acpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/acpl_64le b/test/testfiles/plist_files/acpl_64le
new file mode 100644
index 0000000..ba342d9
--- /dev/null
+++ b/test/testfiles/plist_files/acpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/dapl_le b/test/testfiles/plist_files/dapl_32be
index 4df4e7f..4df4e7f 100644
--- a/test/testfiles/plist_files/dapl_le
+++ b/test/testfiles/plist_files/dapl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/dapl_be b/test/testfiles/plist_files/dapl_32le
index 4df4e7f..4df4e7f 100644
--- a/test/testfiles/plist_files/dapl_be
+++ b/test/testfiles/plist_files/dapl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/dapl_64be b/test/testfiles/plist_files/dapl_64be
new file mode 100644
index 0000000..4df4e7f
--- /dev/null
+++ b/test/testfiles/plist_files/dapl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/dapl_64le b/test/testfiles/plist_files/dapl_64le
new file mode 100644
index 0000000..4df4e7f
--- /dev/null
+++ b/test/testfiles/plist_files/dapl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/dcpl_le b/test/testfiles/plist_files/dcpl_32be
index 667c67f..667c67f 100644
--- a/test/testfiles/plist_files/dcpl_le
+++ b/test/testfiles/plist_files/dcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/dcpl_be b/test/testfiles/plist_files/dcpl_32le
index 667c67f..667c67f 100644
--- a/test/testfiles/plist_files/dcpl_be
+++ b/test/testfiles/plist_files/dcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/dcpl_64be b/test/testfiles/plist_files/dcpl_64be
new file mode 100644
index 0000000..667c67f
--- /dev/null
+++ b/test/testfiles/plist_files/dcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/dcpl_64le b/test/testfiles/plist_files/dcpl_64le
new file mode 100644
index 0000000..667c67f
--- /dev/null
+++ b/test/testfiles/plist_files/dcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_acpl_32be b/test/testfiles/plist_files/def_acpl_32be
new file mode 100644
index 0000000..efd8168
--- /dev/null
+++ b/test/testfiles/plist_files/def_acpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_acpl_32le b/test/testfiles/plist_files/def_acpl_32le
new file mode 100644
index 0000000..efd8168
--- /dev/null
+++ b/test/testfiles/plist_files/def_acpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_acpl_64be b/test/testfiles/plist_files/def_acpl_64be
new file mode 100644
index 0000000..efd8168
--- /dev/null
+++ b/test/testfiles/plist_files/def_acpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_acpl_64le b/test/testfiles/plist_files/def_acpl_64le
new file mode 100644
index 0000000..efd8168
--- /dev/null
+++ b/test/testfiles/plist_files/def_acpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_dapl_32be b/test/testfiles/plist_files/def_dapl_32be
new file mode 100644
index 0000000..c9b7ea9
--- /dev/null
+++ b/test/testfiles/plist_files/def_dapl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_dapl_32le b/test/testfiles/plist_files/def_dapl_32le
new file mode 100644
index 0000000..c9b7ea9
--- /dev/null
+++ b/test/testfiles/plist_files/def_dapl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_dapl_64be b/test/testfiles/plist_files/def_dapl_64be
new file mode 100644
index 0000000..c9b7ea9
--- /dev/null
+++ b/test/testfiles/plist_files/def_dapl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_dapl_64le b/test/testfiles/plist_files/def_dapl_64le
new file mode 100644
index 0000000..c9b7ea9
--- /dev/null
+++ b/test/testfiles/plist_files/def_dapl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_dcpl_32be b/test/testfiles/plist_files/def_dcpl_32be
new file mode 100644
index 0000000..01b233c
--- /dev/null
+++ b/test/testfiles/plist_files/def_dcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_dcpl_32le b/test/testfiles/plist_files/def_dcpl_32le
new file mode 100644
index 0000000..01b233c
--- /dev/null
+++ b/test/testfiles/plist_files/def_dcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_dcpl_64be b/test/testfiles/plist_files/def_dcpl_64be
new file mode 100644
index 0000000..01b233c
--- /dev/null
+++ b/test/testfiles/plist_files/def_dcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_dcpl_64le b/test/testfiles/plist_files/def_dcpl_64le
new file mode 100644
index 0000000..01b233c
--- /dev/null
+++ b/test/testfiles/plist_files/def_dcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_dxpl_32be b/test/testfiles/plist_files/def_dxpl_32be
new file mode 100644
index 0000000..b13f456
--- /dev/null
+++ b/test/testfiles/plist_files/def_dxpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_dxpl_32le b/test/testfiles/plist_files/def_dxpl_32le
new file mode 100644
index 0000000..b13f456
--- /dev/null
+++ b/test/testfiles/plist_files/def_dxpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_dxpl_64be b/test/testfiles/plist_files/def_dxpl_64be
new file mode 100644
index 0000000..b13f456
--- /dev/null
+++ b/test/testfiles/plist_files/def_dxpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_dxpl_64le b/test/testfiles/plist_files/def_dxpl_64le
new file mode 100644
index 0000000..b13f456
--- /dev/null
+++ b/test/testfiles/plist_files/def_dxpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_fapl_32be b/test/testfiles/plist_files/def_fapl_32be
new file mode 100644
index 0000000..6b6baee
--- /dev/null
+++ b/test/testfiles/plist_files/def_fapl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_fapl_32le b/test/testfiles/plist_files/def_fapl_32le
new file mode 100644
index 0000000..6b6baee
--- /dev/null
+++ b/test/testfiles/plist_files/def_fapl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_fapl_64be b/test/testfiles/plist_files/def_fapl_64be
new file mode 100644
index 0000000..6b6baee
--- /dev/null
+++ b/test/testfiles/plist_files/def_fapl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_fapl_64le b/test/testfiles/plist_files/def_fapl_64le
new file mode 100644
index 0000000..6b6baee
--- /dev/null
+++ b/test/testfiles/plist_files/def_fapl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_fcpl_32be b/test/testfiles/plist_files/def_fcpl_32be
new file mode 100644
index 0000000..38dec23
--- /dev/null
+++ b/test/testfiles/plist_files/def_fcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_fcpl_32le b/test/testfiles/plist_files/def_fcpl_32le
new file mode 100644
index 0000000..38dec23
--- /dev/null
+++ b/test/testfiles/plist_files/def_fcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_fcpl_64be b/test/testfiles/plist_files/def_fcpl_64be
new file mode 100644
index 0000000..38dec23
--- /dev/null
+++ b/test/testfiles/plist_files/def_fcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_fcpl_64le b/test/testfiles/plist_files/def_fcpl_64le
new file mode 100644
index 0000000..38dec23
--- /dev/null
+++ b/test/testfiles/plist_files/def_fcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_gcpl_32be b/test/testfiles/plist_files/def_gcpl_32be
new file mode 100644
index 0000000..2b5a0cc
--- /dev/null
+++ b/test/testfiles/plist_files/def_gcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_gcpl_32le b/test/testfiles/plist_files/def_gcpl_32le
new file mode 100644
index 0000000..2b5a0cc
--- /dev/null
+++ b/test/testfiles/plist_files/def_gcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_gcpl_64be b/test/testfiles/plist_files/def_gcpl_64be
new file mode 100644
index 0000000..2b5a0cc
--- /dev/null
+++ b/test/testfiles/plist_files/def_gcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_gcpl_64le b/test/testfiles/plist_files/def_gcpl_64le
new file mode 100644
index 0000000..2b5a0cc
--- /dev/null
+++ b/test/testfiles/plist_files/def_gcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_lapl_32be b/test/testfiles/plist_files/def_lapl_32be
new file mode 100644
index 0000000..9cc0e96
--- /dev/null
+++ b/test/testfiles/plist_files/def_lapl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_lapl_32le b/test/testfiles/plist_files/def_lapl_32le
new file mode 100644
index 0000000..9cc0e96
--- /dev/null
+++ b/test/testfiles/plist_files/def_lapl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_lapl_64be b/test/testfiles/plist_files/def_lapl_64be
new file mode 100644
index 0000000..9cc0e96
--- /dev/null
+++ b/test/testfiles/plist_files/def_lapl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_lapl_64le b/test/testfiles/plist_files/def_lapl_64le
new file mode 100644
index 0000000..9cc0e96
--- /dev/null
+++ b/test/testfiles/plist_files/def_lapl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_lcpl_32be b/test/testfiles/plist_files/def_lcpl_32be
new file mode 100644
index 0000000..a02d26b
--- /dev/null
+++ b/test/testfiles/plist_files/def_lcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_lcpl_32le b/test/testfiles/plist_files/def_lcpl_32le
new file mode 100644
index 0000000..a02d26b
--- /dev/null
+++ b/test/testfiles/plist_files/def_lcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_lcpl_64be b/test/testfiles/plist_files/def_lcpl_64be
new file mode 100644
index 0000000..a02d26b
--- /dev/null
+++ b/test/testfiles/plist_files/def_lcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_lcpl_64le b/test/testfiles/plist_files/def_lcpl_64le
new file mode 100644
index 0000000..a02d26b
--- /dev/null
+++ b/test/testfiles/plist_files/def_lcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpl_32be b/test/testfiles/plist_files/def_ocpl_32be
new file mode 100644
index 0000000..73b5ae0
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpl_32le b/test/testfiles/plist_files/def_ocpl_32le
new file mode 100644
index 0000000..73b5ae0
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpl_64be b/test/testfiles/plist_files/def_ocpl_64be
new file mode 100644
index 0000000..73b5ae0
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpl_64le b/test/testfiles/plist_files/def_ocpl_64le
new file mode 100644
index 0000000..73b5ae0
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpypl_32be b/test/testfiles/plist_files/def_ocpypl_32be
new file mode 100644
index 0000000..1ce6360
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpypl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpypl_32le b/test/testfiles/plist_files/def_ocpypl_32le
new file mode 100644
index 0000000..1ce6360
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpypl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpypl_64be b/test/testfiles/plist_files/def_ocpypl_64be
new file mode 100644
index 0000000..1ce6360
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpypl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_ocpypl_64le b/test/testfiles/plist_files/def_ocpypl_64le
new file mode 100644
index 0000000..1ce6360
--- /dev/null
+++ b/test/testfiles/plist_files/def_ocpypl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/def_strcpl_32be b/test/testfiles/plist_files/def_strcpl_32be
new file mode 100644
index 0000000..986c591
--- /dev/null
+++ b/test/testfiles/plist_files/def_strcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/def_strcpl_32le b/test/testfiles/plist_files/def_strcpl_32le
new file mode 100644
index 0000000..986c591
--- /dev/null
+++ b/test/testfiles/plist_files/def_strcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/def_strcpl_64be b/test/testfiles/plist_files/def_strcpl_64be
new file mode 100644
index 0000000..986c591
--- /dev/null
+++ b/test/testfiles/plist_files/def_strcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/def_strcpl_64le b/test/testfiles/plist_files/def_strcpl_64le
new file mode 100644
index 0000000..986c591
--- /dev/null
+++ b/test/testfiles/plist_files/def_strcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/dxpl_32be b/test/testfiles/plist_files/dxpl_32be
new file mode 100644
index 0000000..5ff2ea0
--- /dev/null
+++ b/test/testfiles/plist_files/dxpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/dxpl_32le b/test/testfiles/plist_files/dxpl_32le
new file mode 100644
index 0000000..5ff2ea0
--- /dev/null
+++ b/test/testfiles/plist_files/dxpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/dxpl_64be b/test/testfiles/plist_files/dxpl_64be
new file mode 100644
index 0000000..5ff2ea0
--- /dev/null
+++ b/test/testfiles/plist_files/dxpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/dxpl_64le b/test/testfiles/plist_files/dxpl_64le
new file mode 100644
index 0000000..5ff2ea0
--- /dev/null
+++ b/test/testfiles/plist_files/dxpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/dxpl_be b/test/testfiles/plist_files/dxpl_be
deleted file mode 100644
index b5194c8..0000000
--- a/test/testfiles/plist_files/dxpl_be
+++ /dev/null
Binary files differ
diff --git a/test/testfiles/plist_files/dxpl_le b/test/testfiles/plist_files/dxpl_le
deleted file mode 100644
index b5194c8..0000000
--- a/test/testfiles/plist_files/dxpl_le
+++ /dev/null
Binary files differ
diff --git a/test/testfiles/plist_files/fapl_le b/test/testfiles/plist_files/fapl_32be
index 65e2070..65e2070 100644
--- a/test/testfiles/plist_files/fapl_le
+++ b/test/testfiles/plist_files/fapl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/fapl_be b/test/testfiles/plist_files/fapl_32le
index 65e2070..65e2070 100644
--- a/test/testfiles/plist_files/fapl_be
+++ b/test/testfiles/plist_files/fapl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/fapl_64be b/test/testfiles/plist_files/fapl_64be
new file mode 100644
index 0000000..65e2070
--- /dev/null
+++ b/test/testfiles/plist_files/fapl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/fapl_64le b/test/testfiles/plist_files/fapl_64le
new file mode 100644
index 0000000..65e2070
--- /dev/null
+++ b/test/testfiles/plist_files/fapl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/fcpl_le b/test/testfiles/plist_files/fcpl_32be
index ffa5242..ffa5242 100644
--- a/test/testfiles/plist_files/fcpl_le
+++ b/test/testfiles/plist_files/fcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/fcpl_be b/test/testfiles/plist_files/fcpl_32le
index ffa5242..ffa5242 100644
--- a/test/testfiles/plist_files/fcpl_be
+++ b/test/testfiles/plist_files/fcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/fcpl_64be b/test/testfiles/plist_files/fcpl_64be
new file mode 100644
index 0000000..ffa5242
--- /dev/null
+++ b/test/testfiles/plist_files/fcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/fcpl_64le b/test/testfiles/plist_files/fcpl_64le
new file mode 100644
index 0000000..ffa5242
--- /dev/null
+++ b/test/testfiles/plist_files/fcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/gcpl_le b/test/testfiles/plist_files/gcpl_32be
index 1eec32c..1eec32c 100644
--- a/test/testfiles/plist_files/gcpl_le
+++ b/test/testfiles/plist_files/gcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/gcpl_be b/test/testfiles/plist_files/gcpl_32le
index 1eec32c..1eec32c 100644
--- a/test/testfiles/plist_files/gcpl_be
+++ b/test/testfiles/plist_files/gcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/gcpl_64be b/test/testfiles/plist_files/gcpl_64be
new file mode 100644
index 0000000..1eec32c
--- /dev/null
+++ b/test/testfiles/plist_files/gcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/gcpl_64le b/test/testfiles/plist_files/gcpl_64le
new file mode 100644
index 0000000..1eec32c
--- /dev/null
+++ b/test/testfiles/plist_files/gcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/lapl_be b/test/testfiles/plist_files/lapl_32be
index 385cfc5..e9f43e2 100644
--- a/test/testfiles/plist_files/lapl_be
+++ b/test/testfiles/plist_files/lapl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/lapl_le b/test/testfiles/plist_files/lapl_32le
index 385cfc5..e9f43e2 100644
--- a/test/testfiles/plist_files/lapl_le
+++ b/test/testfiles/plist_files/lapl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/lapl_64be b/test/testfiles/plist_files/lapl_64be
new file mode 100644
index 0000000..e9f43e2
--- /dev/null
+++ b/test/testfiles/plist_files/lapl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/lapl_64le b/test/testfiles/plist_files/lapl_64le
new file mode 100644
index 0000000..e9f43e2
--- /dev/null
+++ b/test/testfiles/plist_files/lapl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/lcpl_le b/test/testfiles/plist_files/lcpl_32be
index 4584e5c..4584e5c 100644
--- a/test/testfiles/plist_files/lcpl_le
+++ b/test/testfiles/plist_files/lcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/lcpl_be b/test/testfiles/plist_files/lcpl_32le
index 4584e5c..4584e5c 100644
--- a/test/testfiles/plist_files/lcpl_be
+++ b/test/testfiles/plist_files/lcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/lcpl_64be b/test/testfiles/plist_files/lcpl_64be
new file mode 100644
index 0000000..4584e5c
--- /dev/null
+++ b/test/testfiles/plist_files/lcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/lcpl_64le b/test/testfiles/plist_files/lcpl_64le
new file mode 100644
index 0000000..4584e5c
--- /dev/null
+++ b/test/testfiles/plist_files/lcpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/ocpl_le b/test/testfiles/plist_files/ocpl_32be
index bc46636..bc46636 100644
--- a/test/testfiles/plist_files/ocpl_le
+++ b/test/testfiles/plist_files/ocpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/ocpl_be b/test/testfiles/plist_files/ocpl_32le
index bc46636..bc46636 100644
--- a/test/testfiles/plist_files/ocpl_be
+++ b/test/testfiles/plist_files/ocpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/ocpl_64be b/test/testfiles/plist_files/ocpl_64be
new file mode 100644
index 0000000..bc46636
--- /dev/null
+++ b/test/testfiles/plist_files/ocpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/ocpl_64le b/test/testfiles/plist_files/ocpl_64le
new file mode 100644
index 0000000..bc46636
--- /dev/null
+++ b/test/testfiles/plist_files/ocpl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/ocpypl_le b/test/testfiles/plist_files/ocpypl_32be
index a0d826d..a0d826d 100644
--- a/test/testfiles/plist_files/ocpypl_le
+++ b/test/testfiles/plist_files/ocpypl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/ocpypl_be b/test/testfiles/plist_files/ocpypl_32le
index a0d826d..a0d826d 100644
--- a/test/testfiles/plist_files/ocpypl_be
+++ b/test/testfiles/plist_files/ocpypl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/ocpypl_64be b/test/testfiles/plist_files/ocpypl_64be
new file mode 100644
index 0000000..a0d826d
--- /dev/null
+++ b/test/testfiles/plist_files/ocpypl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/ocpypl_64le b/test/testfiles/plist_files/ocpypl_64le
new file mode 100644
index 0000000..a0d826d
--- /dev/null
+++ b/test/testfiles/plist_files/ocpypl_64le
Binary files differ
diff --git a/test/testfiles/plist_files/strcpl_le b/test/testfiles/plist_files/strcpl_32be
index 4190a63..4190a63 100644
--- a/test/testfiles/plist_files/strcpl_le
+++ b/test/testfiles/plist_files/strcpl_32be
Binary files differ
diff --git a/test/testfiles/plist_files/strcpl_be b/test/testfiles/plist_files/strcpl_32le
index 4190a63..4190a63 100644
--- a/test/testfiles/plist_files/strcpl_be
+++ b/test/testfiles/plist_files/strcpl_32le
Binary files differ
diff --git a/test/testfiles/plist_files/strcpl_64be b/test/testfiles/plist_files/strcpl_64be
new file mode 100644
index 0000000..4190a63
--- /dev/null
+++ b/test/testfiles/plist_files/strcpl_64be
Binary files differ
diff --git a/test/testfiles/plist_files/strcpl_64le b/test/testfiles/plist_files/strcpl_64le
new file mode 100644
index 0000000..4190a63
--- /dev/null
+++ b/test/testfiles/plist_files/strcpl_64le
Binary files differ