Lines Matching +full:os +full:- +full:data +full:- +full:offset
4 # Tests for drive-backup and blockdev-backup
25 import os
29 test_img = os.path.join(iotests.test_dir, 'test.img')
30 target_img = os.path.join(iotests.test_dir, 'target.img')
31 blockdev_target_img = os.path.join(iotests.test_dir, 'blockdev-target.img')
36 qemu_img('create', '-f', iotests.imgfmt, test_img, str(image_len))
37 qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x11 0 64k', test_img)
38 qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x00 64k 128k', test_img)
39 qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x22 162k 32k', test_img)
40 qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xd5 1M 32k', test_img)
41 qemu_io('-f', iotests.imgfmt, '-c', 'write -P0xdc 32M 124k', test_img)
42 qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x33 67043328 64k', test_img)
45 os.remove(test_img)
50 qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(image_len))
53 self.vm.add_drive('blkdebug::' + test_img, 'node-name=source')
54 self.vm.add_drive(blockdev_target_img, 'node-name=target',
62 os.remove(blockdev_target_img)
64 os.remove(target_img)
75 self.assert_qmp(event, 'data/type', 'backup')
78 self.do_test_cancel('drive-backup', target_img)
81 self.do_test_cancel('blockdev-backup', 'drive1')
94 result = self.vm.qmp('query-block-jobs')
95 offset = self.dictpath(result, 'return[0]/offset')
98 result = self.vm.qmp('query-block-jobs')
99 self.assert_qmp(result, 'return[0]/offset', offset)
101 self.vm.cmd('block-job-resume', device='drive0')
110 self.do_test_pause('drive-backup', target_img, target_img)
113 self.do_test_pause('blockdev-backup', 'drive1', blockdev_target_img)
123 self.vm.cmd('blockdev-backup', job_id='job0', device='drive0',
138 result = self.vm.qmp('blockdev-backup', job_id='job0', device='drive0',
152 result = self.vm.qmp('drive-backup', device='drive2', # CD-ROM
160 result = self.vm.qmp('blockdev-backup', device='drive2', # CD-ROM
165 result = self.vm.qmp('drive-backup', device='drive0',
170 result = self.vm.qmp('drive-backup', device='drive0',
172 format='spaghetti-noodles')
180 self.do_test_device_not_found('drive-backup', device='nonexistent',
183 self.do_test_device_not_found('blockdev-backup', device='nonexistent',
186 self.do_test_device_not_found('blockdev-backup', device='drive0',
189 self.do_test_device_not_found('blockdev-backup', device='nonexistent',
193 result = self.vm.qmp('blockdev-backup', device='drive0',
199 qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(image_len))
207 os.remove(blockdev_target_img)
209 os.remove(target_img)
220 result = self.vm.qmp('query-block-jobs')
224 self.vm.cmd('block-job-set-speed', device='drive0', speed=8 * 1024 * 1024)
227 result = self.vm.qmp('query-block-jobs')
232 self.assert_qmp(event, 'data/type', 'backup')
239 result = self.vm.qmp('query-block-jobs')
244 self.assert_qmp(event, 'data/type', 'backup')
247 self.do_test_set_speed('drive-backup', target_img)
250 self.do_test_set_speed('blockdev-backup', 'drive1')
256 target=target, sync='full', speed=-1)
265 result = self.vm.qmp('block-job-set-speed', device='drive0', speed=-1)
269 self.assert_qmp(event, 'data/type', 'backup')
272 self.do_test_set_speed_invalid('drive-backup', target_img)
275 self.do_test_set_speed_invalid('blockdev-backup', 'drive1')
281 qemu_img('create', '-f', iotests.imgfmt, blockdev_target_img, str(image_len))
291 os.remove(blockdev_target_img)
293 os.remove(target_img)
302 'data': { 'device': 'drive0',
310 self.assert_qmp(event, 'data/type', 'backup')
313 self.do_test_cancel('drive-backup', target_img)
316 self.do_test_cancel('blockdev-backup', 'drive1')
323 'data': { 'device': 'drive0',
332 self.vm.cmd('block-job-set-speed', device='drive0', speed=0)
336 result = self.vm.qmp('query-block-jobs')
337 offset = self.dictpath(result, 'return[0]/offset')
340 result = self.vm.qmp('query-block-jobs')
341 self.assert_qmp(result, 'return[0]/offset', offset)
343 self.vm.cmd('block-job-resume', device='drive0')
352 self.do_test_pause('drive-backup', target_img, target_img)
355 self.do_test_pause('blockdev-backup', 'drive1', blockdev_target_img)
363 'data': { 'device': 'drive2', # CD-ROM
371 self.do_test_medium_not_found('drive-backup', target_img)
374 self.do_test_medium_not_found('blockdev-backup', 'drive1')
378 'type': 'drive-backup',
379 'data': { 'device': 'drive0',
389 'type': 'drive-backup',
390 'data': { 'device': 'nonexistent',
399 'type': 'blockdev-backup',
400 'data': { 'device': 'nonexistent',
408 'type': 'blockdev-backup',
409 'data': { 'device': 'drive0',
417 'type': 'blockdev-backup',
418 'data': { 'device': 'nonexistent',
427 'type': 'blockdev-backup',
428 'data': { 'device': 'drive0',
437 'type': 'drive-backup',
438 'data': { 'device': 'nonexistent',
444 'data': {},
451 'type': 'blockdev-backup',
452 'data': { 'device': 'nonexistent',
457 'data': {},
464 'type': 'blockdev-backup',
465 'data': { 'device': 'drive0',
470 'data': {},
479 target_fmt = {'type': 'qcow2', 'args': (), 'drive-opts': ''}
483 os.remove(blockdev_target_img)
485 os.remove(target_img)
491 opts=self.target_fmt['drive-opts'])
493 qemu_img('create', '-f', self.target_fmt['type'], blockdev_target_img,
499 opts=self.target_fmt['drive-opts'])
519 self.do_test_compress_complete('drive-backup', False,
524 self.do_test_compress_complete('blockdev-backup',
536 self.assert_qmp(event, 'data/type', 'backup')
541 self.do_test_compress_cancel('drive-backup', False,
546 self.do_test_compress_cancel('blockdev-backup', True,
561 result = self.vm.qmp('query-block-jobs')
562 offset = self.dictpath(result, 'return[0]/offset')
565 result = self.vm.qmp('query-block-jobs')
566 self.assert_qmp(result, 'return[0]/offset', offset)
568 self.vm.cmd('block-job-resume', device='drive0')
579 self.do_test_compress_pause('drive-backup', False,
584 self.do_test_compress_pause('blockdev-backup', True,
589 target_fmt = {'type': 'vmdk', 'args': ('-o', 'subformat=streamOptimized'),
590 'drive-opts': 'cache.no-flush=on'}