tests/test-newercgi.t
author Patrick Mezard <pmezard@gmail.com>
Fri, 27 May 2011 21:50:09 +0200
changeset 14451 c78d41db6f88
parent 13269 aa3f726a2bdb
child 15567 8b84d040d9f9
permissions -rw-r--r--
patch: refactor file creation/removal detection The patcher has to know if a file is being created or removed to check if the target already exists, or to actually unlink the file when a hunk emptying it is applied. This was done by embedding the creation/removal information in the first (and only) hunk attached to the file. There are two problems with this approach: - creation/removal is really a property of the file being patched and not its hunk. - for regular patches, file creation cannot be deduced at parsing time: there are case where the *stripped* file paths must be compared. Modifying hunks after their creation is clumsy and prevent further refactorings related to copies handling. Instead, we delegate this job to selectfile() which has all the relevant information, and remove the hunk createfile() and rmfile() methods.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     1
This is a rudimentary test of the CGI files as of d74fc8dec2b4.
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     2
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     3
  $ hg init test
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
     4
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     5
  $ cat >hgweb.cgi <<HGWEB
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     6
  > #!/usr/bin/env python
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     7
  > #
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     8
  > # An example CGI script to use hgweb, edit as necessary
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
     9
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    10
  > import cgitb
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    11
  > cgitb.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    12
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    13
  > from mercurial import demandimport; demandimport.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    14
  > from mercurial.hgweb import hgweb
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    15
  > from mercurial.hgweb import wsgicgi
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    16
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    17
  > application = hgweb("test", "Empty test repository")
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    18
  > wsgicgi.launch(application)
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    19
  > HGWEB
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    20
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    21
  $ chmod 755 hgweb.cgi
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    22
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    23
  $ cat >hgweb.config <<HGWEBDIRCONF
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    24
  > [paths]
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    25
  > test = test
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    26
  > HGWEBDIRCONF
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    27
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    28
  $ cat >hgwebdir.cgi <<HGWEBDIR
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    29
  > #!/usr/bin/env python
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    30
  > #
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    31
  > # An example CGI script to export multiple hgweb repos, edit as necessary
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    32
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    33
  > import cgitb
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    34
  > cgitb.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    35
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    36
  > from mercurial import demandimport; demandimport.enable()
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    37
  > from mercurial.hgweb import hgwebdir
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    38
  > from mercurial.hgweb import wsgicgi
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    39
  > 
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    40
  > application = hgwebdir("hgweb.config")
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    41
  > wsgicgi.launch(application)
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    42
  > HGWEBDIR
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    43
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    44
  $ chmod 755 hgwebdir.cgi
5577
e0173902c813 CGI compatibility fix for d74fc8dec2b4.
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents:
diff changeset
    45
13269
aa3f726a2bdb tests: remove duplication of the CGI environment variables
StevenGBrown
parents: 12471
diff changeset
    46
  $ . "$TESTDIR/cgienv"
12471
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    47
  $ python hgweb.cgi > page1
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    48
  $ python hgwebdir.cgi > page2
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    49
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    50
  $ PATH_INFO="/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    51
  $ PATH_TRANSLATED="/var/something/test.cgi"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    52
  $ REQUEST_URI="/test/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    53
  $ SCRIPT_URI="http://hg.omnifarious.org/test/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    54
  $ SCRIPT_URL="/test/test/"
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    55
  $ python hgwebdir.cgi > page3
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    56
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    57
  $ grep -i error page1 page2 page3
d86dc8b1ffc3 tests: unify test-newercgi
Matt Mackall <mpm@selenic.com>
parents: 5580
diff changeset
    58
  [1]