testing: switch to inserting deltas
authorGregory Szorc <gregory.szorc@gmail.com>
Tue, 16 Oct 2018 16:24:46 +0200
changeset 40323 2c0aa02ecd5a
parent 40322 ddeb510d6815
child 40324 6637b079ae45
testing: switch to inserting deltas As the comment in the test specifies, this was relying on storage backend implementation details. We switch to inserting a raw delta, skipping the regular insert path to ensure we have the desired outcome. This required implementing support for handling deltas in the revlog testing code. Differential Revision: https://phab.mercurial-scm.org/D5116
mercurial/testing/storage.py
tests/test-storage.py
--- a/mercurial/testing/storage.py	Tue Oct 16 15:24:06 2018 +0200
+++ b/mercurial/testing/storage.py	Tue Oct 16 16:24:46 2018 +0200
@@ -952,13 +952,12 @@
         with self.assertRaises(error.StorageError):
             f.read(node1)
 
-        diff = mdiff.textdiff(fulltext1, fulltext2)
         node2 = storageutil.hashrevisionsha1(fulltext2, node1, nullid)
-        deltas = [(node2, node1, nullid, b'\x01' * 20, node1, diff, 0)]
 
-        # This /might/ fail on some backends.
         with self._maketransactionfn() as tr:
-            f.addgroup(deltas, lambda x: 0, tr)
+            delta = mdiff.textdiff(fulltext1, fulltext2)
+            self._addrawrevisionfn(f, tr, node2, node1, nullid,
+                                   2, delta=(1, delta))
 
         self.assertEqual(len(f), 3)
 
--- a/tests/test-storage.py	Tue Oct 16 15:24:06 2018 +0200
+++ b/tests/test-storage.py	Tue Oct 16 16:24:46 2018 +0200
@@ -49,7 +49,8 @@
     if rawtext is not None:
         fl._revlog.addrawrevision(rawtext, tr, linkrev, p1, p2, node, flags)
     elif delta is not None:
-        raise error.Abort('support for storing raw deltas not yet supported')
+        fl._revlog.addrawrevision(rawtext, tr, linkrev, p1, p2, node, flags,
+                                  cachedelta=delta)
     else:
         raise error.Abort('must supply rawtext or delta arguments')