From f4a16fe92977cdea9cb7e61fa65804e9f3bc62dc Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Sat, 25 Feb 2017 22:56:32 +0000 Subject: [PATCH] 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 --- test/liberasurecode_test.c | 692 +++---------------------------------- 1 file changed, 55 insertions(+), 637 deletions(-) diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c index 77c8419..dbb24ab 100644 --- a/test/liberasurecode_test.c +++ b/test/liberasurecode_test.c @@ -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 }, };