tests/test-hgweb-no-request-uri.t
author Gregory Szorc <gregory.szorc@gmail.com>
Tue, 28 Aug 2018 15:02:48 -0700
changeset 39411 aeb551a3bb8a
parent 33720 27fb986e54d0
child 39660 a12916cfef9e
permissions -rw-r--r--
cborutil: implement sans I/O decoder The vendored CBOR package decodes by calling read(n) on an object. There are a number of disadvantages to this: * Uses blocking I/O. If sufficient data is not available, the decoder will hang until it is. * No support for partial reads. If the read(n) returns less data than requested, the decoder raises an error. * Requires the use of a file like object. If the original data is in say a buffer, we need to "cast" it to e.g. a BytesIO to appease the decoder. In addition, the vendored CBOR decoder doesn't provide flexibility that we desire. Specifically: * It buffers indefinite length bytestrings instead of streaming them. * It doesn't allow limiting the set of types that can be decoded. This property is useful when implementing a "hardened" decoder that is less susceptible to abusive input. * It doesn't provide sufficient "hook points" and introspection to institute checks around behavior. These are useful for implementing a "hardened" decoder. This all adds up to a reasonable set of justifications for writing our own decoder. So, this commit implements our own CBOR decoder. At the heart of the decoder is a function that decodes a single "item" from a buffer. This item can be a complete simple value or a special value, such as "start of array." Using this function, we can build a decoder that effectively iterates over the stream of decoded items and builds up higher-level values, such as arrays, maps, sets, and indefinite length bytestrings. And we can do this without performing I/O in the decoder itself. The core of the sans I/O decoder will probably not be used directly. Instead, it is expected that we'll build utility functions for invoking the decoder given specific input types. This will allow extreme flexibility in how data is delivered to the decoder. I'm pretty happy with the state of the decoder modulo the TODO items to track wanted features to help with a "hardened" decoder. The one thing I could be convinced to change is the handling of semantic tags. Since we only support a single semantic tag (sets), I thought it would be easier to handle them inline in decodeitem(). This is simpler now. But if we add support for other semantic tags, it will likely be easier to move semantic tag handling outside of decodeitem(). But, properly supporting semantic tags opens up a whole can of worms, as many semantic tags imply new types. I'm optimistic we won't need these in Mercurial. But who knows. I'm also pretty happy with the test coverage. Writing comprehensive tests for partial decoding did flush out a handful of bugs. One general improvement to testing would be fuzz testing for partial decoding. I may implement that later. I also anticipate switching the wire protocol code to this new decoder will flush out any lingering bugs. Differential Revision: https://phab.mercurial-scm.org/D4414
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     1
This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     2
no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     3
should be used from d74fc8dec2b4 onward to route the request.
5579
e15f7db0f0ee Use SCRIPT_NAME and PATH_INFO instead of REQUEST_URI. This is required by WSGI (fixes issue846).
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     4
13956
ffb5c09ba822 tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents: 12743
diff changeset
     5
  $ hg init repo
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     6
  $ cd repo
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     7
  $ echo foo > bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     8
  $ hg add bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
     9
  $ hg commit -m "test"
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    10
  $ hg tip
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    11
  changeset:   0:61c9426e69fe
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    12
  tag:         tip
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    13
  user:        test
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    14
  date:        Thu Jan 01 00:00:00 1970 +0000
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    15
  summary:     test
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    16
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    17
  $ cat > request.py <<EOF
28858
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    18
  > from __future__ import absolute_import
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    19
  > import os
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    20
  > import sys
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    21
  > from mercurial.hgweb import (
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    22
  >     hgweb,
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    23
  >     hgwebdir,
ba7809b053fd py3: use absolute_import in test-hgweb-no-request-uri.t
timeless <timeless@mozdev.org>
parents: 21117
diff changeset
    24
  > )
28861
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    25
  > from mercurial import (
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    26
  >     util,
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    27
  > )
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    28
  > stringio = util.stringio
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    29
  > 
28861
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    30
  > errors = stringio()
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    31
  > input = stringio()
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    32
  > 
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    33
  > def startrsp(status, headers):
33720
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    34
  >     print('---- STATUS')
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    35
  >     print(status)
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    36
  >     print('---- HEADERS')
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    37
  >     print([i for i in headers if i[0] != 'ETag'])
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    38
  >     print('---- DATA')
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    39
  >     return output.write
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    40
  > 
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    41
  > env = {
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    42
  >     'wsgi.version': (1, 0),
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    43
  >     'wsgi.url_scheme': 'http',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    44
  >     'wsgi.errors': errors,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    45
  >     'wsgi.input': input,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    46
  >     'wsgi.multithread': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    47
  >     'wsgi.multiprocess': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    48
  >     'wsgi.run_once': False,
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    49
  >     'REQUEST_METHOD': 'GET',
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    50
  >     'SCRIPT_NAME': '',
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 29519
diff changeset
    51
  >     'SERVER_NAME': '$LOCALIP',
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    52
  >     'SERVER_PORT': os.environ['HGPORT'],
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    53
  >     'SERVER_PROTOCOL': 'HTTP/1.0'
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    54
  > }
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    55
  > 
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    56
  > def process(app):
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    57
  >     content = app(env, startrsp)
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    58
  >     sys.stdout.write(output.getvalue())
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    59
  >     sys.stdout.write(''.join(content))
