Merge: nitls: fix tree representation of nested groups
authorJean Privat <jean@pryen.org>
Sun, 5 Jun 2016 16:12:49 +0000 (12:12 -0400)
committerJean Privat <jean@pryen.org>
Sun, 5 Jun 2016 16:12:49 +0000 (12:12 -0400)
nitls wrongly detached some nested groups in tree-mode.

Before:

~~~
$ nitls -tp lib/nitcorn/examples/src/nitcorn_hello_world.nit lib/nitcorn/http_response.nit
lib/nitcorn/examples
`--lib/nitcorn/examples/src
   `--lib/nitcorn/examples/src/nitcorn_hello_world.nit
lib/nitcorn
`--lib/nitcorn/http_response.nit
~~~

After:

~~~
$ nitls -tp lib/nitcorn/examples/src/nitcorn_hello_world.nit lib/nitcorn/http_response.nit
lib/nitcorn
|--lib/nitcorn/examples
|  `--lib/nitcorn/examples/src
|     `--lib/nitcorn/examples/src/nitcorn_hello_world.nit
`--lib/nitcorn/http_response.nit
~~~

Pull-Request: #2161
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>

src/nitls.nit
tests/nitls.args
tests/project1/subdir/subdir2/subdir3/submodule.nit [new file with mode: 0644]
tests/project1/uselessdir/uselessdir2/uselessfile [new file with mode: 0644]
tests/sav/nitls_args1.res
tests/sav/nitls_args2.res
tests/sav/nitls_args3.res
tests/sav/nitls_args4.res
tests/sav/nitls_args6.res
tests/sav/test_basename_perf_args1.res

index f875083..4321214 100644 (file)
@@ -178,7 +178,10 @@ if opt_tree.value then
                var pa = mp.mgroup
                while pa != null and not pa.is_interesting do pa = pa.parent
                ot.add(pa, mp)
-               if pa != null then mgroups.add pa
+               while pa != null do
+                       mgroups.add pa
+                       pa = pa.parent
+               end
        end
        for g in mgroups do
                var pa = g.parent
index e79a1e1..5f5a31a 100644 (file)
@@ -3,6 +3,6 @@ base_simple3.nit project1
 -t -r base_simple3.nit project1
 -s base_simple3.nit project1
 -M base_simple3.nit base_simple_import.nit
--td project1/module3.nit
+-td project1/module3.nit project1/subdir/subdir2/subdir3/submodule.nit
 test_prog --no-color
 test_prog/game/excluded.nit test_prog/game/excluded_dir/more.nit -t --no-color
