# # # patch "monotone.py" # from [3736a9cae8e5e475d54dc1aca8ecacdc10cd1ae3] # to [1b7a44df0f9dc832315e440f0f6ee544a24eb840] # # patch "tests/automate.py" # from [4c72073f00f6314e9b269b035235de6cfc0cb444] # to [dc2daf34bbe1d2a747b02658c08a1e73a265ede1] # ============================================================ --- monotone.py 3736a9cae8e5e475d54dc1aca8ecacdc10cd1ae3 +++ monotone.py 1b7a44df0f9dc832315e440f0f6ee544a24eb840 @@ -126,7 +126,7 @@ def heads(self, branch): error, result = self.automate.run('heads', [branch]) if error != 0: - raise Exception("Unable to get list of heads") + raise Exception("Unable to get list of heads for %s: %s" % (branch, result)) else: return filter(None, result.split('\n')) def basic_io_parser(self, data): @@ -188,19 +188,19 @@ def ancestors(self, ids): error, result = self.automate.run('ancestors', ids) if error != 0: - raise Exception("Unable to get ancestors") + raise Exception("Unable to get ancestors of %s: %s" % (id, data)) else: return filter(None, result.split('\n')) def toposort(self, ids): error, result = self.automate.run('toposort', ids) if error != 0: - raise Exception("Unable to toposort") + raise Exception("Unable to toposort: %s" % (result)) else: return filter(None, result.split('\n')) def revision(self, id): error, result = self.automate.run('get_revision', [id]) if error != 0: - raise Exception("Unable to get revision: %s" % id) + raise Exception("Unable to get revision %s: %s" % (id, result)) rv = {} cv = [] for line in result.split('\n'): @@ -218,7 +218,7 @@ def manifest(self, id): error, result = self.automate.run('get_manifest', [id]) if error != 0: - raise Exception("Unable to get manifest: %s" % id) + raise Exception("Unable to get manifest %s: %s" % (id, result)) rv = [] for line in result.split('\n'): m = manifest_entry_re.match(line) @@ -228,7 +228,7 @@ def file(self, id): error, result = self.automate.run('get_file', [id]) if error != 0: - raise Exception("Unable to get file: %s" % id) + raise Exception("Unable to get file %s: %s" % (id, result)) else: return result ============================================================ --- tests/automate.py 4c72073f00f6314e9b269b035235de6cfc0cb444 +++ tests/automate.py dc2daf34bbe1d2a747b02658c08a1e73a265ede1 @@ -30,11 +30,23 @@ if len(result) == 0: raise Exception("No certs") +def test_crazy_toposort(mt): + """Test huge (silly) arguments""" + #ancestors = mt.heads(config.test_branch) + ancestors = mt.ancestors(mt.heads(config.test_branch)) + while len(ancestors) < 10000: + print "size of list:", len(ancestors) + result = mt.toposort(ancestors) + print "result length:", len(result) + open('command.txt', 'w').write(config.monotone + 'automate ancestors ' + ' '.join(ancestors)) + ancestors *= 2 + tests = [ test_branches, test_tags, test_heads, test_certs, + test_crazy_toposort, ] def test(): @@ -51,6 +63,8 @@ mt = monotone.Monotone(config.monotone, config.dbfile) while 1: test() + break print "** Test run complete." + mt.automate.stop()