sapling/eden/scm/tests/hgsql/waithook.py
Xavier Deguillard 06fa75f637 tests: use vfs.writeutf8
Summary: This is the right method to write plain strings data to files.

Reviewed By: quark-zju

Differential Revision: D19675386

fbshipit-source-id: 1f939f79294cbc45f56944058649c384b674b880
2020-01-31 18:12:14 -08:00

30 lines
827 B
Python

# Copyright (c) Facebook, Inc. and its affiliates.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2.
from __future__ import print_function
import os
import random
import sys
import time
def waithook(ui, repo, **kwargs):
"""This hook is used to block pushes in some pushrebase tests
It spins until `.hg/flag` exists
"""
start = time.time()
repo._wlockfreeprefix.add("hookrunning")
repo.localvfs.writeutf8("hookrunning", "")
while not repo.localvfs.exists("flag"):
if time.time() - start > 20:
print("ERROR: Timeout waiting for .hg/flag", file=sys.stderr)
repo.localvfs.unlink("hookrunning")
return True
time.sleep(0.05)
repo.localvfs.unlink("hookrunning")
return False