summaryrefslogtreecommitdiff
path: root/test/liberasurecode_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/liberasurecode_test.c')
-rw-r--r--test/liberasurecode_test.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c
index ff4641a..77d4b73 100644
--- a/test/liberasurecode_test.c
+++ b/test/liberasurecode_test.c
@@ -488,6 +488,18 @@ static void test_create_backend_invalid_args()
return;
}
assert(desc < 0);
+
+ struct ec_args invalid_args = {
+ .k = 100,
+ .m = 100,
+ };
+
+ desc = liberasurecode_instance_create(EC_BACKEND_NULL, &invalid_args);
+ if (-EBACKENDNOTAVAIL == desc) {
+ fprintf (stderr, "Backend library not available!\n");
+ return;
+ }
+ assert(desc < 0);
}
static void test_destroy_backend_invalid_args()
@@ -1316,6 +1328,22 @@ static void test_simple_encode_decode(const ec_backend_id_t be_id,
free(skip);
}
+static void test_simple_encode_decode_over32()
+{
+ struct ec_args over32_args = {
+ .k = 30,
+ .m = 20,
+ };
+
+ // k + m > 32 condition must not free any other fragments
+ // memory except missing fragment 1
+ int *skip = create_skips_array(&over32_args, 1);
+ assert(skip != NULL);
+ encode_decode_test_impl(EC_BACKEND_JERASURE_RS_VAND,
+ &over32_args, skip);
+ free(skip);
+}
+
static void test_simple_reconstruct(const ec_backend_id_t be_id,
struct ec_args *args)
{
@@ -1655,6 +1683,10 @@ struct testcase testcases[] = {
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
+ {"test_simple_encode_decode_over32",
+ test_simple_encode_decode_over32,
+ EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
+ .skip = false},
// Jerasure RS Cauchy backend tests
{"create_and_destroy_backend",
test_create_and_destroy_backend,