comparison tests/test-run-tests.t @ 21926:6c36dc6cd61a stable 3.1-rc

merge default into stable for 3.1 code freeze
author Matt Mackall <mpm@selenic.com>
date Sat, 19 Jul 2014 00:10:22 -0500
parents 8a2dfac89ad6 84cd5ee787ed
children 4ca4e1572022 706b91f6dd0e
comparison
equal deleted inserted replaced
21876:584bbfd1b50d 21926:6c36dc6cd61a
1 Simple commands: 1 This file tests the behavior of run-tests.py itself.
2 2
3 $ echo foo 3 Smoke test
4 foo 4 ============
5 $ printf 'oh no' 5
6 oh no (no-eol) 6 $ $TESTDIR/run-tests.py
7 $ printf 'bar\nbaz\n' | cat 7
8 bar 8 # Ran 0 tests, 0 skipped, 0 warned, 0 failed.
9 baz 9
10 10 a succesful test
11 Multi-line command: 11 =======================
12 12
13 $ foo() { 13 $ cat > test-success.t << EOF
14 > echo bar 14 > $ echo babar
15 > } 15 > babar
16 $ foo 16 > EOF
17 bar 17
18 18 $ $TESTDIR/run-tests.py --with-hg=`which hg`
19 Return codes before inline python: 19 .
20 20 # Ran 1 tests, 0 skipped, 0 warned, 0 failed.
21 $ sh -c 'exit 1' 21
22 [1] 22 failing test
23 23 ==================
24 Doctest commands: 24
25 25 $ cat > test-failure.t << EOF
26 >>> print 'foo' 26 > $ echo babar
27 foo 27 > rataxes
28 $ echo interleaved 28 > EOF
29 interleaved 29
30 >>> for c in 'xyz': 30 $ $TESTDIR/run-tests.py --with-hg=`which hg`
31 ... print c 31
32 x 32 --- $TESTTMP/test-failure.t
33 y 33 +++ $TESTTMP/test-failure.t.err
34 z 34 @@ -1,2 +1,2 @@
35 >>> print 35 $ echo babar
36 36 - rataxes
37 37 + babar
38 Regular expressions: 38
39 39 ERROR: test-failure.t output changed
40 $ echo foobarbaz 40 !.
41 foobar.* (re) 41 Failed test-failure.t: output changed
42 $ echo barbazquux 42 # Ran 2 tests, 0 skipped, 0 warned, 1 failed.
43 .*quux.* (re) 43 python hash seed: * (glob)
44 44 [1]
45 Globs: 45
46 46 test for --retest
47 $ printf '* \\foobarbaz {10}\n' 47 ====================
48 \* \\fo?bar* {10} (glob) 48
49 49 $ $TESTDIR/run-tests.py --with-hg=`which hg` --retest
50 Literal match ending in " (re)": 50
51 51 --- $TESTTMP/test-failure.t
52 $ echo 'foo (re)' 52 +++ $TESTTMP/test-failure.t.err
53 foo (re) 53 @@ -1,2 +1,2 @@
54 54 $ echo babar
55 Windows: \r\n is handled like \n and can be escaped: 55 - rataxes
56 56 + babar
57 #if windows 57
58 $ printf 'crlf\r\ncr\r\tcrlf\r\ncrlf\r\n' 58 ERROR: test-failure.t output changed
59 crlf 59 !
60 cr\r (no-eol) (esc) 60 Failed test-failure.t: output changed
61 \tcrlf (esc) 61 # Ran 1 tests, 1 skipped, 0 warned, 1 failed.
62 crlf\r (esc) 62 python hash seed: * (glob)
63 #endif 63 [1]
64 64
65 Combining esc with other markups - and handling lines ending with \r instead of \n: 65 Selecting Tests To Run
66 66 ======================
67 $ printf 'foo/bar\r' 67
68 fo?/bar\r (no-eol) (glob) (esc) 68 successful
69 #if windows 69
70 $ printf 'foo\\bar\r' 70 $ $TESTDIR/run-tests.py --with-hg=`which hg` test-success.t
71 foo/bar\r (no-eol) (glob) (esc) 71 .
72 #endif 72 # Ran 1 tests, 0 skipped, 0 warned, 0 failed.
73 $ printf 'foo/bar\rfoo/bar\r' 73
74 foo.bar\r \(no-eol\) (re) (esc) 74 failed
75 foo.bar\r \(no-eol\) (re) 75
76 76 $ $TESTDIR/run-tests.py --with-hg=`which hg` test-failure.t
77 testing hghave 77
78 78 --- $TESTTMP/test-failure.t
79 $ "$TESTDIR/hghave" true 79 +++ $TESTTMP/test-failure.t.err
80 $ "$TESTDIR/hghave" false 80 @@ -1,2 +1,2 @@
81 skipped: missing feature: nail clipper 81 $ echo babar
82 [1] 82 - rataxes
83 $ "$TESTDIR/hghave" no-true 83 + babar
84 skipped: system supports yak shaving 84
85 [1] 85 ERROR: test-failure.t output changed
86 $ "$TESTDIR/hghave" no-false 86 !
87 87 Failed test-failure.t: output changed
88 Conditional sections based on hghave: 88 # Ran 1 tests, 0 skipped, 0 warned, 1 failed.
89 89 python hash seed: * (glob)
90 #if true 90 [1]
91 $ echo tested 91
92 tested 92 Running In Debug Mode
93 #else 93 ======================
94 $ echo skipped 94
95 #endif 95 $ $TESTDIR/run-tests.py --with-hg=`which hg` --debug
96 96 + echo SALT* 0 0 (glob)
97 #if false 97 SALT* 0 0 (glob)
98 $ echo skipped 98 + echo babar
99 #else 99 babar
100 $ echo tested 100 + echo SALT* 2 0 (glob)
101 tested 101 SALT* 2 0 (glob)
102 #endif 102 .+ echo SALT* 0 0 (glob)
103 103 SALT* 0 0 (glob)
104 #if no-false 104 + echo babar
105 $ echo tested 105 babar
106 tested 106 + echo SALT* 2 0 (glob)
107 #else 107 SALT* 2 0 (glob)
108 $ echo skipped 108 .
109 #endif 109 # Ran 2 tests, 0 skipped, 0 warned, 0 failed.
110 110
111 #if no-true 111 Parallel runs
112 $ echo skipped 112 ==============
113 #else 113
114 $ echo tested 114 (duplicate the failing test to get predictable output)
115 tested 115 $ cp test-failure.t test-failure-copy.t
116 #endif 116
117 117 $ $TESTDIR/run-tests.py --with-hg=`which hg` --jobs 2 test-failure*.t
118 Exit code: 118
119 119 --- $TESTTMP/test-failure*.t (glob)
120 $ (exit 1) 120 +++ $TESTTMP/test-failure*.t.err (glob)
121 [1] 121 @@ -1,2 +1,2 @@
122 $ echo babar
123 - rataxes
124 + babar
125
126 ERROR: test-failure*.t output changed (glob)
127 !
128 --- $TESTTMP/test-failure*.t (glob)
129 +++ $TESTTMP/test-failure*.t.err (glob)
130 @@ -1,2 +1,2 @@
131 $ echo babar
132 - rataxes
133 + babar
134
135 ERROR: test-failure*.t output changed (glob)
136 !
137 Failed test-failure*.t: output changed (glob)
138 Failed test-failure*.t: output changed (glob)
139 # Ran 2 tests, 0 skipped, 0 warned, 2 failed.
140 python hash seed: * (glob)
141 [1]
142
143 (delete the duplicated test file)
144 $ rm test-failure-copy.t
145
146
147 Interactive run
148 ===============
149
150 (backup the failing test)
151 $ cp test-failure.t backup
152
153 Refuse the fix
154
155 $ echo 'n' | $TESTDIR/run-tests.py --with-hg=`which hg` -i
156
157 --- $TESTTMP/test-failure.t
158 +++ $TESTTMP/test-failure.t.err
159 @@ -1,2 +1,2 @@
160 $ echo babar
161 - rataxes
162 + babar
163 Accept this change? [n]
164 ERROR: test-failure.t output changed
165 !.
166 Failed test-failure.t: output changed
167 # Ran 2 tests, 0 skipped, 0 warned, 1 failed.
168 python hash seed: * (glob)
169 [1]
170
171 $ cat test-failure.t
172 $ echo babar
173 rataxes
174
175 Accept the fix
176
177 $ echo 'y' | $TESTDIR/run-tests.py --with-hg=`which hg` -i
178
179 --- $TESTTMP/test-failure.t
180 +++ $TESTTMP/test-failure.t.err
181 @@ -1,2 +1,2 @@
182 $ echo babar
183 - rataxes
184 + babar
185 Accept this change? [n] ..
186 # Ran 2 tests, 0 skipped, 0 warned, 0 failed.
187
188 $ cat test-failure.t
189 $ echo babar
190 babar
191
192 (reinstall)
193 $ mv backup test-failure.t
194
195 No Diff
196 ===============
197
198 $ $TESTDIR/run-tests.py --with-hg=`which hg` --nodiff
199 !.
200 Failed test-failure.t: output changed
201 # Ran 2 tests, 0 skipped, 0 warned, 1 failed.
202 python hash seed: * (glob)
203 [1]