tests: check importing empty data into ThinVolume
Verify if it really discards old content. QubesOS/qubes-issues#5192
This commit is contained in:
parent
790c2ad8cb
commit
19186f7840
@ -843,6 +843,37 @@ class TC_00_ThinPool(ThinPoolBase):
|
|||||||
|
|
||||||
self.loop.run_until_complete(volume.remove())
|
self.loop.run_until_complete(volume.remove())
|
||||||
|
|
||||||
|
def test_034_import_data_empty(self):
|
||||||
|
config = {
|
||||||
|
'name': 'root',
|
||||||
|
'pool': self.pool.name,
|
||||||
|
'save_on_stop': True,
|
||||||
|
'rw': True,
|
||||||
|
'size': 1024 * 1024,
|
||||||
|
}
|
||||||
|
vm = qubes.tests.storage.TestVM(self)
|
||||||
|
volume = self.app.get_pool(self.pool.name).init_volume(vm, config)
|
||||||
|
with unittest.mock.patch('time.time') as mock_time:
|
||||||
|
mock_time.side_effect = [1521065905]
|
||||||
|
self.loop.run_until_complete(volume.create())
|
||||||
|
p = self.loop.run_until_complete(asyncio.create_subprocess_exec(
|
||||||
|
'sudo', 'dd', 'if=/dev/urandom', 'of=' + volume.path, 'count=1', 'bs=1M'
|
||||||
|
))
|
||||||
|
self.loop.run_until_complete(p.wait())
|
||||||
|
import_path = self.loop.run_until_complete(volume.import_data())
|
||||||
|
self.assertNotEqual(volume.path, import_path)
|
||||||
|
p = self.loop.run_until_complete(asyncio.create_subprocess_exec(
|
||||||
|
'sudo', 'touch', import_path))
|
||||||
|
self.loop.run_until_complete(p.wait())
|
||||||
|
self.loop.run_until_complete(volume.import_data_end(True))
|
||||||
|
self.assertFalse(os.path.exists(import_path), import_path)
|
||||||
|
p = self.loop.run_until_complete(asyncio.create_subprocess_exec(
|
||||||
|
'sudo', 'cat', volume.path,
|
||||||
|
stdout=subprocess.PIPE
|
||||||
|
))
|
||||||
|
volume_data, _ = self.loop.run_until_complete(p.communicate())
|
||||||
|
self.assertEqual(volume_data.strip(b'\0'), b'')
|
||||||
|
|
||||||
def test_040_volatile(self):
|
def test_040_volatile(self):
|
||||||
'''Volatile volume test'''
|
'''Volatile volume test'''
|
||||||
config = {
|
config = {
|
||||||
|
Loading…
Reference in New Issue
Block a user