Fix compression related tests
Tests for chunked backup drivers are using a randomly generated file to test the compression, which means that in most cases due to the randomization the generated file is bigger than the original one, so we end up doing a non compressed backup, which defeats the purpose of the tests. More so when you want to test the decompression, since the backup won't be compressed and there won't be any decompression. To fix this we generate, for those cases, a simple file that can always be effectively compressed. Change-Id: Idbfeeb2604bc84dc0a17c633b782000d94665bbe
This commit is contained in:
@@ -143,6 +143,12 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
backup.create()
|
||||
return backup
|
||||
|
||||
def _write_effective_compression_file(self, data_size):
|
||||
"""Ensure file contents can be effectively compressed."""
|
||||
self.volume_file.seek(0)
|
||||
self.volume_file.write(bytes([65] * data_size))
|
||||
self.volume_file.seek(0)
|
||||
|
||||
def setUp(self):
|
||||
super(GoogleBackupDriverTestCase, self).setUp()
|
||||
self.flags(backup_gcs_bucket='gcscinderbucket')
|
||||
@@ -154,8 +160,10 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
self.addCleanup(self.volume_file.close)
|
||||
# Remove tempdir.
|
||||
self.addCleanup(shutil.rmtree, self.temp_dir)
|
||||
self.size_volume_file = 0
|
||||
for _i in range(0, 64):
|
||||
self.volume_file.write(os.urandom(units.Ki))
|
||||
self.size_volume_file += 1024
|
||||
|
||||
@gcs_client
|
||||
def test_backup(self):
|
||||
@@ -183,7 +191,7 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
backup = self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='bz2')
|
||||
service = google_dr.GoogleBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(self.size_volume_file)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
@gcs_client
|
||||
@@ -192,7 +200,7 @@ class GoogleBackupDriverTestCase(test.TestCase):
|
||||
backup = self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='zlib')
|
||||
service = google_dr.GoogleBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(self.size_volume_file)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
@gcs_client
|
||||
|
||||
@@ -143,6 +143,12 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
}
|
||||
return db.backup_create(self.ctxt, backup)['id']
|
||||
|
||||
def _write_effective_compression_file(self, data_size):
|
||||
"""Ensure file contents can be effectively compressed."""
|
||||
self.volume_file.seek(0)
|
||||
self.volume_file.write(bytes([65] * data_size))
|
||||
self.volume_file.seek(0)
|
||||
|
||||
def setUp(self):
|
||||
super(BackupNFSSwiftBasedTestCase, self).setUp()
|
||||
|
||||
@@ -162,8 +168,10 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
return_value=mock_remotefsclient)
|
||||
# Remove tempdir.
|
||||
self.addCleanup(shutil.rmtree, self.temp_dir)
|
||||
self.size_volume_file = 0
|
||||
for _i in range(0, 32):
|
||||
self.volume_file.write(os.urandom(1024))
|
||||
self.size_volume_file += 1024
|
||||
|
||||
def test_backup_uncompressed(self):
|
||||
volume_id = fake.VOLUME_ID
|
||||
@@ -179,7 +187,7 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='bz2')
|
||||
service = nfs.NFSBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(self.size_volume_file)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
@@ -188,7 +196,7 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='zlib')
|
||||
service = nfs.NFSBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(self.size_volume_file)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
@@ -569,10 +577,11 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='bz2')
|
||||
self.flags(backup_file_size=(1024 * 3))
|
||||
file_size = 1024 * 3
|
||||
self.flags(backup_file_size=file_size)
|
||||
self.flags(backup_sha_block_size_bytes=1024)
|
||||
service = nfs.NFSBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(file_size)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
@@ -587,10 +596,11 @@ class BackupNFSSwiftBasedTestCase(test.TestCase):
|
||||
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='zlib')
|
||||
self.flags(backup_file_size=(1024 * 3))
|
||||
file_size = 1024 * 3
|
||||
self.flags(backup_file_size=file_size)
|
||||
self.flags(backup_sha_block_size_bytes=1024)
|
||||
service = nfs.NFSBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(file_size)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
|
||||
@@ -91,6 +91,12 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
}
|
||||
return db.backup_create(self.ctxt, backup)['id']
|
||||
|
||||
def _write_effective_compression_file(self, data_size):
|
||||
"""Ensure file contents can be effectively compressed."""
|
||||
self.volume_file.seek(0)
|
||||
self.volume_file.write(bytes([65] * data_size))
|
||||
self.volume_file.seek(0)
|
||||
|
||||
def setUp(self):
|
||||
super(BackupSwiftTestCase, self).setUp()
|
||||
service_catalog = [{u'type': u'object-store', u'name': u'swift',
|
||||
@@ -111,8 +117,10 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
self.addCleanup(self.volume_file.close)
|
||||
# Remove tempdir.
|
||||
self.addCleanup(shutil.rmtree, self.temp_dir)
|
||||
self.size_volume_file = 0
|
||||
for _i in range(0, 64):
|
||||
self.volume_file.write(os.urandom(1024))
|
||||
self.size_volume_file += 1024
|
||||
|
||||
notify_patcher = mock.patch(
|
||||
'cinder.volume.utils.notify_about_backup_usage')
|
||||
@@ -303,7 +311,7 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='bz2')
|
||||
service = swift_dr.SwiftBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(self.size_volume_file)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
@@ -312,7 +320,7 @@ class BackupSwiftTestCase(test.TestCase):
|
||||
self._create_backup_db_entry(volume_id=volume_id)
|
||||
self.flags(backup_compression_algorithm='zlib')
|
||||
service = swift_dr.SwiftBackupDriver(self.ctxt)
|
||||
self.volume_file.seek(0)
|
||||
self._write_effective_compression_file(self.size_volume_file)
|
||||
backup = objects.Backup.get_by_id(self.ctxt, fake.BACKUP_ID)
|
||||
service.backup(backup, self.volume_file)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user