view tests/lockdelay.py @ 45300:dc457177dbc1

localrepo: only use 'bookmarksinstore' requirement if we have 'store' This adds check that whether we have the 'store' requirement or not. If we don't have that, we skip adding the 'bookmarksinstore' requirement and warn user about it. Differential Revision: https://phab.mercurial-scm.org/D8771
author Pulkit Goyal <7895pulkit@gmail.com>
date Tue, 21 Jul 2020 13:58:58 +0530
parents 2372284d9457
children f6c67bb4ca03
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