diff --git a/tests/project1/subdir/subdir2/subdir3/submodule.nit b/tests/project1/subdir/subdir2/subdir3/submodule.nit
new file mode 100644 (file)
index 0000000..3355283
--- /dev/null
@@ -0,0 +1 @@
+import module0
diff --git a/tests/project1/uselessdir/uselessdir2/uselessfile b/tests/project1/uselessdir/uselessdir2/uselessfile
new file mode 100644 (file)
index 0000000..e69de29
index eca970e..2e6f89d 100644 (file)
@@ -9,4 +9,7 @@ project1 (\e[33mproject1\e[m)
 |--\e[1mproject1\e[m (\e[33mproject1/project1.nit\e[m)
 `--subdir (\e[33mproject1/subdir\e[m)
    |--\e[1mmodule4\e[m (\e[33mproject1/subdir/module4.nit\e[m)
-   `--\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
+   |--\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
+   `--subdir2 (\e[33mproject1/subdir/subdir2\e[m)
+      `--subdir3 (\e[33mproject1/subdir/subdir2/subdir3\e[m)
+         `--\e[1msubmodule\e[m (\e[33mproject1/subdir/subdir2/subdir3/submodule.nit\e[m)
index eca970e..2e6f89d 100644 (file)
@@ -9,4 +9,7 @@ project1 (\e[33mproject1\e[m)
 |--\e[1mproject1\e[m (\e[33mproject1/project1.nit\e[m)
 `--subdir (\e[33mproject1/subdir\e[m)
    |--\e[1mmodule4\e[m (\e[33mproject1/subdir/module4.nit\e[m)
-   `--\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
+   |--\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
+   `--subdir2 (\e[33mproject1/subdir/subdir2\e[m)
+      `--subdir3 (\e[33mproject1/subdir/subdir2/subdir3\e[m)
+         `--\e[1msubmodule\e[m (\e[33mproject1/subdir/subdir2/subdir3/submodule.nit\e[m)
index c5ec486..ed5df5e 100644 (file)
@@ -9,7 +9,10 @@ project1 (\e[33mproject1\e[m)
 |--\e[1mproject1\e[m (\e[33mproject1/project1.nit\e[m)
 `--subdir (\e[33mproject1/subdir\e[m)
    |--\e[1mmodule4\e[m (\e[33mproject1/subdir/module4.nit\e[m)
-   `--\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
+   |--\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
+   `--subdir2 (\e[33mproject1/subdir/subdir2\e[m)
+      `--subdir3 (\e[33mproject1/subdir/subdir2/subdir3\e[m)
+         `--\e[1msubmodule\e[m (\e[33mproject1/subdir/subdir2/subdir3/submodule.nit\e[m)
 project2 (\e[33mproject1/project2\e[m)
 |--\e[1mfoo\e[m (\e[33mproject1/project2/foo.nit\e[m)
 `--\e[1mproject2\e[m (\e[33mproject1/project2/project2.nit\e[m)
index 56570ed..64895a3 100644 (file)
@@ -8,3 +8,4 @@ project1>subdir>\e[1mmodule_0\e[m (\e[33mproject1/subdir/module_0.nit\e[m)
 project1>\e[1mmodule_01\e[m (\e[33mproject1/module_01.nit\e[m)
 project1>\e[1mmodule_02\e[m (\e[33mproject1/module_02.nit\e[m)
 project1>\e[1mproject1\e[m (\e[33mproject1/project1.nit\e[m)
+project1>subdir>subdir2>subdir3>\e[1msubmodule\e[m (\e[33mproject1/subdir/subdir2/subdir3/submodule.nit\e[m)
index 8ebf96a..7cf6fd3 100644 (file)
@@ -2,4 +2,7 @@ project1 (\e[33mproject1\e[m)
 |--\e[1mmodule1\e[m (\e[33mproject1/module1.nit\e[m)
 |--\e[1mmodule3\e[m (\e[33mproject1/module3.nit\e[m)\e[37m (module4)\e[m
 `--subdir (\e[33mproject1/subdir\e[m)
-   `--\e[1mmodule4\e[m (\e[33mproject1/subdir/module4.nit\e[m)\e[37m (module1)\e[m
+   |--\e[1mmodule4\e[m (\e[33mproject1/subdir/module4.nit\e[m)\e[37m (module1)\e[m
+   `--subdir2 (\e[33mproject1/subdir/subdir2\e[m)
+      `--subdir3 (\e[33mproject1/subdir/subdir2/subdir3\e[m)
+         `--\e[1msubmodule\e[m (\e[33mproject1/subdir/subdir2/subdir3/submodule.nit\e[m)
index 25574f7..e0353bf 100644 (file)
@@ -1,13 +1,13 @@
  population: 3
  minimum value: 2
- maximum value: 11
- total value: 16
- average value: 5.33
+ maximum value: 12
+ total value: 22
+ average value: 7.33
  distribution:
-  <=2: sub-population=1 (33.33%); cumulated value=2 (12.50%)
-  <=4: sub-population=1 (33.33%); cumulated value=3 (18.75%)
-  <=16: sub-population=1 (33.33%); cumulated value=11 (68.75%)
+  <=2: sub-population=1 (33.33%); cumulated value=2 (9.09%)
+  <=8: sub-population=1 (33.33%); cumulated value=8 (36.36%)
+  <=16: sub-population=1 (33.33%); cumulated value=12 (54.54%)
  list:
-  nit: 11 (68.75%)
-  : 3 (18.75%)
-  ini: 2 (12.50%)
+  nit: 12 (54.54%)
+  : 8 (36.36%)
+  ini: 2 (9.09%)