diff options
author | Kevin Greenan <kmgreen2@gmail.com> | 2015-01-19 10:47:41 -0800 |
---|---|---|
committer | Kevin Greenan <kmgreen2@gmail.com> | 2015-01-19 10:47:41 -0800 |
commit | 09efa2dd8402ecf8a783e6b34bd6b8f667ee3298 (patch) | |
tree | f9b9ad49097168a0e66732ce61f0a6a161eb330c | |
parent | da335a691481db40f1c508a75411817ef1192f2c (diff) | |
download | liberasurecode-09efa2dd8402ecf8a783e6b34bd6b8f667ee3298.tar.gz |
Decreasing the verbosity of the tests and renaming one of the stripe verify
tests to a 'fragment verify' test, since it is using is_valid_fragment and
and validating fragment headers, not stripe-level.
-rw-r--r-- | include/erasurecode/erasurecode.h | 1 | ||||
-rw-r--r-- | src/erasurecode.c | 12 | ||||
-rw-r--r-- | test/libec_slap.c | 4 | ||||
-rw-r--r-- | test/liberasurecode_test.c | 21 |
4 files changed, 20 insertions, 18 deletions
diff --git a/include/erasurecode/erasurecode.h b/include/erasurecode/erasurecode.h index 691d470..d53f182 100644 --- a/include/erasurecode/erasurecode.h +++ b/include/erasurecode/erasurecode.h @@ -335,6 +335,7 @@ typedef enum { EBACKENDNOTAVAIL = 204, EBADCHKSUM = 205, EINVALIDPARAMS = 206, + EBADHEADER = 207, } LIBERASURECODE_ERROR_CODES; /* =~=*=~==~=*=~==~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~===~=*=~==~=*=~= */ diff --git a/src/erasurecode.c b/src/erasurecode.c index 9040159..b4d9872 100644 --- a/src/erasurecode.c +++ b/src/erasurecode.c @@ -1000,11 +1000,14 @@ int is_valid_fragment_metadata(int desc, fragment_metadata_t *fragment_metadata) if (!be) { log_error("Unable to verify stripe metadata: invalid backend id %d.", desc); - return 1; + return -EINVALIDPARAMS; } if (liberasurecode_verify_fragment_metadata(be, fragment_metadata) != 0) { - return 1; + return -EBADHEADER; + } + if (!be->common.ops->is_compatible_with(fragment_metadata->backend_version)) { + return -EBADHEADER; } if (fragment_metadata->chksum_mismatch == 1) { return -EBADCHKSUM; @@ -1028,8 +1031,9 @@ int liberasurecode_verify_stripe_metadata(int desc, for (i = 0; i < num_fragments; i++) { fragment_metadata_t *fragment_metadata = (fragment_metadata_t*)fragments[i]; - if (is_valid_fragment_metadata(desc, fragment_metadata) == -EBADCHKSUM) { - return -EBADCHKSUM; + int ret = is_valid_fragment_metadata(desc, fragment_metadata); + if (ret < 0) { + return ret; } } diff --git a/test/libec_slap.c b/test/libec_slap.c index fb9e69a..f3166fe 100644 --- a/test/libec_slap.c +++ b/test/libec_slap.c @@ -314,9 +314,7 @@ static int test_hd_code(struct ec_args *args, free(out_data); assert(rc == 0); - fprintf(stderr," Decode Scenario - "); - print_mask(mask); - fprintf(stderr,": OK\n"); + //print_mask(mask); } for (j = 0; j < args->k; j++) { free(encoded_data[j]); diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c index 61492d1..49b70c6 100644 --- a/test/liberasurecode_test.c +++ b/test/liberasurecode_test.c @@ -470,19 +470,19 @@ static void test_verify_stripe_metadata_invalid_args() { char **frags = malloc(sizeof(char *) * num_frags); rc = liberasurecode_verify_stripe_metadata(desc, frags, num_frags); - assert(rc == 1); + assert(rc == -EINVALIDPARAMS); desc = liberasurecode_instance_create(EC_BACKEND_NULL, &null_args); assert(desc > 0); rc = liberasurecode_verify_stripe_metadata(desc, NULL, num_frags); - assert(rc == 1); + assert(rc == -EINVALIDPARAMS); rc = liberasurecode_verify_stripe_metadata(desc, frags, -1); - assert(rc == 1); + assert(rc == -EINVALIDPARAMS); rc = liberasurecode_verify_stripe_metadata(desc, frags, 0); - assert(rc == 1); + assert(rc == -EINVALIDPARAMS); } @@ -952,7 +952,7 @@ static void test_verify_stripe_metadata(const ec_backend_id_t be_id, free(skip); } -static void verify_stripe_metadata_mismatch_impl(const ec_backend_id_t be_id, struct ec_args *args, +static void verify_fragment_metadata_mismatch_impl(const ec_backend_id_t be_id, struct ec_args *args, fragment_mismatch_scenario_t scenario) { int orig_data_size = 1024; @@ -1002,8 +1002,7 @@ static void verify_stripe_metadata_mismatch_impl(const ec_backend_id_t be_id, st default: assert(false); } - rc = liberasurecode_verify_stripe_metadata(desc, avail_frags, - num_avail_frags); + rc = is_valid_fragment(desc, avail_frags[i]); assert(rc == 1); //heal fragment switch (scenario) { @@ -1030,25 +1029,25 @@ static void verify_stripe_metadata_mismatch_impl(const ec_backend_id_t be_id, st static void test_verify_stripe_metadata_libec_mismatch( const ec_backend_id_t be_id, struct ec_args *args) { - verify_stripe_metadata_mismatch_impl(be_id, args, LIBEC_VERSION_MISMATCH); + verify_fragment_metadata_mismatch_impl(be_id, args, LIBEC_VERSION_MISMATCH); } static void test_verify_stripe_metadata_magic_mismatch( const ec_backend_id_t be_id, struct ec_args *args) { - verify_stripe_metadata_mismatch_impl(be_id, args, MAGIC_MISMATCH); + verify_fragment_metadata_mismatch_impl(be_id, args, MAGIC_MISMATCH); } static void test_verify_stripe_metadata_be_id_mismatch( const ec_backend_id_t be_id, struct ec_args *args) { - verify_stripe_metadata_mismatch_impl(be_id, args, BACKEND_ID_MISMATCH); + verify_fragment_metadata_mismatch_impl(be_id, args, BACKEND_ID_MISMATCH); } static void test_verify_stripe_metadata_be_ver_mismatch( const ec_backend_id_t be_id, struct ec_args *args) { - verify_stripe_metadata_mismatch_impl(be_id, args, BACKEND_VERSION_MISMATCH); + verify_fragment_metadata_mismatch_impl(be_id, args, BACKEND_VERSION_MISMATCH); } |