test: Add jerasure_rs_vand basic test

.. can't test with xor at the moment

Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
This commit is contained in:
Tushar Gohad 2014-07-18 02:21:05 -07:00
parent 5383c54099
commit ca04a8625d
1 changed files with 60 additions and 15 deletions

View File

@ -30,7 +30,7 @@
#include <stdbool.h>
#include "erasurecode.h"
typedef void (*TEST_FUNC)(void);
typedef int (*TEST_FUNC)(void);
struct testcase {
const char *description;
TEST_FUNC function;
@ -41,49 +41,94 @@ struct testcase {
char *create_buffer(int size)
{
char *buf = malloc(size);
memset(buf, 2, size);
memset(buf, 'x', size);
return buf;
}
static void test_liberasurecode_supported_backends(void)
static int test_liberasurecode_supported_backends(void)
{
//EDL skipping for now since this function is not implemented.
}
static void test_create_and_destroy_backend(void)
static int test_create_and_destroy_backend(void)
{
struct ec_args args = {
.k = 10,
.m = 4,
.priv_args1.flat_xor_hd_args.hd = 3,
};
int desc = liberasurecode_instance_create("flat_xor_hd", &args);
int desc = liberasurecode_instance_create("jerasure_rs_vand", &args);
assert(desc >= 0);
assert(liberasurecode_instance_destroy(desc) == 0);
}
static void test_simple_encode(void)
static int test_simple_encode_flat_xor_hd(void)
{
struct ec_args args = {
.k = 10,
.m = 4,
.priv_args1.flat_xor_hd_args.hd = 3,
};
int desc = liberasurecode_instance_create("flat_xor_hd", &args);
char *encoded_data;
char *parity;
char *data = create_buffer(4096);
int rc = liberasurecode_encode(desc, data, 4096, &encoded_data, &parity);
int rc = 0;
int desc = -1;
int size = 1024 * 1024;
char **encoded_data = NULL, **parity = NULL;
char *data = NULL;
data = create_buffer(size);
if (NULL == data) {
rc = -ENOMEM;
goto out;
}
desc = liberasurecode_instance_create("flat_xor_hd", &args);
rc = liberasurecode_encode(desc, data, size, encoded_data, parity);
assert(rc == 0);
assert(liberasurecode_instance_destroy(desc) == 0);
free(data);
out:
return rc;
}
static int test_simple_encode_jerasure_rs_vand(void)
{
struct ec_args args = {
.k = 10,
.m = 4,
};
int rc = 0;
int desc = -1;
int size = 1024 * 1024;
char **encoded_data = NULL, **parity = NULL;
char *data = NULL;
data = create_buffer(size);
if (NULL == data) {
rc = -ENOMEM;
goto out;
}
desc = liberasurecode_instance_create("jerasure_rs_vand", &args);
rc = liberasurecode_encode(desc, data, size, encoded_data, parity);
assert(rc == 0);
assert(liberasurecode_instance_destroy(desc) == 0);
free(data);
out:
return rc;
}
struct testcase testcases[] = {
{"liberasurecode_supported_backends",
test_liberasurecode_supported_backends, true},
{"create_and_destroy_backend", test_create_and_destroy_backend, false},
{"simple_encode", test_simple_encode, true}, //EDL: Seg faulting at the moment so skip
test_liberasurecode_supported_backends, true},
{"create_and_destroy_backend",
test_create_and_destroy_backend, false},
{"simple_encode_flat_xor_hd",
test_simple_encode_flat_xor_hd, true},
{"simple_encode_jerasure_rs_vand",
test_simple_encode_jerasure_rs_vand, false},
{ NULL, NULL, false }
};