diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-03-01 02:21:14 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-03-01 02:21:14 +0000 |
commit | 26e47421407634a270806ff396d99c69f3fa861c (patch) | |
tree | 1797c57c4b6af34cb0cf766d6de48f443b8ef16e /test/liberasurecode_test.c | |
parent | 4ab1336cabe0c1f5d7fc18c21b78f5d21aca5b60 (diff) | |
parent | 06e50ea86b6de729fa5dbc23ef41af87b19e636a (diff) | |
download | liberasurecode-26e47421407634a270806ff396d99c69f3fa861c.tar.gz |
Merge "Add Phazr.IO libphazr backend to liberasurecode"
Diffstat (limited to 'test/liberasurecode_test.c')
-rw-r--r-- | test/liberasurecode_test.c | 91 |
1 files changed, 86 insertions, 5 deletions
diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c index a80e324..16507ec 100644 --- a/test/liberasurecode_test.c +++ b/test/liberasurecode_test.c @@ -42,6 +42,7 @@ #define ISA_L_RS_CAUCHY_BACKEND "isa_l_rs_cauchy" #define SHSS_BACKEND "shss" #define RS_VAND_BACKEND "liberasurecode_rs_vand" +#define LIBPHAZR_BACKEND "libphazr" typedef void (*TEST_FUNC)(); @@ -222,6 +223,13 @@ struct ec_args *liberasurecode_rs_vand_test_args[] = { &liberasurecode_rs_vand_48_args, NULL }; +struct ec_args libphazr_args = { + .k = 4, + .m = 4, +}; + +struct ec_args *libphazr_test_args[] = { &libphazr_args, NULL }; + struct ec_args **all_backend_tests[] = { null_test_args, flat_xor_test_args, @@ -230,6 +238,7 @@ struct ec_args **all_backend_tests[] = { isa_l_test_args, shss_test_args, liberasurecode_rs_vand_test_args, + libphazr_test_args, NULL}; int num_backends() @@ -288,6 +297,8 @@ char * get_name_from_backend_id(ec_backend_id_t be) { return SHSS_BACKEND; case EC_BACKEND_LIBERASURECODE_RS_VAND: return RS_VAND_BACKEND; + case EC_BACKEND_LIBPHAZR: + return LIBPHAZR_BACKEND; default: return "UNKNOWN"; } @@ -325,6 +336,9 @@ struct ec_args *create_ec_args(ec_backend_id_t be, ec_checksum_type_t ct, int ba case EC_BACKEND_SHSS: backend_args_array = shss_test_args; break; + case EC_BACKEND_LIBPHAZR: + backend_args_array = libphazr_test_args; + break; default: return NULL; } @@ -991,10 +1005,8 @@ static void encode_decode_test_impl(const ec_backend_id_t be_id, int num_avail_frags = 0; char *orig_data_ptr = NULL; int remaining = 0; - ec_backend_t be = NULL; desc = liberasurecode_instance_create(be_id, args); - be = liberasurecode_backend_instance_get_by_desc(desc); if (-EBACKENDNOTAVAIL == desc) { fprintf (stderr, "Backend library not available!\n"); @@ -1029,14 +1041,14 @@ static void encode_decode_test_impl(const ec_backend_id_t be_id, 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.size == encoded_fragment_len - frag_header_size - metadata.frag_backend_metadata_size); assert(metadata.orig_data_size == orig_data_size); 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) { + // shss & libphazr doesn't keep original data on data fragments + if (be_id != EC_BACKEND_SHSS && be_id != EC_BACKEND_LIBPHAZR) { assert(memcmp(data_ptr, orig_data_ptr, cmp_size) == 0); } remaining -= cmp_size; @@ -2243,6 +2255,75 @@ struct testcase testcases[] = { test_verify_stripe_metadata_frag_idx_invalid, EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32, .skip = false}, + // libphazr backend tests + {"create_and_destroy_backend", + test_create_and_destroy_backend, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"simple_encode_libphazr", + test_simple_encode_decode, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"decode_with_missing_data_libphazr", + test_decode_with_missing_data, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"decode_with_missing_parity_libphazr", + test_decode_with_missing_parity, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"decode_with_missing_multi_data_libphazr", + test_decode_with_missing_multi_data, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"decode_with_missing_multi_parity_libphazr", + test_decode_with_missing_multi_parity, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"test_decode_with_missing_multi_data_parity_libphazr", + test_decode_with_missing_multi_data_parity, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"simple_reconstruct_libphazr", + test_simple_reconstruct, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"test_fragments_needed_libphazr", + test_fragments_needed, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"test_get_fragment_metadata_libphazr", + test_get_fragment_metadata, + EC_BACKEND_LIBPHAZR, CHKSUM_NONE, + .skip = false}, + {"test_get_fragment_metadata_libphazr_crc32", + test_get_fragment_metadata, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, + {"test_verify_stripe_metadata", + test_verify_stripe_metadata, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, + {"test_verify_stripe_metadata_libec_mismatch", + test_verify_stripe_metadata_libec_mismatch, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, + {"test_verify_stripe_metadata_magic_mismatch", + test_verify_stripe_metadata_magic_mismatch, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, + {"test_verify_stripe_metadata_be_id_mismatch", + test_verify_stripe_metadata_be_id_mismatch, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, + {"test_verify_stripe_metadata_be_ver_mismatch", + test_verify_stripe_metadata_be_ver_mismatch, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, + {"test_verify_stripe_metadata_frag_idx_invalid", + test_verify_stripe_metadata_frag_idx_invalid, + EC_BACKEND_LIBPHAZR, CHKSUM_CRC32, + .skip = false}, { NULL, NULL, 0, 0, false }, }; |