tests: write and use a custom helper script to avoid find's -printf stable
authorAugie Fackler <augie@google.com>
Tue, 05 Dec 2017 16:55:41 -0500
branchstable
changeset 35217 aa905f9cdcda
parent 35198 759234670d19
child 35250 84607c8b5af8
child 35386 fdd09d87635b
tests: write and use a custom helper script to avoid find's -printf -printf on find is a GNU-ism and will be banned in an upcoming check-code change. Differential Revision: https://phab.mercurial-scm.org/D1597
tests/list-tree.py
tests/test-largefiles-misc.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/list-tree.py	Tue Dec 05 16:55:41 2017 -0500
@@ -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())))
--- a/tests/test-largefiles-misc.t	Fri Dec 01 23:27:08 2017 -0500
+++ b/tests/test-largefiles-misc.t	Tue Dec 05 16:55:41 2017 -0500
@@ -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