Patchwork D1597: tests: write and use a custom helper script to avoid find's -printf

login
register
mail settings
Submitter phabricator
Date Dec. 5, 2017, 10:03 p.m.
Message ID <differential-rev-PHID-DREV-bg7742pswf7w4xgpzbbs-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/25946/
State Superseded
Headers show

Comments

phabricator - Dec. 5, 2017, 10:03 p.m.
durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  -printf on find is a GNU-ism and will be banned in an upcoming
  check-code change.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D1597

AFFECTED FILES
  tests/list-tree.py
  tests/test-largefiles-misc.t

CHANGE DETAILS




To: durin42, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t
--- a/tests/test-largefiles-misc.t
+++ b/tests/test-largefiles-misc.t
@@ -1095,8 +1095,7 @@ 
 Move (and then undo) a directory move with only largefiles.
 
   $ listtree() {
-  >   find $@ \( -type d -printf "%p/\n" -o -type f -printf "%p\n" \) \
-  >           -a -name .hg -prune | sort
+  >   $PYTHON $TESTDIR/list-tree.py $@
   > }
 
   $ cd subrepo-root
diff --git a/tests/list-tree.py b/tests/list-tree.py
new file mode 100644
--- /dev/null
+++ b/tests/list-tree.py
@@ -0,0 +1,27 @@ 
+from __future__ import (
+    absolute_import,
+    print_function,
+)
+
+import argparse
+import os
+
+ap = argparse.ArgumentParser()
+ap.add_argument('path', nargs='+')
+opts = ap.parse_args()
+
+def gather():
+    for p in opts.path:
+        if not os.path.exists(p):
+            return
+        if os.path.isdir(p):
+            yield p + os.path.sep
+            for dirpath, dirs, files in os.walk(p):
+                for d in dirs:
+                    yield os.path.join(dirpath, d) + os.path.sep
+                for f in files:
+                    yield os.path.join(dirpath, f)
+        else:
+            yield p
+
+print('\n'.join(sorted(gather())))