18646
c6a81e54c209 hgweb: make the test suite use hgweb in a more WSGI compliant way
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
    60
  >     getattr(content, 'close', lambda : None)()
33720
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    61
  >     print('---- ERRORS')
27fb986e54d0 tests: fix simple heredoc print statements to work on Py3
Augie Fackler <augie@google.com>
parents: 32940
diff changeset
    62
  >     print(errors.getvalue())
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    63
  > 
28861
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    64
  > output = stringio()
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    65
  > env['PATH_INFO'] = '/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    66
  > env['QUERY_STRING'] = 'style=atom'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    67
  > process(hgweb('.', name = 'repo'))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    68
  > 
28861
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    69
  > output = stringio()
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    70
  > env['PATH_INFO'] = '/file/tip/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    71
  > env['QUERY_STRING'] = 'style=raw'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    72
  > process(hgweb('.', name = 'repo'))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    73
  > 
28861
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    74
  > output = stringio()
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    75
  > env['PATH_INFO'] = '/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    76
  > env['QUERY_STRING'] = 'style=raw'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    77
  > process(hgwebdir({'repo': '.'}))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    78
  > 
28861
86db5cb55d46 pycompat: switch to util.stringio for py3 compat
timeless <timeless@mozdev.org>
parents: 28858
diff changeset
    79
  > output = stringio()
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    80
  > env['PATH_INFO'] = '/repo/file/tip/'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    81
  > env['QUERY_STRING'] = 'style=raw'
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    82
  > process(hgwebdir({'repo': '.'}))
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    83
  > EOF
32940
75be14993fda cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents: 31008
diff changeset
    84
  $ $PYTHON request.py
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    85
  ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    86
  200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    87
  ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    88
  [('Content-Type', 'application/atom+xml; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    89
  ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    90
  <?xml version="1.0" encoding="ascii"?>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    91
  <feed xmlns="http://www.w3.org/2005/Atom">
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    92
   <!-- Changelog -->
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 29519
diff changeset
    93
   <id>http://$LOCALIP:$HGPORT/</id> (glob)
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 29519
diff changeset
    94
   <link rel="self" href="http://$LOCALIP:$HGPORT/atom-log"/> (glob)
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 29519
diff changeset
    95
   <link rel="alternate" href="http://$LOCALIP:$HGPORT/"/> (glob)
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    96
   <title>repo Changelog</title>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    97
   <updated>1970-01-01T00:00:00+00:00</updated>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    98
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
    99
   <entry>
21056
d70703954a2a hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
Aaron Jensen <ajensen@webmd.net>
parents: 18646
diff changeset
   100
    <title>[default] test</title>
31008
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 29519
diff changeset
   101
    <id>http://$LOCALIP:$HGPORT/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id> (glob)
636cf3f7620d tests: use LOCALIP
Jun Wu <quark@fb.com>
parents: 29519
diff changeset
   102
    <link href="http://$LOCALIP:$HGPORT/rev/61c9426e69fe"/> (glob)
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   103
    <author>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   104
     <name>test</name>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   105
     <email>&#116;&#101;&#115;&#116;</email>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   106
    </author>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   107
    <updated>1970-01-01T00:00:00+00:00</updated>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   108
    <published>1970-01-01T00:00:00+00:00</published>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   109
    <content type="xhtml">
29439
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   110
     <table xmlns="http://www.w3.org/1999/xhtml">
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   111
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   112
       <th style="text-align:left;">changeset</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   113
       <td>61c9426e69fe</td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   114
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   115
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   116
       <th style="text-align:left;">branch</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   117
       <td>default</td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   118
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   119
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   120
       <th style="text-align:left;">bookmark</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   121
       <td></td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   122
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   123
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   124
       <th style="text-align:left;">tag</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   125
       <td>tip</td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   126
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   127
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   128
       <th style="text-align:left;">user</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   129
       <td>&#116;&#101;&#115;&#116;</td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   130
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   131
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   132
       <th style="text-align:left;vertical-align:top;">description</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   133
       <td>test</td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   134
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   135
      <tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   136
       <th style="text-align:left;vertical-align:top;">files</th>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   137
       <td>bar<br /></td>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   138
      </tr>
c42a3fd5c1fc hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net>
parents: 28861
diff changeset
   139
     </table>
12439
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   140
    </content>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   141
   </entry>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   142
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   143
  </feed>
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   144
  ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   145
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   146
  ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   147
  200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   148
  ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   149
  [('Content-Type', 'text/plain; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   150
  ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   151
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   152
  -rw-r--r-- 4 bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   153
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   154
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   155
  ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   156
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   157
  ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   158
  200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   159
  ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   160
  [('Content-Type', 'text/plain; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   161
  ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   162
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   163
  /repo/
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   164
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   165
  ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   166
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   167
  ---- STATUS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   168
  200 Script output follows
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   169
  ---- HEADERS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   170
  [('Content-Type', 'text/plain; charset=ascii')]
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   171
  ---- DATA
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   172
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   173
  -rw-r--r-- 4 bar
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   174
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   175
  
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   176
  ---- ERRORS
31ea3ce83a92 tests: unify test-hgweb-no-request-uri
Matt Mackall <mpm@selenic.com>
parents: 12183
diff changeset
   177
  
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   178
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
   179
  $ cd ..