contrib: introduce a small script to stress tests obsolescence exchange stable
authorPierre-Yves David <pierre-yves.david@octobus.net>
Sun, 26 Aug 2018 20:55:26 +0200
branchstable
changeset 4016 e058b3288770
parent 3999 52e109e46d78
child 4017 c307ce1d9009
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.
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'])