]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/test/test_dirnode.py
Remove ResponseCache in favor of MDMFSlotReadProxy's cache. closes #1240.
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / test / test_dirnode.py
index 145419bef375db9a52f857176c9b10ad8611f67c..c65114fb1bcc13917d1adc499e68fb8b4ec49833 100644 (file)
@@ -1097,6 +1097,23 @@ class Dirnode(GridTestMixin, unittest.TestCase,
         d.addCallback(_check_results)
         return d
 
+    def test_deepcheck_cachemisses(self):
+        self.basedir = "dirnode/Dirnode/test_mdmf_cachemisses"
+        self.set_up_grid()
+        d = self._test_deepcheck_create()
+        # Clear the counters and set the rootnode
+        d.addCallback(lambda rootnode:
+                      not [ss._clear_counters() for ss
+                           in self.g.wrappers_by_id.values()] or rootnode)
+        d.addCallback(lambda rootnode: rootnode.start_deep_check().when_done())
+        def _check(ign):
+            count = sum([ss.counter_by_methname['slot_readv']
+                         for ss in self.g.wrappers_by_id.values()])
+            self.failIf(count > 60, 'Expected only 60 cache misses,'
+                                    'unfortunately there were %d' % (count,))
+        d.addCallback(_check)
+        return d
+
     def test_deepcheck_mdmf(self):
         self.basedir = "dirnode/Dirnode/test_deepcheck_mdmf"
         self.set_up_grid()
@@ -1376,7 +1393,7 @@ class Packing(testutil.ReallyEqualMixin, unittest.TestCase):
         known_tree = b32decode(self.known_tree)
         nodemaker = NodeMaker(None, None, None,
                               None, None,
-                              {"k": 3, "n": 10}, None)
+                              {"k": 3, "n": 10}, None, None)
         write_uri = "URI:SSK-RO:e3mdrzfwhoq42hy5ubcz6rp3o4:ybyibhnp3vvwuq2vaw2ckjmesgkklfs6ghxleztqidihjyofgw7q"
         filenode = nodemaker.create_from_cap(write_uri)
         node = dirnode.DirectoryNode(filenode, nodemaker, None)
@@ -1437,7 +1454,7 @@ class Packing(testutil.ReallyEqualMixin, unittest.TestCase):
         return kids
 
     def test_deep_immutable(self):
-        nm = NodeMaker(None, None, None, None, None, {"k": 3, "n": 10}, None)
+        nm = NodeMaker(None, None, None, None, None, {"k": 3, "n": 10}, None, None)
         fn = MinimalFakeMutableFile()
 
         kids = self._make_kids(nm, ["imm", "lit", "write", "read",
@@ -1536,7 +1553,7 @@ class FakeClient2(Client):
     def __init__(self):
         self.nodemaker = FakeNodeMaker(None, None, None,
                                        None, None,
-                                       {"k":3,"n":10}, None)
+                                       {"k":3,"n":10}, None, None)
     def create_node_from_uri(self, rwcap, rocap):
         return self.nodemaker.create_from_cap(rwcap, rocap)
 
@@ -1710,16 +1727,16 @@ class Dirnode2(testutil.ReallyEqualMixin, testutil.ShouldFailMixin, unittest.Tes
             n.raise_error()
 
         for (i, n) in unknown_rw:
-            self.failUnlessRaises(MustNotBeUnknownRWError, lambda: n.raise_error())
+            self.failUnlessRaises(MustNotBeUnknownRWError, lambda n=n: n.raise_error())
 
         for (i, n) in must_be_ro:
-            self.failUnlessRaises(MustBeReadonlyError, lambda: n.raise_error())
+            self.failUnlessRaises(MustBeReadonlyError, lambda n=n: n.raise_error())
 
         for (i, n) in must_be_imm:
-            self.failUnlessRaises(MustBeDeepImmutableError, lambda: n.raise_error())
+            self.failUnlessRaises(MustBeDeepImmutableError, lambda n=n: n.raise_error())
 
         for (i, n) in bad_uri:
-            self.failUnlessRaises(uri.BadURIError, lambda: n.raise_error())
+            self.failUnlessRaises(uri.BadURIError, lambda n=n: n.raise_error())
 
         for (i, n) in ok:
             self.failIf(n.get_readonly_uri() is None, i)
@@ -1825,6 +1842,7 @@ class Deleter(GridTestMixin, testutil.ReallyEqualMixin, unittest.TestCase):
                                   c0.get_history(), c0.getServiceNamed("uploader"),
                                   c0.terminator,
                                   c0.get_encoding_parameters(),
+                                  c0.mutable_file_default,
                                   c0._key_generator)
             n = nm.create_from_cap(self.root_uri)
             assert n._node.please_ucwe_after_next_upload == False