summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKota Tsuyuzaki <bloodeagle40234@gmail.com>2015-08-18 08:16:07 +0000
committerTushar Gohad <tushar.gohad@intel.com>2015-08-18 08:30:34 +0000
commitc9ce822825a55e3254c2f9e74a139fc89310ddc0 (patch)
treef74557392be088077f23b7af2f8568b128303555 /test
parent63829197d588c536898b6499a58639ae8029ac50 (diff)
downloadliberasurecode-c9ce822825a55e3254c2f9e74a139fc89310ddc0.tar.gz
Enforce the (k + m < 32) limit, add unit tests
Diffstat (limited to 'test')
-rw-r--r--test/liberasurecode_test.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c
index ff4641a..875ab96 100644
--- a/test/liberasurecode_test.c
+++ b/test/liberasurecode_test.c
@@ -487,6 +487,15 @@ static void test_create_backend_invalid_args()
fprintf (stderr, "Backend library not available!\n");
return;
}
+ 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);
}
@@ -905,8 +914,11 @@ static void encode_decode_test_impl(const ec_backend_id_t be_id,
if (-EBACKENDNOTAVAIL == desc) {
fprintf (stderr, "Backend library not available!\n");
return;
- }
- assert(desc > 0);
+ } else if ((args->k + args->m) > EC_MAX_FRAGMENTS) {
+ assert(-EINVALIDPARAMS == desc);
+ return;
+ } else
+ assert(desc > 0);
orig_data = create_buffer(orig_data_size, 'x');
assert(orig_data != NULL);
@@ -1316,6 +1328,21 @@ 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,
+ };
+
+ int *skip = create_skips_array(&over32_args, 1);
+ assert(skip != NULL);
+ // should return an error
+ 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)
{
@@ -1594,6 +1621,10 @@ struct testcase testcases[] = {
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_FLAT_XOR_HD, 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 Vand backend tests
{"create_and_destroy_backend",
test_create_and_destroy_backend,