tests/test-patch-offset.t
author Manuel Jacob <me@manueljacob.de>
Tue, 07 Jul 2020 11:06:37 +0200
changeset 45068 8cd18aba5e6c
parent 41738 c70bdd222dcd
permissions -rw-r--r--
tests: proof test-stdio.py against buffer fill-up With the previous code, it could in theory happen that the pipe / PTY buffer of the child stdout / stderr fills up and the process never finishes. To prevent that, we read all of the stream before waiting for the end of the process. To ensure that the stream reaches EOF when the child finishes, we must close the parent "copy" of the child stdout / stderr.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
     1
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     2
  $ cat > writepatterns.py <<EOF
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     3
  > import sys
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     4
  > 
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     5
  > path = sys.argv[1]
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     6
  > patterns = sys.argv[2:]
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     7
  > 
36020
bfc9ab6c1bec py3: replace file() with open() in test-patch-offset.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32940
diff changeset
     8
  > fp = open(path, 'wb')
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
     9
  > for pattern in patterns:
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    10
  >     count = int(pattern[0:-1])
38365
bf953d218a91 py3: encode sys.argv to bytes using .encode()
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36020
diff changeset
    11
  >     char = pattern[-1].encode('utf8') + b'\n'
41738
c70bdd222dcd tests: bulk changes to avoid whitespace errors of check-code.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 39707
diff changeset
    12
  >     fp.write(char * count)
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    13
  > fp.close()
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    14
  > EOF
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    15
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    16
prepare repo
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    17
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    18
  $ hg init a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    19
  $ cd a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    20
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    21
These initial lines of Xs were not in the original file used to generate
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    22
the patch.  So all the patch hunks need to be applied to a constant offset
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    23
within this file.  If the offset isn't tracked then the hunks can be
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    24
applied to the wrong lines of this file.
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    25
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
    26
  $ "$PYTHON" ../writepatterns.py a 34X 10A 1B 10A 1C 10A 1B 10A 1D 10A 1B 10A 1E 10A 1B 10A
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    27
  $ hg commit -Am adda
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    28
  adding a
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    29
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    30
This is a cleaner patch generated via diff
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    31
In this case it reproduces the problem when
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    32
the output of hg export does not
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    33
import patch
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    34
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    35
  $ hg import -v -m 'b' -d '2 0' - <<EOF
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    36
  > --- a/a	2009-12-08 19:26:17.000000000 -0800
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    37
  > +++ b/a	2009-12-08 19:26:17.000000000 -0800
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    38
  > @@ -9,7 +9,7 @@
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    39
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    40
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    41
  >  B
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    42
  > -A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    43
  > +a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    44
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    45
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    46
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    47
  > @@ -53,7 +53,7 @@
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    48
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    49
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    50
  >  B
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    51
  > -A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    52
  > +a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    53
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    54
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    55
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    56
  > @@ -75,7 +75,7 @@
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    57
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    58
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    59
  >  B
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    60
  > -A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    61
  > +a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    62
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    63
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    64
  >  A
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    65
  > EOF
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    66
  applying patch from stdin
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    67
  patching file a
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    68
  Hunk #1 succeeded at 43 (offset 34 lines).
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    69
  Hunk #2 succeeded at 87 (offset 34 lines).
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    70
  Hunk #3 succeeded at 109 (offset 34 lines).
23749
a387b0390082 localrepo: show headline notes in commitctx before showing filenames
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    71
  committing files:
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    72
  a
23749
a387b0390082 localrepo: show headline notes in commitctx before showing filenames
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    73
  committing manifest
a387b0390082 localrepo: show headline notes in commitctx before showing filenames
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
    74
  committing changelog
15194
0705f2ac79d6 import: simplify status reporting logic (and make it more I18N-friendly)
Greg Ward <greg@gerg.ca>
parents: 12477
diff changeset
    75
  created 189885cecb41
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    76
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    77
compare imported changes against reference file
10135
9a4034b630c4 patch: better handling of sequence of offset patch hunks (issue1941)
Greg Onufer <gonufer@jazzhaiku.com>
parents:
diff changeset
    78
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
    79
  $ "$PYTHON" ../writepatterns.py aref 34X 10A 1B 1a 9A 1C 10A 1B 10A 1D 10A 1B 1a 9A 1E 10A 1B 1a 9A
12477
e68cd3a90599 tests: unify test-patch-offset
Matt Mackall <mpm@selenic.com>
parents: 10265
diff changeset
    80
  $ diff aref a
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15194
diff changeset
    81
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15194
diff changeset
    82
  $ cd ..