Mercurial > hg
annotate contrib/casesmash.py @ 33611:a2b55ee62803 stable
tests: make pdiff return appropriate exit code at comparison of files
Before this patch, pdiff script returns 0, even if diff is detected.
This issue doesn't cause failure of tests using it, if it is invoked
via extdiff extension, because extdiff itself examines changes between
specified revisions and decides exit code.
BTW, this patch ignores recursive comparison case, because:
- there is no portable way for current while-read based
implementation to return 1 at detecting changes
- it isn't yet needed to replace direct "diff -r" invocation by
pdiff for portability
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Mon, 31 Jul 2017 13:10:19 +0900 |
parents | 42a7301fb4d5 |
children | 2372284d9457 |
rev | line source |
---|---|
28351
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
1 from __future__ import absolute_import |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
2 import __builtin__ |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
3 import os |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
4 from mercurial import ( |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
5 util, |
42a7301fb4d5
casesmash: use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
19378
diff
changeset
|
6 ) |
14730 | 7 |
8 def lowerwrap(scope, funcname): | |
9 f = getattr(scope, funcname) | |
10 def wrap(fname, *args, **kwargs): | |
11 d, base = os.path.split(fname) | |
12 try: | |
13 files = os.listdir(d or '.') | |
19378
9de689d20230
cleanup: drop unused variables and an unused import
Simon Heimberg <simohe@besonet.ch>
parents:
19322
diff
changeset
|
14 except OSError: |
14730 | 15 files = [] |
16 if base in files: | |
17 return f(fname, *args, **kwargs) | |
18 for fn in files: | |
19 if fn.lower() == base.lower(): | |
20 return f(os.path.join(d, fn), *args, **kwargs) | |
21 return f(fname, *args, **kwargs) | |
22 scope.__dict__[funcname] = wrap | |
23 | |
24 def normcase(path): | |
25 return path.lower() | |
26 | |
27 os.path.normcase = normcase | |
28 | |
29 for f in 'file open'.split(): | |
30 lowerwrap(__builtin__, f) | |
31 | |
32 for f in "chmod chown open lstat stat remove unlink".split(): | |
33 lowerwrap(os, f) | |
34 | |
35 for f in "exists lexists".split(): | |
36 lowerwrap(os.path, f) | |
37 | |
38 lowerwrap(util, 'posixfile') |