annotate tests/test-custom-filters.t @ 17963:6180dcb29ec5 stable

hooks: delay I/O redirection until we actually run a hook (issue3711) We were attempting to redirect I/O even if no hook was actually getting called. This defers redirection until we've found something to do.
author Matt Mackall <mpm@selenic.com>
date Mon, 26 Nov 2012 16:14:22 -0600
parents 4134686b83e1
children 56b2bcea2529
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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