tests/test-websub.t
author Bryan O'Sullivan <bryano@fb.com>
Tue, 11 Apr 2017 14:54:12 -0700
changeset 31956 c13ff31818b0
parent 25472 4d2b9b304ad0
child 42919 6ccf539aec71
permissions -rw-r--r--
ui: add special-purpose atexit functionality In spite of its longstanding use, Python's built-in atexit code is not suitable for Mercurial's purposes, for several reasons: * Handlers run after application code has finished. * Because of this, the code that runs handlers swallows exceptions (since there's no possible stacktrace to associate errors with). If we're lucky, we'll get something spat out to stderr (if stderr still works), which of course isn't any use in a big deployment where it's important that exceptions get logged and aggregated. * Mercurial's current atexit handlers make unfortunate assumptions about process state (specifically stdio) that, coupled with the above problems, make it impossible to deal with certain categories of error (try "hg status > /dev/full" on a Linux box). * In Python 3, the atexit implementation is completely hidden, so we can't hijack the platform's atexit code to run handlers at a time of our choosing. As a result, here's a perfectly cromulent atexit-like implementation over which we have control. This lets us decide exactly when the handlers run (after each request has completed), and control what the process state is when that occurs (and afterwards).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 18629
diff changeset
     1
#require serve
15446
c5c9ca3719f9 tests: use 'hghave serve' to guard tests that requires serve daemon management
Mads Kiilerich <mads@kiilerich.com>
parents: 12126
diff changeset
     2
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
     3
  $ hg init test
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
     4
  $ cd test
10473
634b0e7561ec test-interhg: test the extension
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     5
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
     6
  $ cat > .hg/hgrc <<EOF
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
     7
  > [extensions]
18629
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
     8
  > # this is only necessary to check that the mapping from
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
     9
  > # interhg to websub works
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    10
  > interhg =
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    11
  > 
18629
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
    12
  > [websub]
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
    13
  > issues = s|Issue(\d+)|<a href="http://bts.example.org/issue\1">Issue\1</a>|
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
    14
  > 
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    15
  > [interhg]
18629
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
    16
  > # check that we maintain some interhg backwards compatibility...
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    17
  > # yes, 'x' is a weird delimiter...
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    18
  > markbugs = sxbugx<i class="\x">bug</i>x
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    19
  > EOF
10473
634b0e7561ec test-interhg: test the extension
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    20
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    21
  $ touch foo
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    22
  $ hg add foo
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    23
  $ hg commit -d '1 0' -m 'Issue123: fixed the bug!'
10473
634b0e7561ec test-interhg: test the extension
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    24
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    25
  $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    26
  $ cat hg.pid >> $DAEMON_PIDS
10473
634b0e7561ec test-interhg: test the extension
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    27
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    28
log
10473
634b0e7561ec test-interhg: test the extension
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    29
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 22046
diff changeset
    30
  $ get-with-headers.py localhost:$HGPORT "rev/tip" | grep bts
18629
013fcd112f13 extensions: obsolete and remove interhg extension
Angel Ezquerra <angel.ezquerra@gmail.com>
parents: 17017
diff changeset
    31
  <div class="description"><a href="http://bts.example.org/issue123">Issue123</a>: fixed the <i class="x">bug</i>!</div>
12126
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    32
errors
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    33
779098953457 tests: unify test-interhg
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 10473
diff changeset
    34
  $ cat errors.log
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15446
diff changeset
    35
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15446
diff changeset
    36
  $ cd ..