diff options
author | Jenkins <jenkins@review.openstack.org> | 2016-11-09 23:08:31 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2016-11-09 23:08:32 +0000 |
commit | b96cf4b2cc98dbdcdf60c80cd4a353f5c11959c8 (patch) | |
tree | fc837d7e9e1be337073bdf3d719f66a393dab984 | |
parent | 336185ae8412376a01366bc4f2116c091b75f706 (diff) | |
parent | e8b5a64d8d68c6f379fcd8aa69d934682b9e1a25 (diff) | |
download | liberasurecode-b96cf4b2cc98dbdcdf60c80cd4a353f5c11959c8.tar.gz |
Merge "Fix liberasurecode skipping a bunch of invalid_args tests"
-rw-r--r-- | src/erasurecode.c | 3 | ||||
-rw-r--r-- | test/liberasurecode_test.c | 59 |
2 files changed, 39 insertions, 23 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c index e53c3e7..d3b3cea 100644 --- a/src/erasurecode.c +++ b/src/erasurecode.c @@ -1072,6 +1072,9 @@ int is_invalid_fragment_header(fragment_header_t *header) { uint32_t *stored_csum = NULL, csum = 0; assert (NULL != header); + if (header->libec_version == 0) + /* libec_version must be bigger than 0 */ + return 1; if (header->libec_version < _VERSION(1,2,0)) /* no metadata checksum support */ return 0; diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c index f71ba89..c94c466 100644 --- a/test/liberasurecode_test.c +++ b/test/liberasurecode_test.c @@ -475,10 +475,11 @@ static void test_backend_available(ec_backend_id_t be_id) { assert(1 == liberasurecode_backend_available(be_id)); } -static void test_backend_available_invalid_args(ec_backend_id_t be_id) +static void test_backend_available_invalid_args() { int ret = liberasurecode_backend_available(EC_BACKENDS_MAX); - assert(ret < 0); + // returns 1 if a backend is available; 0 otherwise + assert(0 == ret); } static void test_create_backend_invalid_args() @@ -640,12 +641,13 @@ static void test_decode_invalid_args() rc = liberasurecode_decode(desc, avail_frags, num_avail_frags, strlen(fake_data), 1, &decoded_data, &decoded_data_len); - // force_metadata_checks results in EINSUFFFRAGS - assert(rc == -EINSUFFFRAGS); + // no metadata headers w/ force_metadata_checks results in EBADHEADER + assert(rc == -EBADHEADER); rc = liberasurecode_decode(desc, avail_frags, num_avail_frags, strlen(fake_data), 0, &decoded_data, &decoded_data_len); + // no metadata headers w/o force_metadata_checks also results in EBADHEADER assert(rc == -EBADHEADER); // test with num_fragments < (k) @@ -810,7 +812,7 @@ static void test_get_fragment_metadata_invalid_args() { memset(frag, 0, 1024); //clears magic rc = liberasurecode_get_fragment_metadata(frag, &metadata); - assert(rc < 0); + assert(rc == -EBADHEADER); free(frag); } @@ -2008,25 +2010,36 @@ int main(int argc, char **argv) int max_backend_tests = max_tests_for_backends(); for (i = 0; i < max_backend_tests; i++) { - for (ii = 0; testcases[ii].description != NULL; ++ii) { - const char *testname = get_name_from_backend_id(testcases[ii].be_id); - fflush(stdout); - if (testcases[ii].skip) { - fprintf(stdout, "ok # SKIP %d - %s: %s (idx=%d)\n", num_cases, - testcases[ii].description, - (testname) ? testname : "", i); - continue; - } - struct ec_args *args = create_ec_args(testcases[ii].be_id, testcases[ii].ct, i); + for (ii = 0; testcases[ii].description != NULL; ++ii) { + const char *testname = get_name_from_backend_id(testcases[ii].be_id); + fflush(stdout); + if (testcases[ii].skip) { + fprintf(stdout, "ok # SKIP %d - %s: %s (idx=%d)\n", num_cases, + testcases[ii].description, + (testname) ? testname : "", i); + continue; + } + if (testcases[ii].be_id == EC_BACKENDS_MAX) { + /* EC_BACKEND_MAX basically designed for invalid args tests + * and not takes the args so call the function w/o args here */ + testcases[ii].function(); + fprintf(stdout, "ok %d - %s: %s (idx=%d)\n", num_cases, + testcases[ii].description, + (testname) ? testname : "", i); + fflush(stdout); + num_cases++; + continue; + } + struct ec_args *args = create_ec_args(testcases[ii].be_id, testcases[ii].ct, i); if (NULL != args) { - testcases[ii].function(testcases[ii].be_id, args); - fprintf(stdout, "ok %d - %s: %s (idx=%d)\n", num_cases, - testcases[ii].description, - (testname) ? testname : "", i); - fflush(stdout); - free(args); - num_cases++; - } + testcases[ii].function(testcases[ii].be_id, args); + fprintf(stdout, "ok %d - %s: %s (idx=%d)\n", num_cases, + testcases[ii].description, + (testname) ? testname : "", i); + fflush(stdout); + free(args); + num_cases++; + } } } return 0; |