Re: [Qemu-block] [PATCH 20/22] iotests: test internal persistent dirty bitmap

2016-03-23 Thread Vladimir Sementsov-Ogievskiy

On 22.03.2016 21:27, Eric Blake wrote:

On 03/15/2016 02:04 PM, Vladimir Sementsov-Ogievskiy wrote:

Add simple test cases for testing persistent dirty bitmaps.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
---
  tests/qemu-iotests/160| 112 ++
  tests/qemu-iotests/160.out|  21 
  tests/qemu-iotests/group  |   1 +
  tests/qemu-iotests/iotests.py |   6 +++
  4 files changed, 140 insertions(+)
  create mode 100755 tests/qemu-iotests/160
  create mode 100644 tests/qemu-iotests/160.out

diff --git a/tests/qemu-iotests/160 b/tests/qemu-iotests/160
new file mode 100755
index 000..f9843da
--- /dev/null
+++ b/tests/qemu-iotests/160
@@ -0,0 +1,112 @@
+#!/usr/bin/env python
+#
+# Tests for persistent dirty bitmaps.
+#
+# Copyright: Vladimir Sementsov-Ogievskiy 2015

Do you want to also claim 2016?


+++ b/tests/qemu-iotests/group
@@ -150,3 +150,4 @@
  145 auto quick
  146 auto quick
  148 rw auto quick
+160 rw auto quick

Do we really have that many pending patch series with reserved test ids?


I'm just sick of renaming it on rebases. When the series will be closer 
to accepting I'll be able to rename it appropriately








--
Best regards,
Vladimir




Re: [Qemu-block] [PATCH 20/22] iotests: test internal persistent dirty bitmap

2016-03-22 Thread Eric Blake
On 03/15/2016 02:04 PM, Vladimir Sementsov-Ogievskiy wrote:
> Add simple test cases for testing persistent dirty bitmaps.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy 
> ---
>  tests/qemu-iotests/160| 112 
> ++
>  tests/qemu-iotests/160.out|  21 
>  tests/qemu-iotests/group  |   1 +
>  tests/qemu-iotests/iotests.py |   6 +++
>  4 files changed, 140 insertions(+)
>  create mode 100755 tests/qemu-iotests/160
>  create mode 100644 tests/qemu-iotests/160.out
> 
> diff --git a/tests/qemu-iotests/160 b/tests/qemu-iotests/160
> new file mode 100755
> index 000..f9843da
> --- /dev/null
> +++ b/tests/qemu-iotests/160
> @@ -0,0 +1,112 @@
> +#!/usr/bin/env python
> +#
> +# Tests for persistent dirty bitmaps.
> +#
> +# Copyright: Vladimir Sementsov-Ogievskiy 2015

Do you want to also claim 2016?

> +++ b/tests/qemu-iotests/group
> @@ -150,3 +150,4 @@
>  145 auto quick
>  146 auto quick
>  148 rw auto quick
> +160 rw auto quick

Do we really have that many pending patch series with reserved test ids?


-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature


[Qemu-block] [PATCH 20/22] iotests: test internal persistent dirty bitmap

2016-03-15 Thread Vladimir Sementsov-Ogievskiy
Add simple test cases for testing persistent dirty bitmaps.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
---
 tests/qemu-iotests/160| 112 ++
 tests/qemu-iotests/160.out|  21 
 tests/qemu-iotests/group  |   1 +
 tests/qemu-iotests/iotests.py |   6 +++
 4 files changed, 140 insertions(+)
 create mode 100755 tests/qemu-iotests/160
 create mode 100644 tests/qemu-iotests/160.out

