summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTushar Gohad <tusharsg@gmail.com>2016-03-03 03:53:13 +0000
committerTushar Gohad <tusharsg@gmail.com>2016-03-10 07:33:16 +0000
commita6a8d2018d50068f1177ba9f826518b003dc5917 (patch)
tree884b3e9b6363e4e7d9da6fc9c963b35318b983a3 /test
parentfd88e703372eed2ecda8f10fe539ee28b2794e0f (diff)
downloadliberasurecode-a6a8d2018d50068f1177ba9f826518b003dc5917.tar.gz
Fragment metadata checksumming supportfrag_metadata_checksum
Diffstat (limited to 'test')
-rw-r--r--test/liberasurecode_test.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c
index 8ee84c4..f71ba89 100644
--- a/test/liberasurecode_test.c
+++ b/test/liberasurecode_test.c
@@ -940,17 +940,29 @@ static void encode_decode_test_impl(const ec_backend_id_t be_id,
assert(0 == rc);
orig_data_ptr = orig_data;
remaining = orig_data_size;
- for (i = 0; i < args->k; i++)
+ for (i = 0; i < args->k + args->m; i++)
{
- char *frag = encoded_data[i];
+ int cmp_size = -1;
+ char *data_ptr = NULL;
+ char *frag = NULL;
+ uint32_t *mcksum = NULL;
+
+ frag = (i < args->k) ? encoded_data[i] : encoded_parity[i - args->k];
+ assert(frag != NULL);
fragment_header_t *header = (fragment_header_t*)frag;
assert(header != NULL);
+ mcksum = get_metadata_chksum(frag);
+ assert(mcksum != NULL);
+ assert(header->metadata_chksum == *mcksum);
+
fragment_metadata_t metadata = header->meta;
assert(metadata.idx == i);
assert(metadata.size == encoded_fragment_len - frag_header_size - be->common.backend_metadata_size);
assert(metadata.orig_data_size == orig_data_size);
- char *data_ptr = frag + frag_header_size;
- int cmp_size = remaining >= metadata.size ? metadata.size : remaining;
+ assert(metadata.backend_id == be_id);
+ assert(metadata.chksum_mismatch == 0);
+ data_ptr = frag + frag_header_size;
+ cmp_size = remaining >= metadata.size ? metadata.size : remaining;
// shss doesn't keep original data on data fragments
if (be_id != EC_BACKEND_SHSS) {
assert(memcmp(data_ptr, orig_data_ptr, cmp_size) == 0);