##// END OF EJS Templates
run-tests: use the same python version for shebang lines on Windows...
run-tests: use the same python version for shebang lines on Windows The latest py3 is used if the minor number isn't specified. After running the script to install all of the build dependencies, that moved the default from 3.8 to 3.9 on the CI system. That in turn caused a bunch of tests to be skipped that were running prior, even when the test runner was invoked with `py -3.8`. While we should almost always use the latest version, we really shouldn't make it hard to test different versions or allow things to randomly break in subtle ways like that. Differential Revision: https://phab.mercurial-scm.org/D10702

File last commit:

r43346:2372284d default
r47953:6f976d54 default
Show More
revset.py
57 lines | 1.6 KiB | text/x-python | PythonLexer
Philippe Pepiot
perf: add asv benchmarks...
r30406 # revset.py - asv revset benchmarks
#
# Copyright 2016 Logilab SA <contact@logilab.fr>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
'''ASV revset benchmarks generated from contrib/base-revsets.txt
Each revset benchmark is parameterized with variants (first, last, sort, ...)
'''
from __future__ import absolute_import
import os
import string
import sys
from . import basedir, perfbench
Augie Fackler
formatting: blacken the codebase...
r43346
Philippe Pepiot
perf: add asv benchmarks...
r30406 def createrevsetbenchmark(baseset, variants=None):
if variants is None:
# Default variants
Augie Fackler
formatting: blacken the codebase...
r43346 variants = ["plain", "first", "last", "sort", "sort+first", "sort+last"]
fname = "track_" + "_".join(
"".join(
[c if c in string.digits + string.letters else " " for c in baseset]
).split()
)
Philippe Pepiot
perf: add asv benchmarks...
r30406
def wrap(fname, baseset):
@perfbench(name=baseset, params=[("variant", variants)])
def f(perf, variant):
revset = baseset
if variant != "plain":
for var in variant.split("+"):
revset = "%s(%s)" % (var, revset)
return perf("perfrevset", revset)
Augie Fackler
formatting: blacken the codebase...
r43346
Philippe Pepiot
perf: add asv benchmarks...
r30406 f.__name__ = fname
return f
Augie Fackler
formatting: blacken the codebase...
r43346
Philippe Pepiot
perf: add asv benchmarks...
r30406 return wrap(fname, baseset)
Augie Fackler
formatting: blacken the codebase...
r43346
Philippe Pepiot
perf: add asv benchmarks...
r30406 def initializerevsetbenchmarks():
mod = sys.modules[__name__]
Augie Fackler
formatting: blacken the codebase...
r43346 with open(os.path.join(basedir, 'contrib', 'base-revsets.txt'), 'rb') as fh:
Philippe Pepiot
perf: add asv benchmarks...
r30406 for line in fh:
baseset = line.strip()
if baseset and not baseset.startswith('#'):
func = createrevsetbenchmark(baseset)
setattr(mod, func.__name__, func)
Augie Fackler
formatting: blacken the codebase...
r43346
Philippe Pepiot
perf: add asv benchmarks...
r30406 initializerevsetbenchmarks()