Use preprocessor to build test suites

Otherwise, we're left with error-prone copy & pasting, which means we'll
constantly be cleaning it up.

Change-Id: I57e2cbef2c9221cffccf2e73b6af9bd003c04968
Related-Change: Ibd72ba4ae609ad77e8808aa1594b0adb62e34ef0
Related-Change: I9ee9ec3d8f86a10c4c7b5d6425a530b9c44d1156
This commit is contained in:
Tim Burke 2017-02-25 22:56:32 +00:00
parent 6124e432a5
commit f4a16fe929
1 changed files with 55 additions and 637 deletions

View File

@ -1551,7 +1551,7 @@ static void test_simple_encode_decode(const ec_backend_id_t be_id,
free(skip);
}
static void test_simple_encode_decode_over32()
static void test_jerasure_rs_vand_simple_encode_decode_over32()
{
struct ec_args over32_args = {
.k = 30,
@ -1778,652 +1778,70 @@ static void test_metadata_crcs()
//static void test_verify_str
/* An individual test, useful to ensure the reported name
reflects the function name */
#define TEST(test, backend, checksum) {#test, test, backend, checksum, .skip = false}
/* Block of common tests for the "real" backends */
#define TEST_SUITE(backend) \
TEST(test_create_and_destroy_backend, backend, CHKSUM_NONE), \
TEST(test_simple_encode_decode, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_data, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_parity, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_multi_data, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_multi_parity, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_multi_data_parity, backend, CHKSUM_NONE), \
TEST(test_simple_reconstruct, backend, CHKSUM_NONE), \
TEST(test_fragments_needed, backend, CHKSUM_NONE), \
TEST(test_get_fragment_metadata, backend, CHKSUM_NONE), \
TEST(test_get_fragment_metadata, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_libec_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_magic_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_be_id_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_be_ver_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_frag_idx_invalid, backend, CHKSUM_CRC32)
struct testcase testcases[] = {
{"test_backend_available_invalid_args",
test_backend_available_invalid_args,
EC_BACKENDS_MAX, 0,
.skip = false},
{"test_backend_available",
test_backend_available,
EC_BACKEND_NULL, 0,
.skip = false},
{"test_create_backend_invalid_args",
test_create_backend_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_destroy_backend_invalid_args",
test_destroy_backend_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_encode_invalid_args",
test_encode_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_encode_cleanup_invalid_args",
test_encode_cleanup_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_decode_invalid_args",
test_decode_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_decode_cleanup_invalid_args",
test_decode_cleanup_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_reconstruct_fragment_invalid_args",
test_reconstruct_fragment_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_get_fragment_metadata_invalid_args",
test_get_fragment_metadata_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_verify_stripe_metadata_invalid_args",
test_verify_stripe_metadata_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_fragments_needed_invalid_args",
test_fragments_needed_invalid_args,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_get_fragment_partition",
test_get_fragment_partition,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_liberasurecode_get_version",
test_liberasurecode_get_version,
EC_BACKENDS_MAX, CHKSUM_TYPES_MAX,
.skip = false},
{"test_metadata_crcs",
test_metadata_crcs,
EC_BACKENDS_MAX, 0,
.skip = false},
TEST(test_backend_available_invalid_args, EC_BACKENDS_MAX, 0),
TEST(test_backend_available, EC_BACKEND_NULL, 0),
TEST(test_create_backend_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_destroy_backend_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_encode_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_encode_cleanup_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_decode_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_decode_cleanup_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_reconstruct_fragment_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_get_fragment_metadata_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_verify_stripe_metadata_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_fragments_needed_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_get_fragment_partition, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_liberasurecode_get_version, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_metadata_crcs, EC_BACKENDS_MAX, 0),
// NULL backend test
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_NULL, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_null",
test_simple_encode_decode,
EC_BACKEND_NULL, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_NULL, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_NULL, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_NULL, CHKSUM_NONE,
.skip = false},
TEST(test_create_and_destroy_backend, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_simple_encode_decode, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_get_fragment_metadata, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_decode_with_missing_parity, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_decode_with_missing_multi_parity, EC_BACKEND_NULL, CHKSUM_NONE),
// Flat XOR backend tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_FLAT_XOR_HD, CHKSUM_CRC32,
.skip = false},
TEST_SUITE(EC_BACKEND_FLAT_XOR_HD),
// Jerasure RS Vand backend tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_JERASURE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_simple_encode_decode_over32_jerasure_rs_vand",
test_simple_encode_decode_over32,
EC_BACKENDS_MAX, 0, // NB: this is hardcoded to use jerasure RS vand
.skip = false},
TEST_SUITE(EC_BACKEND_JERASURE_RS_VAND),
TEST(test_jerasure_rs_vand_simple_encode_decode_over32, EC_BACKENDS_MAX, 0),
// Jerasure RS Cauchy backend tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_JERASURE_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_jerasure_rs_cauchy_init_failure",
test_jerasure_rs_cauchy_init_failure,
EC_BACKENDS_MAX, 0,
.skip = false},
TEST_SUITE(EC_BACKEND_JERASURE_RS_CAUCHY),
TEST(test_jerasure_rs_cauchy_init_failure, EC_BACKENDS_MAX, 0),
// ISA-L rs_vand tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_ISA_L_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_isa_l_rs_vand_decode_reconstruct_specific_error_case",
test_isa_l_rs_vand_decode_reconstruct_specific_error_case,
EC_BACKENDS_MAX, 0, // note this test is using ISA-L in hard coded
.skip = false},
TEST_SUITE(EC_BACKEND_ISA_L_RS_VAND),
TEST(test_isa_l_rs_vand_decode_reconstruct_specific_error_case, EC_BACKENDS_MAX, 0),
// ISA-L rs cauchy tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_ISA_L_RS_CAUCHY, CHKSUM_CRC32,
.skip = false},
TEST_SUITE(EC_BACKEND_ISA_L_RS_CAUCHY),
// shss tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_SHSS, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_SHSS, CHKSUM_CRC32,
.skip = false},
TEST_SUITE(EC_BACKEND_SHSS),
// Internal RS Vand backend tests
{"test_create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_simple_encode_decode",
test_simple_encode_decode,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_data",
test_decode_with_missing_data,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_parity",
test_decode_with_missing_parity,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data",
test_decode_with_missing_multi_data,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_parity",
test_decode_with_missing_multi_parity,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_simple_reconstruct",
test_simple_reconstruct,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed",
test_fragments_needed,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata",
test_get_fragment_metadata,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_crc32",
test_get_fragment_metadata,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_LIBERASURECODE_RS_VAND, CHKSUM_CRC32,
.skip = false},
TEST_SUITE(EC_BACKEND_LIBERASURECODE_RS_VAND),
// libphazr backend tests
{"create_and_destroy_backend",
test_create_and_destroy_backend,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"simple_encode_libphazr",
test_simple_encode_decode,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"decode_with_missing_data_libphazr",
test_decode_with_missing_data,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"decode_with_missing_parity_libphazr",
test_decode_with_missing_parity,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"decode_with_missing_multi_data_libphazr",
test_decode_with_missing_multi_data,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"decode_with_missing_multi_parity_libphazr",
test_decode_with_missing_multi_parity,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"test_decode_with_missing_multi_data_parity_libphazr",
test_decode_with_missing_multi_data_parity,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"simple_reconstruct_libphazr",
test_simple_reconstruct,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"test_fragments_needed_libphazr",
test_fragments_needed,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_libphazr",
test_get_fragment_metadata,
EC_BACKEND_LIBPHAZR, CHKSUM_NONE,
.skip = false},
{"test_get_fragment_metadata_libphazr_crc32",
test_get_fragment_metadata,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata",
test_verify_stripe_metadata,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_libec_mismatch",
test_verify_stripe_metadata_libec_mismatch,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_magic_mismatch",
test_verify_stripe_metadata_magic_mismatch,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_id_mismatch",
test_verify_stripe_metadata_be_id_mismatch,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_be_ver_mismatch",
test_verify_stripe_metadata_be_ver_mismatch,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
{"test_verify_stripe_metadata_frag_idx_invalid",
test_verify_stripe_metadata_frag_idx_invalid,
EC_BACKEND_LIBPHAZR, CHKSUM_CRC32,
.skip = false},
TEST_SUITE(EC_BACKEND_LIBPHAZR),
{ NULL, NULL, 0, 0, false },
};