Mercurial > hg
annotate tests/test-custom-filters.t @ 23860:bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
This tool is like the collection of tools found in a unix environment but are
cross platform and stable and suitable for our needs in the test suite.
The main reason it is "needed" now is for hexdump of revision branch cache to
keep an eye on how it changes and make sure the format is stable.
It is a very generic tool that can end up being used a lot in tests, so I gave
it very generic name.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 14 Jan 2015 01:15:26 +0100 |
parents | 4134686b83e1 |
children | 56b2bcea2529 |
rev | line source |
---|---|
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
1 $ hg init |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
2 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
3 $ cat > .hg/hgrc <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
4 > [extensions] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
5 > prefixfilter = prefix.py |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
6 > [encode] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
7 > *.txt = stripprefix: Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
8 > [decode] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
9 > *.txt = insertprefix: Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
10 > EOF |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
11 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
12 $ cat > prefix.py <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
13 > from mercurial import util |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
14 > def stripprefix(s, cmd, filename, **kwargs): |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
15 > header = '%s\n' % cmd |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
16 > if s[:len(header)] != header: |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
17 > raise util.Abort('missing header "%s" in %s' % (cmd, filename)) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
18 > return s[len(header):] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
19 > def insertprefix(s, cmd): |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
20 > return '%s\n%s' % (cmd, s) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
21 > def reposetup(ui, repo): |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
22 > repo.adddatafilter('stripprefix:', stripprefix) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
23 > repo.adddatafilter('insertprefix:', insertprefix) |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
24 > EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
25 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
26 $ cat > .hgignore <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
27 > .hgignore |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
28 > prefix.py |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
29 > prefix.pyc |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
30 > EOF |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
31 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
32 $ cat > stuff.txt <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
33 > Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
34 > Some stuff to ponder very carefully. |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
35 > EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
36 $ hg add stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
37 $ hg ci -m stuff |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
38 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
39 Repository data: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
40 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
41 $ hg cat stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
42 Some stuff to ponder very carefully. |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
43 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
44 Fresh checkout: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
45 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
46 $ rm stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
47 $ hg up -C |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
49 $ cat stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
50 Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
51 Some stuff to ponder very carefully. |
12125
e5ccb9ea8266
test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12124
diff
changeset
|
52 $ echo "Very very carefully." >> stuff.txt |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
53 $ hg stat |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
54 M stuff.txt |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
55 |
12125
e5ccb9ea8266
test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12124
diff
changeset
|
56 $ echo "Unauthorized material subject to destruction." > morestuff.txt |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
57 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
58 Problem encoding: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
59 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
60 $ hg add morestuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
61 $ hg ci -m morestuff |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
62 abort: missing header "Copyright 2046, The Masters" in morestuff.txt |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12125
diff
changeset
|
63 [255] |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
64 $ hg stat |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
65 M stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
66 A morestuff.txt |