Ticket #1547: test-1547.darcs.patch

File test-1547.darcs.patch, 26.8 KB (added by davidsarah, at 2011-10-02T04:07:48Z)

Tests for ref #1547. Note that the tests on #1552 also need to pass in order for the fix to work.

Line 
11 patch for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk:
2
3Sun Oct  2 04:53:16 BST 2011  david-sarah@jacaranda.org
4  * Tests for ref #1547
5
6New patches:
7
8[Tests for ref #1547
9david-sarah@jacaranda.org**20111002035316
10 Ignore-this: 933f2b6ff148523f40475fe2d2578170
11] {
12hunk ./src/allmydata/test/test_web.py 1379
13         d.addBoth(self.should404, "test_GET_FILEURL_uri_missing")
14         return d
15 
16+    def _check_upload_and_mkdir_forms(self, html):
17+        # We should have a form to create a file, with radio buttons that allow
18+        # the user to toggle whether it is a CHK/LIT (default), SDMF, or MDMF file.
19+        self.failUnlessIn('name="t" value="upload"', html)
20+        self.failUnlessIn('input checked="checked" type="radio" id="upload-chk" value="chk" name="format"', html)
21+        self.failUnlessIn('input type="radio" id="upload-sdmf" value="sdmf" name="format"', html)
22+        self.failUnlessIn('input type="radio" id="upload-mdmf" value="mdmf" name="format"', html)
23+
24+        # We should also have the ability to create a mutable directory, with
25+        # radio buttons that allow the user to toggle whether it is an SDMF (default)
26+        # or MDMF directory.
27+        self.failUnlessIn('name="t" value="mkdir"', html)
28+        self.failUnlessIn('input checked="checked" type="radio" id="mkdir-sdmf" value="sdmf" name="format"', html)
29+        self.failUnlessIn('input type="radio" id="mkdir-mdmf" value="mdmf" name="format"', html)
30+
31     def test_GET_DIRECTORY_html(self):
32         d = self.GET(self.public_url + "/foo", followRedirect=True)
33hunk ./src/allmydata/test/test_web.py 1396
34-        def _check(res):
35-            self.failUnlessIn('<div class="toolbar-item"><a href="../../..">Return to Welcome page</a></div>',res)
36-            # These are radio buttons that allow a user to toggle
37-            # whether a particular mutable file is SDMF or MDMF.
38-            self.failUnlessIn("mutable-type-mdmf", res)
39-            self.failUnlessIn("mutable-type-sdmf", res)
40-            # Similarly, these toggle whether a particular directory
41-            # should be MDMF or SDMF.
42-            self.failUnlessIn("mutable-directory-mdmf", res)
43-            self.failUnlessIn("mutable-directory-sdmf", res)
44-            self.failUnlessIn("quux", res)
45+        def _check(html):
46+            self.failUnlessIn('<div class="toolbar-item"><a href="../../..">Return to Welcome page</a></div>', html)
47+            self._check_upload_and_mkdir_forms(html)
48+            self.failUnlessIn("quux", html)
49         d.addCallback(_check)
50         return d
51 
52hunk ./src/allmydata/test/test_web.py 1404
53     def test_GET_root_html(self):
54-        # make sure that we have the option to upload an unlinked
55-        # mutable file in SDMF and MDMF formats.
56-        d = self.GET("/")
57-        def _got_html(html):
58-            # These are radio buttons that allow the user to toggle
59-            # whether a particular mutable file is MDMF or SDMF.
60-            self.failUnlessIn("mutable-type-mdmf", html)
61-            self.failUnlessIn("mutable-type-sdmf", html)
62-            # We should also have the ability to create a mutable directory.
63-            self.failUnlessIn("mkdir", html)
64-            # ...and we should have the ability to say whether that's an
65-            # MDMF or SDMF directory
66-            self.failUnlessIn("mutable-directory-mdmf", html)
67-            self.failUnlessIn("mutable-directory-sdmf", html)
68-        d.addCallback(_got_html)
69-        return d
70-
71-    def test_mutable_type_defaults(self):
72-        # The checked="checked" attribute of the inputs corresponding to
73-        # the mutable-type parameter should change as expected with the
74-        # value configured in tahoe.cfg.
75-        #
76-        # By default, the value configured with the client is
77-        # SDMF_VERSION, so that should be checked.
78-        assert self.s.mutable_file_default == SDMF_VERSION
79-
80         d = self.GET("/")
81hunk ./src/allmydata/test/test_web.py 1405
82-        def _got_html(html, value):
83-            i = 'input checked="checked" type="radio" id="mutable-type-%s"'
84-            self.failUnlessIn(i % value, html)
85-        d.addCallback(_got_html, "sdmf")
86-        d.addCallback(lambda ignored:
87-            self.GET(self.public_url + "/foo", followRedirect=True))
88-        d.addCallback(_got_html, "sdmf")
89-        # Now switch the configuration value to MDMF. The MDMF radio
90-        # buttons should now be checked on these pages.
91-        def _swap_values(ignored):
92-            self.s.mutable_file_default = MDMF_VERSION
93-        d.addCallback(_swap_values)
94-        d.addCallback(lambda ignored: self.GET("/"))
95-        d.addCallback(_got_html, "mdmf")
96-        d.addCallback(lambda ignored:
97-            self.GET(self.public_url + "/foo", followRedirect=True))
98-        d.addCallback(_got_html, "mdmf")
99+        d.addCallback(self._check_upload_and_mkdir_forms)
100         return d
101 
102     def test_GET_DIRURL(self):
103}
104
105Context:
106
107[docs/configuration.rst: add section about the types of node, and clarify when setting web.port enables web-API service. fixes #1444
108zooko@zooko.com**20110926203801
109 Ignore-this: ab94d470c68e720101a7ff3c207a719e
110]
111[TAG allmydata-tahoe-1.9.0a2
112warner@lothar.com**20110925234811
113 Ignore-this: e9649c58f9c9017a7d55008938dba64f
114]
115[NEWS: tidy up a little bit, reprioritize some items, hide some non-user-visible items
116warner@lothar.com**20110925233529
117 Ignore-this: 61f334cc3fa2539742c3e5d2801aee81
118]
119[test/test_runner.py: BinTahoe.test_path has rare nondeterministic failures; this patch probably fixes a problem where the actual cause of failure is masked by a string conversion error.
120david-sarah@jacaranda.org**20110927225336
121 Ignore-this: 6f1ad68004194cc9cea55ace3745e4af
122]
123[mutable/publish.py: fix an unused import. refs #1542
124david-sarah@jacaranda.org**20110925052206
125 Ignore-this: 2d69ac9e605e789c0aedfecb8877b7d7
126]
127[docs: fix some broken .rst links. refs #1542
128david-sarah@jacaranda.org**20110925051001
129 Ignore-this: 5714ee650abfcaab0914537e1f206972
130]
131[NEWS: fix .rst formatting.
132david-sarah@jacaranda.org**20110925050119
133 Ignore-this: aa1d20acd23bdb8f8f6d0fa048ea0277
134]
135[NEWS: updates for 1.9alpha2.
136david-sarah@jacaranda.org**20110925045343
137 Ignore-this: d2c44e4e05d2ed662b7adfd2e43928bc
138]
139[mutable/layout.py: make unpack_sdmf_checkstring and unpack_mdmf_checkstring more similar, and change an assert to give a more useful message if it fails. refs #1540
140david-sarah@jacaranda.org**20110925023651
141 Ignore-this: 977aaa8cb16e06a6dcc3e27cb6e23956
142]
143[mutable/publish: handle unknown mutable share formats when handling errors
144kevan@isnotajoke.com**20110925004305
145 Ignore-this: 4d5fa44ef7d777c432eb10c9584ad51f
146]
147[mutable/layout: break unpack_checkstring into unpack_mdmf_checkstring and unpack_sdmf_checkstring, add distinguisher function for checkstrings
148kevan@isnotajoke.com**20110925004134
149 Ignore-this: 57f49ed5a72e418a69c7286a225cc8fb
150]
151[test/test_mutable: reenable mdmf publish surprise test
152kevan@isnotajoke.com**20110924235415
153 Ignore-this: f752e47a703684491305cc83d16248fb
154]
155[mutable/publish: use unpack_mdmf_checkstring and unpack_sdmf_checkstring instead of unpack_checkstring. fixes #1540
156kevan@isnotajoke.com**20110924235137
157 Ignore-this: 52ca3d9627b8b0ba758367b2bd6c7085
158]
159[control.py: unbreak speed-test: overwrite() wants a MutableData, not str
160Brian Warner <warner@lothar.com>**20110923073748
161 Ignore-this: 7dad7aff3d66165868a64ae22d225fa3
162 
163 Really, all the upload/modify APIs should take a string or a filehandle, and
164 internally wrap it as needed. Callers should not need to be aware of
165 Uploadable() or MutableData() classes.
166]
167[misc/coding_tools/check_interfaces.py: report all violations rather than only one for a given class, by including a forked version of verifyClass. refs #1474
168david-sarah@jacaranda.org**20110916223450
169 Ignore-this: 927efeecf4d12588316826a4b3479aa9
170]
171[misc/coding_tools/check_interfaces.py: use os.walk instead of FilePath, since this script shouldn't really depend on Twisted. refs #1474
172david-sarah@jacaranda.org**20110916212633
173 Ignore-this: 46eeb4236b34375227dac71ef53f5428
174]
175[misc/coding_tools/check-interfaces.py: reduce false-positives by adding Dummy* to the set of excluded classnames, and bench-* to the set of excluded basenames. refs #1474
176david-sarah@jacaranda.org**20110916212624
177 Ignore-this: 4e78f6e6fe6c0e9be9df826a0e206804
178]
179[Add a script 'misc/coding_tools/check-interfaces.py' that checks whether zope interfaces are enforced. Also add 'check-interfaces', 'version-and-path', and 'code-checks' targets to the Makefile. fixes #1474
180david-sarah@jacaranda.org**20110915161532
181 Ignore-this: 32d9bdc5bc4a86d21e927724560ad4b4
182]
183[mutable/publish.py: copy the self.writers dict before iterating over it, since we remove elements from it during the iteration. refs #393
184david-sarah@jacaranda.org**20110924211208
185 Ignore-this: 76d4066b55d50ace2a34b87443b39094
186]
187[mutable/publish.py: simplify by refactoring self.outstanding to self.num_outstanding. refs #393
188david-sarah@jacaranda.org**20110924205004
189 Ignore-this: 902768cfc529ae13ae0b7f67768a3643
190]
191[test_mutable.py: update SkipTest message for test_publish_surprise_mdmf to reference the right ticket number. refs #1540.
192david-sarah@jacaranda.org**20110923211622
193 Ignore-this: 44f16a6817a6b75930bbba18b0a516be
194]
195[test_mutable.py: skip test_publish_surprise_mdmf, which is causing an error. refs #1534, #393
196david-sarah@jacaranda.org**20110920183319
197 Ignore-this: 6fb020e09e8de437cbcc2c9f57835b31
198]
199[test/test_mutable: write publish surprise test for MDMF, rename existing test_publish_surprise to clarify that it is for SDMF
200kevan@isnotajoke.com**20110918003657
201 Ignore-this: 722c507e8f5b537ff920e0555951059a
202]
203[test/test_mutable: refactor publish surprise test into common test fixture, rewrite test_publish_surprise to use test fixture
204kevan@isnotajoke.com**20110918003533
205 Ignore-this: 6f135888d400a99a09b5f9a4be443b6e
206]
207[mutable/publish: add errback immediately after write, don't consume errors from other parts of the publisher
208kevan@isnotajoke.com**20110917234708
209 Ignore-this: 12bf6b0918a5dc5ffc30ece669fad51d
210]
211[.darcs-boringfile: minor cleanups.
212david-sarah@jacaranda.org**20110920154918
213 Ignore-this: cab78e30d293da7e2832207dbee2ffeb
214]
215[uri.py: fix two interface violations in verifier URI classes. refs #1474
216david-sarah@jacaranda.org**20110920030156
217 Ignore-this: 454ddd1419556cb1d7576d914cb19598
218]
219[Make platform-detection code tolerate linux-3.0, patch by zooko.
220Brian Warner <warner@lothar.com>**20110915202620
221 Ignore-this: af63cf9177ae531984dea7a1cad03762
222 
223 Otherwise address-autodetection can't find ifconfig. refs #1536
224]
225[test_web.py: fix a bug in _count_leases that was causing us to check only the lease count of one share file, not of all share files as intended.
226david-sarah@jacaranda.org**20110915185126
227 Ignore-this: d96632bc48d770b9b577cda1bbd8ff94
228]
229[docs: insert a newline at the beginning of known_issues.rst to see if this makes it render more nicely in trac
230zooko@zooko.com**20110914064728
231 Ignore-this: aca15190fa22083c5d4114d3965f5d65
232]
233[docs: remove the coding: utf-8 declaration at the to of known_issues.rst, since the trac rendering doesn't hide it
234zooko@zooko.com**20110914055713
235 Ignore-this: 941ed32f83ead377171aa7a6bd198fcf
236]
237[docs: more cleanup of known_issues.rst -- now it passes "rst2html --verbose" without comment
238zooko@zooko.com**20110914055419
239 Ignore-this: 5505b3d76934bd97d0312cc59ed53879
240]
241[docs: more formatting improvements to known_issues.rst
242zooko@zooko.com**20110914051639
243 Ignore-this: 9ae9230ec9a38a312cbacaf370826691
244]
245[docs: reformatting of known_issues.rst
246zooko@zooko.com**20110914050240
247 Ignore-this: b8be0375079fb478be9d07500f9aaa87
248]
249[docs: fix formatting error in docs/known_issues.rst
250zooko@zooko.com**20110914045909
251 Ignore-this: f73fe74ad2b9e655aa0c6075acced15a
252]
253[merge Tahoe-LAFS v1.8.3 release announcement with trunk
254zooko@zooko.com**20110913210544
255 Ignore-this: 163f2c3ddacca387d7308e4b9332516e
256]
257[docs: release notes for Tahoe-LAFS v1.8.3
258zooko@zooko.com**20110913165826
259 Ignore-this: 84223604985b14733a956d2fbaeb4e9f
260]
261[tests: bump up the timeout in this test that fails on FreeStorm's CentOS in order to see if it is just very slow
262zooko@zooko.com**20110913024255
263 Ignore-this: 6a86d691e878cec583722faad06fb8e4
264]
265[interfaces: document that the 'fills-holes-with-zero-bytes' key should be used to detect whether a storage server has that behavior. refs #1528
266david-sarah@jacaranda.org**20110913002843
267 Ignore-this: 1a00a6029d40f6792af48c5578c1fd69
268]
269[CREDITS: more CREDITS for Kevan and David-Sarah
270zooko@zooko.com**20110912223357
271 Ignore-this: 4ea8f0d6f2918171d2f5359c25ad1ada
272]
273[merge NEWS about the mutable file bounds fixes with NEWS about work-in-progress
274zooko@zooko.com**20110913205521
275 Ignore-this: 4289a4225f848d6ae6860dd39bc92fa8
276]
277[doc: add NEWS item about fixes to potential palimpsest issues in mutable files
278zooko@zooko.com**20110912223329
279 Ignore-this: 9d63c95ddf95c7d5453c94a1ba4d406a
280 ref. #1528
281]
282[merge the NEWS about the security fix (#1528) with the work-in-progress NEWS
283zooko@zooko.com**20110913205153
284 Ignore-this: 88e88a2ad140238c62010cf7c66953fc
285]
286[doc: add NEWS entry about the issue which allows unauthorized deletion of shares
287zooko@zooko.com**20110912223246
288 Ignore-this: 77e06d09103d2ef6bb51ea3e5d6e80b0
289 ref. #1528
290]
291[doc: add entry in known_issues.rst about the issue which allows unauthorized deletion of shares
292zooko@zooko.com**20110912223135
293 Ignore-this: b26c6ea96b6c8740b93da1f602b5a4cd
294 ref. #1528
295]
296[storage: more paranoid handling of bounds and palimpsests in mutable share files
297zooko@zooko.com**20110912222655
298 Ignore-this: a20782fa423779ee851ea086901e1507
299 * storage server ignores requests to extend shares by sending a new_length
300 * storage server fills exposed holes (created by sending a write vector whose offset begins after the end of the current data) with 0 to avoid "palimpsest" exposure of previous contents
301 * storage server zeroes out lease info at the old location when moving it to a new location
302 ref. #1528
303]
304[storage: test that the storage server ignores requests to extend shares by sending a new_length, and that the storage server fills exposed holes with 0 to avoid "palimpsest" exposure of previous contents
305zooko@zooko.com**20110912222554
306 Ignore-this: 61ebd7b11250963efdf5b1734a35271
307 ref. #1528
308]
309[immutable: prevent clients from reading past the end of share data, which would allow them to learn the cancellation secret
310zooko@zooko.com**20110912222458
311 Ignore-this: da1ebd31433ea052087b75b2e3480c25
312 Declare explicitly that we prevent this problem in the server's version dict.
313 fixes #1528 (there are two patches that are each a sufficient fix to #1528 and this is one of them)
314]
315[storage: remove the storage server's "remote_cancel_lease" function
316zooko@zooko.com**20110912222331
317 Ignore-this: 1c32dee50e0981408576daffad648c50
318 We're removing this function because it is currently unused, because it is dangerous, and because the bug described in #1528 leaks the cancellation secret, which allows anyone who knows a file's storage index to abuse this function to delete shares of that file.
319 fixes #1528 (there are two patches that are each a sufficient fix to #1528 and this is one of them)
320]
321[storage: test that the storage server does *not* have a "remote_cancel_lease" function
322zooko@zooko.com**20110912222324
323 Ignore-this: 21c652009704652d35f34651f98dd403
324 We're removing this function because it is currently unused, because it is dangerous, and because the bug described in #1528 leaks the cancellation secret, which allows anyone who knows a file's storage index to abuse this function to delete shares of that file.
325 ref. #1528
326]
327[immutable: test whether the server allows clients to read past the end of share data, which would allow them to learn the cancellation secret
328zooko@zooko.com**20110912221201
329 Ignore-this: 376e47b346c713d37096531491176349
330 Also test whether the server explicitly declares that it prevents this problem.
331 ref #1528
332]
333[Retrieve._activate_enough_peers: rewrite Verify logic
334Brian Warner <warner@lothar.com>**20110909181150
335 Ignore-this: 9367c11e1eacbf025f75ce034030d717
336]
337[Retrieve: implement/test stopProducing
338Brian Warner <warner@lothar.com>**20110909181150
339 Ignore-this: 47b2c3df7dc69835e0a066ca12e3c178
340]
341[move DownloadStopped from download.common to interfaces
342Brian Warner <warner@lothar.com>**20110909181150
343 Ignore-this: 8572acd3bb16e50341dbed8eb1d90a50
344]
345[retrieve.py: remove vestigal self._validated_readers
346Brian Warner <warner@lothar.com>**20110909181150
347 Ignore-this: faab2ec14e314a53a2ffb714de626e2d
348]
349[Retrieve: rewrite flow-control: use a top-level loop() to catch all errors
350Brian Warner <warner@lothar.com>**20110909181150
351 Ignore-this: e162d2cd53b3d3144fc6bc757e2c7714
352 
353 This ought to close the potential for dropped errors and hanging downloads.
354 Verify needs to be examined, I may have broken it, although all tests pass.
355]
356[Retrieve: merge _validate_active_prefixes into _add_active_peers
357Brian Warner <warner@lothar.com>**20110909181150
358 Ignore-this: d3ead31e17e69394ae7058eeb5beaf4c
359]
360[Retrieve: remove the initial prefix-is-still-good check
361Brian Warner <warner@lothar.com>**20110909181150
362 Ignore-this: da66ee51c894eaa4e862e2dffb458acc
363 
364 This check needs to be done with each fetch from the storage server, to
365 detect when someone has changed the share (i.e. our servermap goes stale).
366 Doing it just once at the beginning of retrieve isn't enough: a write might
367 occur after the first segment but before the second, etc.
368 
369 _try_to_validate_prefix() was not removed: it will be used by the future
370 check-with-each-fetch code.
371 
372 test_mutable.Roundtrip.test_corrupt_all_seqnum_late was disabled, since it
373 fails until this check is brought back. (the corruption it applies only
374 touches the prefix, not the block data, so the check-less retrieve actually
375 tolerates it). Don't forget to re-enable it once the check is brought back.
376]
377[MDMFSlotReadProxy: remove the queue
378Brian Warner <warner@lothar.com>**20110909181150
379 Ignore-this: 96673cb8dda7a87a423de2f4897d66d2
380 
381 This is a neat trick to reduce Foolscap overhead, but the need for an
382 explicit flush() complicates the Retrieve path and makes it prone to
383 lost-progress bugs.
384 
385 Also change test_mutable.FakeStorageServer to tolerate multiple reads of the
386 same share in a row, a limitation exposed by turning off the queue.
387]
388[rearrange Retrieve: first step, shouldn't change order of execution
389Brian Warner <warner@lothar.com>**20110909181149
390 Ignore-this: e3006368bfd2802b82ea45c52409e8d6
391]
392[CLI: test_cli.py -- remove an unnecessary call in test_mkdir_mutable_type. refs #1527
393david-sarah@jacaranda.org**20110906183730
394 Ignore-this: 122e2ffbee84861c32eda766a57759cf
395]
396[CLI: improve test for 'tahoe mkdir --mutable-type='. refs #1527
397david-sarah@jacaranda.org**20110906183020
398 Ignore-this: f1d4598e6c536f0a2b15050b3bc0ef9d
399]
400[CLI: make the --mutable-type option value for 'tahoe put' and 'tahoe mkdir' case-insensitive, and change --help for these commands accordingly. fixes #1527
401david-sarah@jacaranda.org**20110905020922
402 Ignore-this: 75a6df0a2df9c467d8c010579e9a024e
403]
404[cli: make --mutable-type imply --mutable in 'tahoe put'
405Kevan Carstensen <kevan@isnotajoke.com>**20110903190920
406 Ignore-this: 23336d3c43b2a9554e40c2a11c675e93
407]
408[SFTP: add a comment about a subtle interaction between OverwriteableFileConsumer and GeneralSFTPFile, and test the case it is commenting on.
409david-sarah@jacaranda.org**20110903222304
410 Ignore-this: 980c61d4dd0119337f1463a69aeebaf0
411]
412[improve the storage/mutable.py asserts even more
413warner@lothar.com**20110901160543
414 Ignore-this: 5b2b13c49bc4034f96e6e3aaaa9a9946
415]
416[storage/mutable.py: special characters in struct.foo arguments indicate standard as opposed to native sizes, we should be using these characters in these asserts
417wilcoxjg@gmail.com**20110901084144
418 Ignore-this: 28ace2b2678642e4d7269ddab8c67f30
419]
420[docs/write_coordination.rst: fix formatting and add more specific warning about access via sshfs.
421david-sarah@jacaranda.org**20110831232148
422 Ignore-this: cd9c851d3eb4e0a1e088f337c291586c
423]
424[test_mutable.Version: consolidate some tests, reduce runtime from 19s to 15s
425warner@lothar.com**20110831050451
426 Ignore-this: 64815284d9e536f8f3798b5f44cf580c
427]
428[mutable/retrieve: handle the case where self._read_length is 0.
429Kevan Carstensen <kevan@isnotajoke.com>**20110830210141
430 Ignore-this: fceafbe485851ca53f2774e5a4fd8d30
431 
432 Note that the downloader will still fetch a segment for a zero-length
433 read, which is wasteful. Fixing that isn't specifically required to fix
434 #1512, but it should probably be fixed before 1.9.
435]
436[NEWS: added summary of all changes since 1.8.2. Needs editing.
437Brian Warner <warner@lothar.com>**20110830163205
438 Ignore-this: 273899b37a899fc6919b74572454b8b2
439]
440[test_mutable.Update: only upload the files needed for each test. refs #1500
441Brian Warner <warner@lothar.com>**20110829072717
442 Ignore-this: 4d2ab4c7523af9054af7ecca9c3d9dc7
443 
444 This first step shaves 15% off the runtime: from 139s to 119s on my laptop.
445 It also fixes a couple of places where a Deferred was being dropped, which
446 would cause two tests to run in parallel and also confuse error reporting.
447]
448[Let Uploader retain History instead of passing it into upload(). Fixes #1079.
449Brian Warner <warner@lothar.com>**20110829063246
450 Ignore-this: 3902c58ec12bd4b2d876806248e19f17
451 
452 This consistently records all immutable uploads in the Recent Uploads And
453 Downloads page, regardless of code path. Previously, certain webapi upload
454 operations (like PUT /uri/$DIRCAP/newchildname) failed to pass the History
455 object and were left out.
456]
457[Fix mutable publish/retrieve timing status displays. Fixes #1505.
458Brian Warner <warner@lothar.com>**20110828232221
459 Ignore-this: 4080ce065cf481b2180fd711c9772dd6
460 
461 publish:
462 * encrypt and encode times are cumulative, not just current-segment
463 
464 retrieve:
465 * same for decrypt and decode times
466 * update "current status" to include segment number
467 * set status to Finished/Failed when download is complete
468 * set progress to 1.0 when complete
469 
470 More improvements to consider:
471 * progress is currently 0% or 100%: should calculate how many segments are
472   involved (remembering retrieve can be less than the whole file) and set it
473   to a fraction
474 * "fetch" time is fuzzy: what we want is to know how much of the delay is not
475   our own fault, but since we do decode/decrypt work while waiting for more
476   shares, it's not straightforward
477]
478[Teach 'tahoe debug catalog-shares about MDMF. Closes #1507.
479Brian Warner <warner@lothar.com>**20110828080931
480 Ignore-this: 56ef2951db1a648353d7daac6a04c7d1
481]
482[debug.py: remove some dead comments
483Brian Warner <warner@lothar.com>**20110828074556
484 Ignore-this: 40e74040dd4d14fd2f4e4baaae506b31
485]
486[hush pyflakes
487Brian Warner <warner@lothar.com>**20110828074254
488 Ignore-this: bef9d537a969fa82fe4decc4ba2acb09
489]
490[MutableFileNode.set_downloader_hints: never depend upon order of dict.values()
491Brian Warner <warner@lothar.com>**20110828074103
492 Ignore-this: caaf1aa518dbdde4d797b7f335230faa
493 
494 The old code was calculating the "extension parameters" (a list) from the
495 downloader hints (a dictionary) with hints.values(), which is not stable, and
496 would result in corrupted filecaps (with the 'k' and 'segsize' hints
497 occasionally swapped). The new code always uses [k,segsize].
498]
499[layout.py: fix MDMF share layout documentation
500Brian Warner <warner@lothar.com>**20110828073921
501 Ignore-this: 3f13366fed75b5e31b51ae895450a225
502]
503[teach 'tahoe debug dump-share' about MDMF and offsets. refs #1507
504Brian Warner <warner@lothar.com>**20110828073834
505 Ignore-this: 3a9d2ef9c47a72bf1506ba41199a1dea
506]
507[test_mutable.Version.test_debug: use splitlines() to fix buildslaves
508Brian Warner <warner@lothar.com>**20110828064728
509 Ignore-this: c7f6245426fc80b9d1ae901d5218246a
510 
511 Any slave running in a directory with spaces in the name was miscounting
512 shares, causing the test to fail.
513]
514[test_mutable.Version: exercise 'tahoe debug find-shares' on MDMF. refs #1507
515Brian Warner <warner@lothar.com>**20110828005542
516 Ignore-this: cb20bea1c28bfa50a72317d70e109672
517 
518 Also changes NoNetworkGrid to put shares in storage/shares/ .
519]
520[test_mutable.py: oops, missed a .todo
521Brian Warner <warner@lothar.com>**20110828002118
522 Ignore-this: fda09ae86481352b7a627c278d2a3940
523]
524[test_mutable: merge davidsarah's patch with my Version refactorings
525warner@lothar.com**20110827235707
526 Ignore-this: b5aaf481c90d99e33827273b5d118fd0
527]
528[Make the immutable/read-only constraint checking for MDMF URIs identical to that for SSK URIs. refs #393
529david-sarah@jacaranda.org**20110823012720
530 Ignore-this: e1f59d7ff2007c81dbef2aeb14abd721
531]
532[Additional tests for MDMF URIs and for zero-length files. refs #393
533david-sarah@jacaranda.org**20110823011532
534 Ignore-this: a7cc0c09d1d2d72413f9cd227c47a9d5
535]
536[Additional tests for zero-length partial reads and updates to mutable versions. refs #393
537david-sarah@jacaranda.org**20110822014111
538 Ignore-this: 5fc6f4d06e11910124e4a277ec8a43ea
539]
540[test_mutable.Version: factor out some expensive uploads, save 25% runtime
541Brian Warner <warner@lothar.com>**20110827232737
542 Ignore-this: ea37383eb85ea0894b254fe4dfb45544
543]
544[SDMF: update filenode with correct k/N after Retrieve. Fixes #1510.
545Brian Warner <warner@lothar.com>**20110827225031
546 Ignore-this: b50ae6e1045818c400079f118b4ef48
547 
548 Without this, we get a regression when modifying a mutable file that was
549 created with more shares (larger N) than our current tahoe.cfg . The
550 modification attempt creates new versions of the (0,1,..,newN-1) shares, but
551 leaves the old versions of the (newN,..,oldN-1) shares alone (and throws a
552 assertion error in SDMFSlotWriteProxy.finish_publishing in the process).
553 
554 The mixed versions that result (some shares with e.g. N=10, some with N=20,
555 such that both versions are recoverable) cause problems for the Publish code,
556 even before MDMF landed. Might be related to refs #1390 and refs #1042.
557]
558[layout.py: annotate assertion to figure out 'tahoe backup' failure
559Brian Warner <warner@lothar.com>**20110827195253
560 Ignore-this: 9b92b954e3ed0d0f80154fff1ff674e5
561]
562[Add 'tahoe debug dump-cap' support for MDMF, DIR2-CHK, DIR2-MDMF. refs #1507.
563Brian Warner <warner@lothar.com>**20110827195048
564 Ignore-this: 61c6af5e33fc88e0251e697a50addb2c
565 
566 This also adds tests for all those cases, and fixes an omission in uri.py
567 that broke parsing of DIR2-MDMF-Verifier and DIR2-CHK-Verifier.
568]
569[MDMF: more writable/writeable consistentifications
570warner@lothar.com**20110827190602
571 Ignore-this: 22492a9e20c1819ddb12091062888b55
572]
573[MDMF: s/Writable/Writeable/g, for consistency with existing SDMF code
574warner@lothar.com**20110827183357
575 Ignore-this: 9dd312acedbdb2fc2f7bef0d0fb17c0b
576]
577[setup.cfg: remove no-longer-supported test_mac_diskimage alias. refs #1479
578david-sarah@jacaranda.org**20110826230345
579 Ignore-this: 40e908b8937322a290fb8012bfcad02a
580]
581[test_mutable.Update: increase timeout from 120s to 400s, slaves are failing
582Brian Warner <warner@lothar.com>**20110825230140
583 Ignore-this: 101b1924a30cdbda9b2e419e95ca15ec
584]
585[tests: fix check_memory test
586zooko@zooko.com**20110825201116
587 Ignore-this: 4d66299fa8cb61d2ca04b3f45344d835
588 fixes #1503
589]
590[TAG allmydata-tahoe-1.9.0a1
591warner@lothar.com**20110825161122
592 Ignore-this: 3cbf49f00dbda58189f893c427f65605
593]
594Patch bundle hash:
5953fb1355fa8e36895eca7939e8ab14a315aa8fc9a