Mercurial > hg
annotate tests/test-casecollision.t @ 31454:a5bad127128d
branchmap: handle nullrev in setcachedata
906be86990 recently changed to switch from:
self._rbcrevs[rbcrevidx:rbcrevidx + _rbcrecsize] = rec
to
pack_into(_rbcrecfmt, self._rbcrevs, rbcrevidx, node, branchidx)
This causes an exception if rbcrevidx is -1 (i.e. the nullrev). The old code
handled this because python handles out of bound sets to arrays gracefully. The
new code throws because the self._rbcrevs buffer isn't long enough to write 8
bytes to. Normally it would've been resized by the immediately preceding line,
but because the 0 length buffer is greater than the idx (-1) times the size, no
resize happens.
Setting the branch for the nullrev doesn't make sense anyway, so let's skip it.
This was caught by external tests in the Facebook extensions repo, but I've
added a test here that catches the issue.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 15 Mar 2017 15:48:57 -0700 |
parents | 7a9cbb315d84 |
children | 0b8e076e878c |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17096
diff
changeset
|
1 #require no-icasefs |
14068
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
2 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
3 test file addition with colliding case |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
4 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
5 $ hg init repo1 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
6 $ cd repo1 |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
7 $ echo a > a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
8 $ echo A > A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
9 $ hg add a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
10 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
11 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
12 ? A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
13 $ hg add --config ui.portablefilenames=abort A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
14 abort: possible case-folding collision for A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
15 [255] |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
16 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
17 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
18 ? A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
19 $ hg add A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
20 warning: possible case-folding collision for A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
21 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
22 A A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
23 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
24 $ hg forget A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
25 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
26 A a |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
27 ? A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
28 $ hg add --config ui.portablefilenames=no A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
29 $ hg st |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
30 A A |
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
31 A a |
17096
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
32 $ mkdir b |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
33 $ touch b/c b/D |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
34 $ hg add b |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
35 adding b/D |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
36 adding b/c |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
37 $ touch b/d b/C |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
38 $ hg add b/C |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
39 warning: possible case-folding collision for b/C |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
40 $ hg add b/d |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
41 warning: possible case-folding collision for b/d |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
42 $ touch b/a1 b/a2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
43 $ hg add b |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
44 adding b/a1 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
45 adding b/a2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
46 $ touch b/A2 b/a1.1 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
47 $ hg add b/a1.1 b/A2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
48 warning: possible case-folding collision for b/A2 |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
49 $ touch b/f b/F |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
50 $ hg add b/f b/F |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
51 warning: possible case-folding collision for b/f |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
52 $ touch g G |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
53 $ hg add g G |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
54 warning: possible case-folding collision for g |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
55 $ mkdir h H |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
56 $ touch h/x H/x |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
57 $ hg add h/x H/x |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
58 warning: possible case-folding collision for h/x |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
59 $ touch h/s H/s |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
60 $ hg add h/s |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
61 $ hg add H/s |
14e44933d175
casecollision: add tests
Joshua Redstone <joshua.redstone@fb.com>
parents:
14178
diff
changeset
|
62 warning: possible case-folding collision for H/s |
14178
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
63 |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
64 case changing rename must not warn or abort |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
65 |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
66 $ echo c > c |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
67 $ hg ci -qAmx |
524c560e2d32
test-casecollision.t: add test for case changing rename
Adrian Buehlmann <adrian@cadifra.com>
parents:
14068
diff
changeset
|
68 $ hg mv c C |
14068
04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
Kevin Gessner <kevin@kevingessner.com>
parents:
diff
changeset
|
69 $ cd .. |