##// END OF EJS Templates
test: explicitly use zlib compression in tests/test-repo-compengines.t...
marmoute -
r47607:19747c07 default
parent child Browse files
Show More
@@ -1,243 +1,250 b''
1 1 A new repository uses zlib storage, which doesn't need a requirement
2 2
3 $ cat << EOF >> $HGRCPATH
4 > [format]
5 > # stabilize test accross variant
6 > revlog-compression=zlib
7 > EOF
8
9
3 10 $ hg init default
4 11 $ cd default
5 12 $ cat .hg/requires
6 13 dotencode
7 14 fncache
8 15 generaldelta
9 16 revlogv1
10 17 sparserevlog
11 18 store
12 19 testonly-simplestore (reposimplestore !)
13 20
14 21 $ touch foo
15 22 $ hg -q commit -A -m 'initial commit with a lot of repeated repeated repeated text to trigger compression'
16 23 $ hg debugrevlog -c | grep 0x78
17 24 0x78 (x) : 1 (100.00%)
18 25 0x78 (x) : 110 (100.00%)
19 26
20 27 $ cd ..
21 28
22 29 Unknown compression engine to format.compression aborts
23 30
24 31 $ hg --config format.revlog-compression=unknown init unknown
25 32 abort: compression engines "unknown" defined by format.revlog-compression not available
26 33 (run "hg debuginstall" to list available compression engines)
27 34 [255]
28 35
29 36 unknown compression engine in a list with known one works fine
30 37
31 38 $ hg --config format.revlog-compression=zlib,unknown init zlib-before-unknow
32 39 $ hg --config format.revlog-compression=unknown,zlib init unknown-before-zlib
33 40
34 41 A requirement specifying an unknown compression engine results in bail
35 42
36 43 $ hg init unknownrequirement
37 44 $ cd unknownrequirement
38 45 $ echo exp-compression-unknown >> .hg/requires
39 46 $ hg log
40 47 abort: repository requires features unknown to this Mercurial: exp-compression-unknown
41 48 (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
42 49 [255]
43 50
44 51 $ cd ..
45 52
46 53 Specifying a new format.compression on an existing repo won't introduce data
47 54 with that engine or a requirement
48 55
49 56 $ cd default
50 57 $ touch bar
51 58 $ hg --config format.revlog-compression=none -q commit -A -m 'add bar with a lot of repeated repeated repeated text'
52 59
53 60 $ cat .hg/requires
54 61 dotencode
55 62 fncache
56 63 generaldelta
57 64 revlogv1
58 65 sparserevlog
59 66 store
60 67 testonly-simplestore (reposimplestore !)
61 68
62 69 $ hg debugrevlog -c | grep 0x78
63 70 0x78 (x) : 2 (100.00%)
64 71 0x78 (x) : 199 (100.00%)
65 72 $ cd ..
66 73
67 74 #if zstd
68 75
69 76 $ hg --config format.revlog-compression=zstd init zstd
70 77 $ cd zstd
71 78 $ cat .hg/requires
72 79 dotencode
73 80 fncache
74 81 generaldelta
75 82 revlog-compression-zstd
76 83 revlogv1
77 84 sparserevlog
78 85 store
79 86 testonly-simplestore (reposimplestore !)
80 87
81 88 $ touch foo
82 89 $ hg -q commit -A -m 'initial commit with a lot of repeated repeated repeated text'
83 90
84 91 $ hg debugrevlog -c | grep 0x28
85 92 0x28 : 1 (100.00%)
86 93 0x28 : 98 (100.00%)
87 94
88 95 $ cd ..
89 96
90 97
91 98 #endif
92 99
93 100 checking zlib options
94 101 =====================
95 102
96 103 $ hg init zlib-level-default
97 104 $ hg init zlib-level-1
98 105 $ cat << EOF >> zlib-level-1/.hg/hgrc
99 106 > [storage]
100 107 > revlog.zlib.level=1
101 108 > EOF
102 109 $ hg init zlib-level-9
103 110 $ cat << EOF >> zlib-level-9/.hg/hgrc
104 111 > [storage]
105 112 > revlog.zlib.level=9
106 113 > EOF
107 114
108 115
109 116 $ commitone() {
110 117 > repo=$1
111 118 > cp $RUNTESTDIR/bundles/issue4438-r1.hg $repo/a
112 119 > hg -R $repo add $repo/a
113 120 > hg -R $repo commit -m some-commit
114 121 > }
115 122
116 123 $ for repo in zlib-level-default zlib-level-1 zlib-level-9; do
117 124 > commitone $repo
118 125 > done
119 126
120 127 $ $RUNTESTDIR/f -s */.hg/store/data/*
121 128 default/.hg/store/data/bar.i: size=64
122 129 default/.hg/store/data/foo.i: size=64
123 130 zlib-level-1/.hg/store/data/a.i: size=4146
124 131 zlib-level-9/.hg/store/data/a.i: size=4138
125 132 zlib-level-default/.hg/store/data/a.i: size=4138
126 133 zstd/.hg/store/data/foo.i: size=64 (zstd !)
127 134
128 135 Test error cases
129 136
130 137 $ hg init zlib-level-invalid
131 138 $ cat << EOF >> zlib-level-invalid/.hg/hgrc
132 139 > [storage]
133 140 > revlog.zlib.level=foobar
134 141 > EOF
135 142 $ commitone zlib-level-invalid
136 143 config error: storage.revlog.zlib.level is not a valid integer ('foobar')
137 144 config error: storage.revlog.zlib.level is not a valid integer ('foobar')
138 145 [30]
139 146
140 147 $ hg init zlib-level-out-of-range
141 148 $ cat << EOF >> zlib-level-out-of-range/.hg/hgrc
142 149 > [storage]
143 150 > revlog.zlib.level=42
144 151 > EOF
145 152
146 153 $ commitone zlib-level-out-of-range
147 154 abort: invalid value for `storage.revlog.zlib.level` config: 42
148 155 abort: invalid value for `storage.revlog.zlib.level` config: 42
149 156 [255]
150 157
151 158 checking details of none compression
152 159 ====================================
153 160
154 161 $ hg init none-compression --config format.revlog-compression=none
155 162
156 163 $ commitone() {
157 164 > repo=$1
158 165 > cp $RUNTESTDIR/bundles/issue4438-r1.hg $repo/a
159 166 > hg -R $repo add $repo/a
160 167 > hg -R $repo commit -m some-commit
161 168 > }
162 169
163 170 $ commitone none-compression
164 171
165 172 $ hg log -R none-compression
166 173 changeset: 0:68b53da39cd8
167 174 tag: tip
168 175 user: test
169 176 date: Thu Jan 01 00:00:00 1970 +0000
170 177 summary: some-commit
171 178
172 179
173 180 $ cat none-compression/.hg/requires
174 181 dotencode
175 182 exp-compression-none
176 183 fncache
177 184 generaldelta
178 185 revlogv1
179 186 sparserevlog
180 187 store
181 188 testonly-simplestore (reposimplestore !)
182 189
183 190 $ $RUNTESTDIR/f -s none-compression/.hg/store/data/*
184 191 none-compression/.hg/store/data/a.i: size=4216
185 192
186 193 #if zstd
187 194
188 195 checking zstd options
189 196 =====================
190 197
191 198 $ hg init zstd-level-default --config format.revlog-compression=zstd
192 199 $ hg init zstd-level-1 --config format.revlog-compression=zstd
193 200 $ cat << EOF >> zstd-level-1/.hg/hgrc
194 201 > [storage]
195 202 > revlog.zstd.level=1
196 203 > EOF
197 204 $ hg init zstd-level-22 --config format.revlog-compression=zstd
198 205 $ cat << EOF >> zstd-level-22/.hg/hgrc
199 206 > [storage]
200 207 > revlog.zstd.level=22
201 208 > EOF
202 209
203 210
204 211 $ commitone() {
205 212 > repo=$1
206 213 > cp $RUNTESTDIR/bundles/issue4438-r1.hg $repo/a
207 214 > hg -R $repo add $repo/a
208 215 > hg -R $repo commit -m some-commit
209 216 > }
210 217
211 218 $ for repo in zstd-level-default zstd-level-1 zstd-level-22; do
212 219 > commitone $repo
213 220 > done
214 221
215 222 $ $RUNTESTDIR/f -s zstd-*/.hg/store/data/*
216 223 zstd-level-1/.hg/store/data/a.i: size=4114
217 224 zstd-level-22/.hg/store/data/a.i: size=4091
218 225 zstd-level-default/\.hg/store/data/a\.i: size=(4094|4102) (re)
219 226
220 227 Test error cases
221 228
222 229 $ hg init zstd-level-invalid --config format.revlog-compression=zstd
223 230 $ cat << EOF >> zstd-level-invalid/.hg/hgrc
224 231 > [storage]
225 232 > revlog.zstd.level=foobar
226 233 > EOF
227 234 $ commitone zstd-level-invalid
228 235 config error: storage.revlog.zstd.level is not a valid integer ('foobar')
229 236 config error: storage.revlog.zstd.level is not a valid integer ('foobar')
230 237 [30]
231 238
232 239 $ hg init zstd-level-out-of-range --config format.revlog-compression=zstd
233 240 $ cat << EOF >> zstd-level-out-of-range/.hg/hgrc
234 241 > [storage]
235 242 > revlog.zstd.level=42
236 243 > EOF
237 244
238 245 $ commitone zstd-level-out-of-range
239 246 abort: invalid value for `storage.revlog.zstd.level` config: 42
240 247 abort: invalid value for `storage.revlog.zstd.level` config: 42
241 248 [255]
242 249
243 250 #endif
General Comments 0
You need to be logged in to leave comments. Login now