tests/test-worker.t
author Jun Wu <quark@fb.com>
Thu, 06 Apr 2017 17:01:58 -0700
changeset 31831 1da9b2a4cbb8
parent 31696 9d3d56aa1a9f
child 32041 38963a53ab0d
permissions -rw-r--r--
bundle: allow bundle command to use changegroup3 in tests Since bundle2 writes changegroup version, we can just reuse the bundle2 format for changegroup3. This won't enable the bundle command to write changegroup3 in the wild, since exchange.parsebundlespec only returns changegroup2. It unlocks tests to override exchange.parsebundlespec and get "hg bundle" write changegroup3.

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