diff --git a/tests/qemu-iotests/160 b/tests/qemu-iotests/160
new file mode 100755
index 000..f9843da
--- /dev/null
+++ b/tests/qemu-iotests/160
@@ -0,0 +1,112 @@
+#!/usr/bin/env python
+#
+# Tests for persistent dirty bitmaps.
+#
+# Copyright: Vladimir Sementsov-Ogievskiy 2015
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see .
+#
+
+import os
+import iotests
+import time
+from iotests import qemu_img
+
+disk = os.path.join(iotests.test_dir, 'disk')
+
+size   = 0x4000 # 1G
+sector_size = 512
+granularity = 0x1
+regions1 = [
+{ 'start': 0,  'count': 0x10 },
+{ 'start': 0x20,   'count': 0x10 }
+]
+regions2 = [
+{ 'start': 0x1000, 'count': 0x2  },
+{ 'start': 0x3999, 'count': 0x1  }
+]
+
+class TestPersistentDirtyBitmap(iotests.QMPTestCase):
+
+def setUp(self):
+qemu_img('create', '-f', iotests.imgfmt, disk, str(size))
+
+def mkVm(self, create_bitmap):
+vm = iotests.VM().add_drive(disk)
+vm.add_dirty_bitmap('1230---1230-0123', 'drive0', 
create_bitmap)
+return vm
+
+def tearDown(self):
+os.remove(disk)
+
+def getMd5(self):
+result = self.vm.qmp('query-block');
+return result['return'][0]['dirty-bitmaps'][0]['md5']
+
+def checkBitmap(self, md5):
+result = self.vm.qmp('query-block');
+self.assert_qmp(result, 'return[0]/dirty-bitmaps[0]/md5', md5);
+
+def writeRegions(self, regions):
+for r in regions:
+  self.vm.hmp_qemu_io('drive0',
+'write %d %d' % (r['start'], r['count']))
+
+def test_persistent(self):
+self.vm = self.mkVm(True)
+self.vm.launch()
+
+self.writeRegions(regions1)
+md5 = self.getMd5()
+
+self.vm.shutdown()
+self.vm = self.mkVm(False)
+self.vm.launch()
+
+self.checkBitmap(md5)
+self.writeRegions(regions2)
+md5 = self.getMd5()
+
+self.vm.shutdown()
+self.vm.launch()
+
+self.checkBitmap(md5)
+
+self.vm.shutdown()
+
+def test_not_exist(self):
+vm = self.mkVm(False)
+vm.test_launch()
+
+def test_already_exists(self):
+vm = self.mkVm(True)
+vm.test_launch()
+vm.test_launch()
+
+def test_in_use(self):
+vm = self.mkVm(True)
+vm.launch()
+vm.shutdown()
+
+vm1 = self.mkVm(False)
+vm1.launch()
+
+vm2 = self.mkVm(False)
+vm2.test_launch()
+
+vm1.shutdown()
+
+
+if __name__ == '__main__':
+iotests.main()
diff --git a/tests/qemu-iotests/160.out b/tests/qemu-iotests/160.out
new file mode 100644
index 000..653d21b
--- /dev/null
+++ b/tests/qemu-iotests/160.out
@@ -0,0 +1,21 @@
+
+--
+Ran 4 tests
+
+OK
+Tast launch successed!
+Test launch failed: 1
+--- qemu output ---
+qemu-system-*: -dirty-bitmap 
name=1230---1230-0123,node=drive0,create=on: bitmap 
'1230---1230-0123' already exists
+
+--- end qemu output ---
+Test launch failed: 1
+--- qemu output ---
+qemu-system-*: -dirty-bitmap 
name=1230---1230-0123,node=drive0,create=off: Bitmap 
'1230---1230-0123' is in use
+
+--- end qemu output ---
+Test launch failed: 1
+--- qemu output ---
+qemu-system-*: -dirty-bitmap 
name=1230---1230-0123,node=drive0,create=off: Could not 
find bitmap '1230---1230-0123' in the node 'drive0'
+
+--- end qemu output ---
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
index faf0f21..641106a 100644
--- a/tests/qemu-iotests/group
+++ b/tests/qemu-iotests/group
@@ -150,3 +150,4 @@
 145 auto quick
 146 auto quick
 148 rw auto quick
+160 rw auto quick
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 187b434..5b4492c