From: Hitoshi Mitake <[email protected]>

This patch adds a new test of the object reclaim algorithm. The test
creates branch of VDI tree and checks the GC works well for the case.

Cc: MORITA Kazutaka <[email protected]>
Tested-by: Valerio Pachera <[email protected]>
Cc: Alessandro Bolgia <[email protected]>
Signed-off-by: Hitoshi Mitake <[email protected]>
---
 tests/functional/092     | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/functional/092.out | 42 ++++++++++++++++++++++++++++++++++++++++++
 tests/functional/group   |  1 +
 3 files changed, 90 insertions(+)
 create mode 100755 tests/functional/092
 create mode 100644 tests/functional/092.out

diff --git a/tests/functional/092 b/tests/functional/092
new file mode 100755
index 0000000..6f0377d
--- /dev/null
+++ b/tests/functional/092
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# Test object reclaim for cloned VDIs
+
+. ./common
+
+for i in 0 1 2; do
+    _start_sheep $i
+done
+_wait_for_sheep 3
+_cluster_format -c 2
+
+$DOG vdi create test 16M -P
+_node_info
+
+$DOG vdi snapshot test
+$DOG vdi clone test -s 1 test_cloned
+
+$DOG vdi write test_cloned 0 512 < /dev/zero
+$DOG vdi write test_cloned $((4 * 1024 ** 2 * 1)) 512 < /dev/zero
+_node_info
+
+_vdi_list
+
+$DOG vdi clone test -s 1 test_cloned2 # create branch
+
+$DOG vdi write test_cloned2 0 512 < /dev/zero
+$DOG vdi write test_cloned2 $((4 * 1024 ** 2 * 1)) 512 < /dev/zero
+_node_info
+
+_vdi_list
+
+$DOG vdi delete test
+_node_info
+
+$DOG vdi delete test -s 1
+_node_info
+
+$DOG vdi delete test_cloned
+_node_info
+
+$DOG vdi delete test_cloned2
+echo there should be no object
+_node_info
+
+echo there should be no vdi
+_vdi_list
diff --git a/tests/functional/092.out b/tests/functional/092.out
new file mode 100644
index 0000000..a3e5f4b
--- /dev/null
+++ b/tests/functional/092.out
@@ -0,0 +1,42 @@
+QA output created by 092
+using backend plain store
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      3       0       0       0       0       0
+1      3       1       0       0       0       0
+2      2       1       0       0       0       0
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      5       1       0       0       2       0
+1      4       2       0       0       0       0
+2      3       3       0       0       2       0
+  Name        Id    Size    Used  Shared    Creation time   VDI id  Copies  Tag
+c test_cloned     0   16 MB  8.0 MB  8.0 MB DATE   34f19d      2              
+s test         1   16 MB   16 MB  0.0 MB DATE   7c2b25      2              
+  test         0   16 MB  0.0 MB   16 MB DATE   7c2b26      2              
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      5       2       0       0       2       0
+1      6       3       0       0       0       0
+2      5       3       0       0       2       0
+  Name        Id    Size    Used  Shared    Creation time   VDI id  Copies  Tag
+c test_cloned     0   16 MB  8.0 MB  8.0 MB DATE   34f19d      2              
+s test         1   16 MB   16 MB  0.0 MB DATE   7c2b25      2              
+  test         0   16 MB  0.0 MB   16 MB DATE   7c2b26      2              
+c test_cloned2     0   16 MB  8.0 MB  8.0 MB DATE   f6ac5d      2              
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      5       2       0       0       4       0
+1      6       3       0       0       2       0
+2      5       3       0       0       2       0
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      3       2       0       0       2       0
+1      4       3       0       0       2       0
+2      5       3       0       0       0       0
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      1       2       0       0       2       0
+1      3       3       0       0       2       0
+2      4       3       0       0       0       0
+there should be no object
+STORE  DATA    VDI     VMSTATE ATTR    LEDGER  STALE
+0      0       2       0       0       0       0
+1      0       3       0       0       0       0
+2      0       3       0       0       0       0
+there should be no vdi
+  Name        Id    Size    Used  Shared    Creation time   VDI id  Copies  Tag
diff --git a/tests/functional/group b/tests/functional/group
index 9a7785e..d69f2d7 100644
--- a/tests/functional/group
+++ b/tests/functional/group
@@ -106,3 +106,4 @@
 089 auto quick sheepfs
 090 auto quick vdi md
 091 auto quick cluster md
+092 auto quick vdi
-- 
1.9.1

-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to