summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/liberasurecode_test.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/test/liberasurecode_test.c b/test/liberasurecode_test.c
index e60140f..714ee8a 100644
--- a/test/liberasurecode_test.c
+++ b/test/liberasurecode_test.c
@@ -475,7 +475,11 @@ static void validate_fragment_checksum(struct ec_args *args,
assert(false); //currently only have support crc32
break;
case CHKSUM_CRC32:
- computed = crc32(0, (unsigned char *) fragment_data, size);
+ if (getenv("LIBERASURECODE_WRITE_LEGACY_CRC")) {
+ computed = liberasurecode_crc32_alt(0, fragment_data, size);
+ } else {
+ computed = crc32(0, (unsigned char *) fragment_data, size);
+ }
break;
case CHKSUM_NONE:
assert(metadata->chksum_mismatch == 0);
@@ -1341,6 +1345,13 @@ static void test_get_fragment_metadata(const ec_backend_id_t be_id, struct ec_ar
free(orig_data);
}
+static void test_write_legacy_fragment_metadata(const ec_backend_id_t be_id, struct ec_args *args)
+{
+ setenv("LIBERASURECODE_WRITE_LEGACY_CRC", "1", 1);
+ test_get_fragment_metadata(be_id, args);
+ unsetenv("LIBERASURECODE_WRITE_LEGACY_CRC");
+}
+
static void test_decode_with_missing_data(const ec_backend_id_t be_id,
struct ec_args *args)
{
@@ -1855,6 +1866,7 @@ static void test_metadata_crcs_be()
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_write_legacy_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), \