summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKota Tsuyuzaki <bloodeagle40234@gmail.com>2015-03-06 14:58:06 +0900
committerKota Tsuyuzaki <bloodeagle40234@gmail.com>2015-03-06 14:58:06 +0900
commit1667acb87c2cc925e2414cc1b51ff7a5c6e77585 (patch)
tree55bd1ad87beb715fedfee4ce796b031cb2e292b0 /test
parentde94bbad63e6c557c5fdb6d72b52966fea1062c5 (diff)
downloadliberasurecode-1667acb87c2cc925e2414cc1b51ff7a5c6e77585.tar.gz
Apply EINSUFFFRAGS to reconstruct
Diffstat (limited to 'test')
-rw-r--r--test/liberasurecode_test.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c
index fe3c006..33ba5a5 100644
--- a/test/liberasurecode_test.c
+++ b/test/liberasurecode_test.c
@@ -429,6 +429,10 @@ static void test_reconstruct_fragment_invalid_args()
int frag_len = 10;
char **avail_frags = malloc(sizeof(char *) * 2);
char *out_frag = malloc(frag_len);
+ int orig_data_size = 1024 * 1024;
+ char *orig_data = create_buffer(orig_data_size, 'x');
+ char **encoded_data = NULL, **encoded_parity = NULL;
+ uint64_t encoded_fragment_len = 0;
assert(avail_frags);
assert(out_frag);
@@ -444,6 +448,23 @@ static void test_reconstruct_fragment_invalid_args()
rc = liberasurecode_reconstruct_fragment(desc, avail_frags, 1, frag_len, 1, NULL);
assert(rc < 0);
+
+ free(out_frag);
+ free(avail_frags);
+
+ // Test for EINSUFFFRAGS
+ // we have to call encode to get fragments which have valid header.
+ rc = liberasurecode_encode(desc, orig_data, orig_data_size,
+ &encoded_data, &encoded_parity, &encoded_fragment_len);
+ assert(rc == 0);
+
+ out_frag = malloc(encoded_fragment_len);
+
+ assert(out_frag != NULL);
+ rc = liberasurecode_reconstruct_fragment(desc, avail_frags, 1, encoded_fragment_len, 1, out_frag);
+
+ assert(rc == -EINSUFFFRAGS);
+
free(out_frag);
free(avail_frags);
}