tests/testlib/ext-sidedata.py
changeset 46718 ba8e508a8e69
parent 46709 3d740058b467
child 47012 d55b71393907
equal deleted inserted replaced
46717:502e795b55ac 46718:ba8e508a8e69
     1 # ext-sidedata.py - small extension to test the sidedata logic
     1 # ext-sidedata.py - small extension to test the sidedata logic
     2 #
     2 #
     3 # Copyright 2019 Pierre-Yves David <pierre-yves.david@octobus.net)
     3 # Copyright 2019 Pierre-Yves David <pierre-yves.david@octobus.net>
     4 #
     4 #
     5 # This software may be used and distributed according to the terms of the
     5 # This software may be used and distributed according to the terms of the
     6 # GNU General Public License version 2 or any later version.
     6 # GNU General Public License version 2 or any later version.
     7 
     7 
     8 from __future__ import absolute_import
     8 from __future__ import absolute_import
    45     if getattr(self, 'sidedatanocheck', False):
    45     if getattr(self, 'sidedatanocheck', False):
    46         return text, sd
    46         return text, sd
    47     if self.version & 0xFFFF != 2:
    47     if self.version & 0xFFFF != 2:
    48         return text, sd
    48         return text, sd
    49     if nodeorrev != nullrev and nodeorrev != nullid:
    49     if nodeorrev != nullrev and nodeorrev != nullid:
    50         if len(text) != struct.unpack('>I', sd[sidedata.SD_TEST1])[0]:
    50         cat1 = sd.get(sidedata.SD_TEST1)
       
    51         if cat1 is not None and len(text) != struct.unpack('>I', cat1)[0]:
    51             raise RuntimeError('text size mismatch')
    52             raise RuntimeError('text size mismatch')
    52         expected = sd[sidedata.SD_TEST2]
    53         expected = sd.get(sidedata.SD_TEST2)
    53         got = hashlib.sha256(text).digest()
    54         got = hashlib.sha256(text).digest()
    54         if got != expected:
    55         if expected is not None and got != expected:
    55             raise RuntimeError('sha256 mismatch')
    56             raise RuntimeError('sha256 mismatch')
    56     return text, sd
    57     return text, sd
    57 
    58 
    58 
    59 
    59 def wrapgetsidedatacompanion(orig, srcrepo, dstrepo):
    60 def wrapgetsidedatacompanion(orig, srcrepo, dstrepo):
    84     extensions.wrapfunction(revlog.revlog, 'addrevision', wrapaddrevision)
    85     extensions.wrapfunction(revlog.revlog, 'addrevision', wrapaddrevision)
    85     extensions.wrapfunction(revlog.revlog, '_revisiondata', wrap_revisiondata)
    86     extensions.wrapfunction(revlog.revlog, '_revisiondata', wrap_revisiondata)
    86     extensions.wrapfunction(
    87     extensions.wrapfunction(
    87         upgrade_engine, 'getsidedatacompanion', wrapgetsidedatacompanion
    88         upgrade_engine, 'getsidedatacompanion', wrapgetsidedatacompanion
    88     )
    89     )
       
    90 
       
    91 
       
    92 def reposetup(ui, repo):
       
    93     # We don't register sidedata computers because we don't care within these
       
    94     # tests
       
    95     repo.register_wanted_sidedata(sidedata.SD_TEST1)
       
    96     repo.register_wanted_sidedata(sidedata.SD_TEST2)