summaryrefslogtreecommitdiff
path: root/debian/patches/0038-tests-imsm-Calculate-expected-array_size-in-proper-w.patch
blob: 65689e3a90286f02c608191f11e2c9b95815f2f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
From cf42a1c7074a4f6258e6f0e4c122a93fd9c89850 Mon Sep 17 00:00:00 2001
From: Michal Zylowski <michal.zylowski@intel.com>
Date: Fri, 22 Jun 2018 16:34:12 +0200
Subject: [PATCH 38/40] tests, imsm: Calculate expected array_size in proper
 way

Tests should calucalte expected array_size accordingly to raid level. Also
tests should take care about runding to neares MB introduced from b53bfba6
"imsm: use rounded size for metadata initialization".

Expect proper size in tests. Simplify 09imsm-overlap test by creating array
with size which has not been rounded. Main purpose of this test is checking
something else.

Signed-off-by: Michal Zylowski <michal.zylowski@intel.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
---
 tests/09imsm-create-fail-rebuild |  4 ++--
 tests/09imsm-overlap             |  2 +-
 tests/env-imsm-template          | 28 +++++++++++++++++++++++-----
 3 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/tests/09imsm-create-fail-rebuild b/tests/09imsm-create-fail-rebuild
index 886d385a..f09b437b 100644
--- a/tests/09imsm-create-fail-rebuild
+++ b/tests/09imsm-create-fail-rebuild
@@ -36,7 +36,7 @@ mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size -c $chunk
 imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
 testdev $member0 $num_disks $size $chunk
 
-offset=$(((size & ~(chunk - 1)) + 4096))
+offset=$(((size & ~(1024 - 1)) + 4096))
 size=4000
 level=1
 chunk=0
@@ -60,7 +60,7 @@ mdadm -CR $member0 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $
 imsm_check member $member0 $num_disks $level $size $((size*2)) $offset $chunk
 testdev $member0 $((num_disks-2)) $size $chunk
 
-offset=$(((size & ~(chunk - 1)) + 4096))
+offset=$(((size & ~(1024 - 1)) + 4096))
 size=4000
 level=5
 mdadm -CR $member1 $dev0 $dev1 $dev2 $dev3 -n $num_disks -l $level -z $size -c $chunk
diff --git a/tests/09imsm-overlap b/tests/09imsm-overlap
index 2d1ab692..ff5d2093 100644
--- a/tests/09imsm-overlap
+++ b/tests/09imsm-overlap
@@ -5,7 +5,7 @@
 mdadm -CR $container -e imsm -n 6 $dev0 $dev1 $dev2 $dev3 $dev4 $dev5
 imsm_check container 6
 
-size=1910
+size=1024
 level=1
 num_disks=2
 mdadm -CR $member0 $dev0 $dev1 -n $num_disks -l $level -z $size
diff --git a/tests/env-imsm-template b/tests/env-imsm-template
index 40479b48..d5247714 100644
--- a/tests/env-imsm-template
+++ b/tests/env-imsm-template
@@ -14,13 +14,31 @@ imsm_check() {
         t_offset=$7
         t_chunk=$8
 
-	if [ $t_level -ne 1 ]; then
-	   t_rd_size=$((t_rd_size & ~(t_chunk - 1)))
-	else
+	t_rd_size=$((t_rd_size & ~(1024 - 1)))
+
+	if [ $t_level -eq 1 ]; then
 	   t_chunk=64
 	fi
-	t_size=$((t_size/1024))
-	t_size=$((t_size*1024))
+
+	t_num_data_disks=0
+
+	case $t_level in
+	0)
+		t_num_data_disks=$t_num_disks
+		;;
+	1)
+		t_num_data_disks=1
+		;;
+	5)
+		t_num_data_disks=$((t_num_disks-1))
+		;;
+	10)
+		t_num_data_disks=$((t_num_disks/2))
+		;;
+	esac
+
+	t_size=$((t_rd_size*t_num_data_disks))
+
         err=0
 
         eval `stat -L -c "let major=0x%t; let minor=0x%T;" $t_member`
-- 
2.17.1