Add compression tests.

This commit is contained in:
2021-10-21 05:02:52 +01:00
parent 8ca178f2e2
commit 08d0d5862d
9 changed files with 311 additions and 1 deletions

View File

@@ -78,3 +78,55 @@ TEST_F(bzip2Fixture, bzip2)
EXPECT_EQ(crc, EXPECTED_CRC32);
}
TEST_F(bzip2Fixture, bzip2Compress)
{
size_t original_len = 8388608;
uint cmp_len = original_len;
uint decmp_len = original_len;
char path[PATH_MAX];
char filename[PATH_MAX * 2];
FILE* file;
uint32_t original_crc, decmp_crc;
int bz_err;
const uint8_t* original;
uint8_t* cmp_buffer;
uint8_t* decmp_buffer;
// Allocate buffers
original = (const uint8_t*)malloc(original_len);
cmp_buffer = (uint8_t*)malloc(cmp_len);
decmp_buffer = (uint8_t*)malloc(decmp_len);
// Read the file
getcwd(path, PATH_MAX);
snprintf(filename, PATH_MAX, "%s/data/data.bin", path);
file = fopen(filename, "rb");
fread((void*)original, 1, original_len, file);
fclose(file);
// Calculate the CRC
original_crc = crc32_data(original, original_len);
// Compress
bz_err = BZ2_bzBuffToBuffCompress((char*)(cmp_buffer), &cmp_len, (char*)original, original_len, 9, 0, 0);
EXPECT_EQ(bz_err, BZ_OK);
// Decompress
bz_err = BZ2_bzBuffToBuffDecompress((char*)decmp_buffer, &decmp_len, (char*)cmp_buffer, cmp_len, 0, 0);
EXPECT_EQ(bz_err, BZ_OK);
EXPECT_EQ(decmp_len, original_len);
decmp_crc = crc32_data(decmp_buffer, decmp_len);
// Free buffers
free((void*)original);
free(cmp_buffer);
free(decmp_buffer);
EXPECT_EQ(decmp_crc, original_crc);
}