summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-11-09 23:08:31 +0000
committerGerrit Code Review <review@openstack.org>2016-11-09 23:08:32 +0000
commitb96cf4b2cc98dbdcdf60c80cd4a353f5c11959c8 (patch)
treefc837d7e9e1be337073bdf3d719f66a393dab984
parent336185ae8412376a01366bc4f2116c091b75f706 (diff)
parente8b5a64d8d68c6f379fcd8aa69d934682b9e1a25 (diff)
downloadliberasurecode-b96cf4b2cc98dbdcdf60c80cd4a353f5c11959c8.tar.gz
Merge "Fix liberasurecode skipping a bunch of invalid_args tests"
-rw-r--r--src/erasurecode.c3
-rw-r--r--test/liberasurecode_test.c59
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;