tests: add test_sort_perf.nit
authorJean Privat <jean@pryen.org>
Tue, 17 Nov 2015 17:35:56 +0000 (12:35 -0500)
committerJean Privat <jean@pryen.org>
Tue, 17 Nov 2015 17:35:56 +0000 (12:35 -0500)
Signed-off-by: Jean Privat <jean@pryen.org>

tests/sav/test_sort_perf.res [new file with mode: 0644]
tests/sav/test_sort_perf_args1.res [new file with mode: 0644]
tests/test_sort_perf.args [new file with mode: 0644]
tests/test_sort_perf.nit [new file with mode: 0644]

diff --git a/tests/sav/test_sort_perf.res b/tests/sav/test_sort_perf.res
new file mode 100644 (file)
index 0000000..e7930d3
--- /dev/null
@@ -0,0 +1 @@
+Usage: ./test [-q] paths
diff --git a/tests/sav/test_sort_perf_args1.res b/tests/sav/test_sort_perf_args1.res
new file mode 100644 (file)
index 0000000..05d8839
--- /dev/null
@@ -0,0 +1,16 @@
+test_prog/
+|--test_prog/README.md
+|--test_prog/game
+|  |--test_prog/game/README.md
+|  `--test_prog/game/game.nit
+|--test_prog/platform
+|  |--test_prog/platform/README.md
+|  `--test_prog/platform/platform.nit
+|--test_prog/rpg
+|  |--test_prog/rpg/README.md
+|  |--test_prog/rpg/careers.nit
+|  |--test_prog/rpg/character.nit
+|  |--test_prog/rpg/combat.nit
+|  |--test_prog/rpg/races.nit
+|  `--test_prog/rpg/rpg.nit
+`--test_prog/test_prog.nit
diff --git a/tests/test_sort_perf.args b/tests/test_sort_perf.args
new file mode 100644 (file)
index 0000000..1014bd5
--- /dev/null
@@ -0,0 +1 @@
+test_prog/
diff --git a/tests/test_sort_perf.nit b/tests/test_sort_perf.nit
new file mode 100644 (file)
index 0000000..68df81b
--- /dev/null
@@ -0,0 +1,43 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import ordered_tree
+
+var quiet = false
+
+var tree = new OrderedTree[String]
+var todo = new Array[String]
+if args.is_empty then
+       print "Usage: ./test [-q] paths"
+       exit -1
+else
+       if args.first == "-q" then
+               args.shift
+               quiet = true
+       end
+       todo.add_all args
+       for a in args do tree.add(null, a)
+end
+while todo.not_empty do
+       var file = todo.pop
+       var entries = file.files
+       for entry in entries do
+               var sub = file / entry
+               todo.add sub
+               tree.add(file, sub)
+       end
+end
+tree.sort_with(alpha_comparator)
+
+if not quiet then tree.write_to(stdout)