view tests/lockdelay.py @ 37296:78103e4138b1

wireproto: port protocol handler to zope.interface zope.interface is superior to the abc module. Let's port to it. As part of this, we add tests for interface conformance for classes implementing the interface. Differential Revision: https://phab.mercurial-scm.org/D2983
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 23 Mar 2018 16:24:53 -0700
parents a76d5ba7ac43
children 2372284d9457
line wrap: on
line source

# Dummy extension that adds a delay after acquiring a lock.
#
# This extension can be used to test race conditions between lock acquisition.

from __future__ import absolute_import

import os
import time

def reposetup(ui, repo):

    class delayedlockrepo(repo.__class__):
        def lock(self):
            delay = float(os.environ.get('HGPRELOCKDELAY', '0.0'))
            if delay:
                time.sleep(delay)
            res = super(delayedlockrepo, self).lock()
            delay = float(os.environ.get('HGPOSTLOCKDELAY', '0.0'))
            if delay:
                time.sleep(delay)
            return res
    repo.__class__ = delayedlockrepo