mercurial/testing/revlog.py
changeset 51236 7eea2e4109ae
parent 48875 6000f5b25c9b
child 51241 03fdd4d7b5bd
--- a/mercurial/testing/revlog.py	Fri Oct 27 23:29:29 2023 +0200
+++ b/mercurial/testing/revlog.py	Fri Oct 27 22:11:05 2023 +0200
@@ -21,17 +21,32 @@
     b'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
 )
 
+from ..revlogutils.constants import REVLOGV1
+
 
 try:
     from ..cext import parsers as cparsers  # pytype: disable=import-error
 except ImportError:
     cparsers = None
 
+try:
+    from ..rustext.revlog import MixedIndex  # pytype: disable=import-error
+except ImportError:
+    MixedIndex = None
+
 
 @unittest.skipIf(
     cparsers is None,
     'The C version of the "parsers" module is not available. It is needed for this test.',
 )
 class RevlogBasedTestBase(unittest.TestCase):
-    def parseindex(self):
-        return cparsers.parse_index2(data_non_inlined, False)[0]
+    def parseindex(self, data=None):
+        if data is None:
+            data = data_non_inlined
+        return cparsers.parse_index2(data, False)[0]
+
+    def parserustindex(self, data=None):
+        if data is None:
+            data = data_non_inlined
+        cindex = self.parseindex(data=data)
+        return MixedIndex(cindex, data, REVLOGV1)