# HG changeset patch # User Pierre-Yves David # Date 1535309726 -7200 # Node ID e058b3288770415cb641b63f49539ded73d5e9d7 # Parent 52e109e46d78e2eb01de751a56f2ac2a23c5a91f contrib: introduce a small script to stress tests obsolescence exchange Tester have been reporting some error that seems to originate from concurrent access/update to the cache. This script will be useful to reproduce these situations locally. diff -r 52e109e46d78 -r e058b3288770 contrib/hammerclient.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/hammerclient.py Sun Aug 26 20:55:26 2018 +0200 @@ -0,0 +1,27 @@ +#!/usr/bin/env python +import os +import sys +import subprocess + +if len(sys.argv) < 2: + execname = os.path.basename(sys.argv[0]) + print >> sys.stderr, "usage: %s CLIENT_ID" % execname + +client_id = sys.argv[1] + +subprocess.check_call(['hg', 'branch', "--force", "hammer-branch-%s" % client_id]) + +while True: + subprocess.check_call([ + 'hg', 'commit', + "--config", "ui.allowemptycommit=yes", + "--message", "hammer-%s" % client_id, + ]) + nodeid = subprocess.check_output([ + 'hg', 'log', '--rev', '.', '--template', '{node}' + ]) + subprocess.check_call([ + 'hg', 'debugobsolete', ''.join(reversed(nodeid)), nodeid + ]) + subprocess.check_call(['hg', 'pull']) + subprocess.check_call(['hg', 'push', '--force'])