tests/test-pull-http.t
author Manuel Jacob <me@manueljacob.de>
Sun, 22 May 2022 03:50:34 +0200
changeset 49269 395f28064826
parent 37845 b4b7427b5786
permissions -rw-r--r--
worker: avoid potential partial write of pickled data Previously, the code wrote the pickled data using os.write(). However, os.write() can write less bytes than passed to it. To trigger the problem, the pickled data had to be larger than 2147479552 bytes on my system. Instead, open a file object and pass it to pickle.dump(). This also has the advantage that it doesn’t buffer the whole pickled data in memory. Note that the opened file must be buffered because pickle doesn’t support unbuffered streams because unbuffered streams’ write() method might write less bytes than passed to it (like os.write()) but pickle.dump() relies on that all bytes are written (see https://github.com/python/cpython/issues/93050). The side effect of using a file object and a with statement is that wfd is explicitly closed now while it seems like before it was implicitly closed by process exit.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37588
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     1
#if no-windows
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     2
For debugging: this is a pretty simple test that is a good candidate
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     3
for tracking down network-related bugs. Sometimes a command in this
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     4
hangs, so having showstack pre-loaded is sometimes helpful. This also
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     5
gives us a test that at least proves showstack can be loaded.
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     6
  $ cat >> $HGRCPATH <<EOF
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     7
  > [extensions]
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     8
  > showstack = $TESTDIR/../contrib/showstack.py
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
     9
  > EOF
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
    10
#endif
165a77f7ec13 tests: load showstack in test-pull-http.t so network hangs are easier to find
Augie Fackler <augie@google.com>
parents: 36754
diff changeset
    11
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    12
  $ hg init test
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    13
  $ cd test
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    14
  $ echo a > a
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    15
  $ hg ci -Ama
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    16
  adding a
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    17
  $ cd ..
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    18
  $ hg clone test test2
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    19
  updating to branch default
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    20
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    21
  $ cd test2
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    22
  $ echo a >> a
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    23
  $ hg ci -mb
2481
5c65b4e51610 add tests for push over http.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    24
15552
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    25
Cloning with a password in the URL should not save the password in .hg/hgrc:
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    26
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    27
  $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    28
  $ cat hg.pid >> $DAEMON_PIDS
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    29
  $ hg clone http://foo:xyzzy@localhost:$HGPORT/ test3
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    30
  requesting all changes
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    31
  adding changesets
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    32
  adding manifests
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    33
  adding file changes
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    34
  added 2 changesets with 2 changes to 1 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 31064
diff changeset
    35
  new changesets cb9a9f314b8b:ba677d0156c1
15552
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    36
  updating to branch default
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    37
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    38
  $ cat test3/.hg/hgrc
29978
3d2ea1403c62 samplehgrcs: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29688
diff changeset
    39
  # example repository config (see 'hg help config' for more info)
15552
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    40
  [paths]
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    41
  default = http://foo@localhost:$HGPORT/
22837
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    42
  
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    43
  # path aliases to other clones of this repo in URLs or filesystem paths
29978
3d2ea1403c62 samplehgrcs: use single quotes in use warning
timeless <timeless@mozdev.org>
parents: 29688
diff changeset
    44
  # (see 'hg help config.paths' for more info)
22837
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    45
  #
31064
4431add9aef9 ui: replace obsolete default-push with default:pushurl (issue5485)
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 29978
diff changeset
    46
  # default:pushurl = ssh://jdoe@example.net/hg/jdoes-fork
4431add9aef9 ui: replace obsolete default-push with default:pushurl (issue5485)
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 29978
diff changeset
    47
  # my-fork         = ssh://jdoe@example.net/hg/jdoes-fork
4431add9aef9 ui: replace obsolete default-push with default:pushurl (issue5485)
Rishabh Madan <rishabhmadan96@gmail.com>
parents: 29978
diff changeset
    48
  # my-clone        = /home/jdoe/jdoes-clone
22837
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    49
  
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    50
  [ui]
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    51
  # name and email (local to this repository, optional), e.g.
2be7d5ebd4d0 config: use the same hgrc for a cloned repo as for an uninitted repo
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 22645
diff changeset
    52
  # username = Jane Doe <jdoe@example.com>
25474
8c14f87bd0ae tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    53
  $ killdaemons.py
15552
62c9183a0bbb clone: don't save user's password in .hg/hgrc (Issue3122)
Augie Fackler <durin42@gmail.com>
parents: 13405
diff changeset
    54
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    55
expect error, cloning not allowed
2481
5c65b4e51610 add tests for push over http.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    56
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    57
  $ echo '[web]' > .hg/hgrc
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    58
  $ echo 'allowpull = false' >> .hg/hgrc
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    59
  $ hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    60
  $ cat hg.pid >> $DAEMON_PIDS
29688
30c59bdd4f41 tests: remove all remaining usage of experimental.bundle2-exp
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29687
diff changeset
    61
  $ hg clone http://localhost:$HGPORT/ test4 # bundle2+
25372
df723a2655e9 test: use both bundle formats in test-pull-http
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22837
diff changeset
    62
  abort: authorization failed
df723a2655e9 test: use both bundle formats in test-pull-http
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22837
diff changeset
    63
  [255]
29687
ac9b85079122 tests: use 'legacy.exchange' option in various mixed tests
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 25474
diff changeset
    64
  $ hg clone http://localhost:$HGPORT/ test4 --config devel.legacy.exchange=bundle1
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    65
  abort: authorization failed
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    66
  [255]
25474
8c14f87bd0ae tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com>
parents: 25472
diff changeset
    67
  $ killdaemons.py
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    68
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    69
serve errors
6778
959efdac4a9c tests: add some tests for web.allowpull configurations
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6167
diff changeset
    70
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    71
  $ cat errors.log
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    72
  $ req() {
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    73
  >     hg serve -p $HGPORT -d --pid-file=hg.pid -E errors.log
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    74
  >     cat hg.pid >> $DAEMON_PIDS
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    75
  >     hg --cwd ../test pull http://localhost:$HGPORT/
25472
4d2b9b304ad0 tests: drop explicit $TESTDIR from executables
Matt Mackall <mpm@selenic.com>
parents: 25405
diff changeset
    76
  >     killdaemons.py hg.pid
12743
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    77
  >     echo % serve errors
4c4aeaab2339 check-code: add 'no tab indent' check for unified tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 12643
diff changeset
    78
  >     cat errors.log
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    79
  > }
6167
f53b9a383476 tests: easier hg serve error diagnosis
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 5386
diff changeset
    80
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    81
expect error, pulling not allowed
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    82
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    83
  $ req
12643
d08bb64888bc tests: reintroduce ":$HGPORT" in test output
Mads Kiilerich <mads@kiilerich.com>
parents: 12480
diff changeset
    84
  pulling from http://localhost:$HGPORT/
12480
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    85
  abort: authorization failed
4a5048c359d7 tests: unify test-pull-http
Matt Mackall <mpm@selenic.com>
parents: 10398
diff changeset
    86
  % serve errors
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15555
diff changeset
    87
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15555
diff changeset
    88
  $ cd ..