view tests/test-worker.t @ 31763:8a0c47982ade

test-revlog-raw: fix "genbits" implementation The "genbits" implementation is actually incorrect. This patch fixes it. A good "genbits" implementation should pass the below assertion: n = 3 # or other number l = list(genbits(n)) assert 2**(n*2) == len(set((l[i]<<n)+l[i+1] for i in range(len(l)-1))) An assertion is added to make sure "genbits" won't work unexpectedly.
author Jun Wu <quark@fb.com>
date Sun, 02 Apr 2017 18:12:47 -0700
parents 9d3d56aa1a9f
children 38963a53ab0d
line wrap: on
line source

Test UI worker interaction

  $ cat > t.py <<EOF
  > from __future__ import absolute_import, print_function
  > from mercurial import (
  >     cmdutil,
  >     ui as uimod,
  >     worker,
  > )
  > def runme(ui, args):
  >     for arg in args:
  >         ui.status('run\n')
  >         yield 1, arg
  > cmdtable = {}
  > command = cmdutil.command(cmdtable)
  > @command('test', [], 'hg test [COST]')
  > def t(ui, repo, cost=1.0):
  >     cost = float(cost)
  >     ui.status('start\n')
  >     runs = worker.worker(ui, cost, runme, (ui,), range(8))
  >     for n, i in runs:
  >         pass
  >     ui.status('done\n')
  > EOF
  $ abspath=`pwd`/t.py
  $ hg init

Run tests with worker enable by forcing a heigh cost

  $ hg --config "extensions.t=$abspath" test 100000.0
  start
  run
  run
  run
  run
  run
  run
  run
  run
  done

Run tests without worker by forcing a low cost

  $ hg --config "extensions.t=$abspath" test 0.0000001
  start
  run
  run
  run
  run
  run
  run
  run
  run
  done