| #!/bin/sh |
| |
| # Copyright 2022 by Roger Knecht <rknecht@pm.me> |
| # Licensed under GPLv2, see file LICENSE in this source tree. |
| |
| . ./testing.sh -v |
| |
| # testing "description" "command" "result" "infile" "stdin" |
| |
| testing "tree error opening dir" \ |
| "tree tree.tempdir" \ |
| "\ |
| tree.tempdir [error opening dir]\n\ |
| \n\ |
| 0 directories, 0 files\n" \ |
| "" "" |
| |
| mkdir -p tree2.tempdir |
| touch tree2.tempdir/testfile |
| |
| testing "tree single file" \ |
| "cd tree2.tempdir && tree" \ |
| "\ |
| .\n\ |
| └── testfile\n\ |
| \n\ |
| 0 directories, 1 files\n" \ |
| "" "" |
| |
| mkdir -p tree3.tempdir/test1 \ |
| tree3.tempdir/test2/a \ |
| tree3.tempdir/test2/b \ |
| tree3.tempdir/test3/c \ |
| tree3.tempdir/test3/d |
| |
| touch tree3.tempdir/test2/a/testfile1 \ |
| tree3.tempdir/test2/a/testfile2 \ |
| tree3.tempdir/test2/a/testfile3 \ |
| tree3.tempdir/test2/b/testfile4 \ |
| tree3.tempdir/test3/c/testfile5 \ |
| tree3.tempdir/test3/d/testfile6 \ |
| tree3.tempdir/test3/d/.testfile7 |
| |
| (cd tree3.tempdir/test2/a && ln -s ../b/testfile4 .) |
| (cd tree3.tempdir/test2/b && ln -s ../../test3 .) |
| |
| testing "tree nested directories and files" \ |
| "cd tree3.tempdir && tree" \ |
| "\ |
| .\n\ |
| ├── test1\n\ |
| ├── test2\n\ |
| │ ├── a\n\ |
| │ │ ├── testfile1\n\ |
| │ │ ├── testfile2\n\ |
| │ │ ├── testfile3\n\ |
| │ │ └── testfile4 -> ../b/testfile4\n\ |
| │ └── b\n\ |
| │ ├── test3 -> ../../test3\n\ |
| │ └── testfile4\n\ |
| └── test3\n\ |
| ├── c\n\ |
| │ └── testfile5\n\ |
| └── d\n\ |
| └── testfile6\n\ |
| \n\ |
| 7 directories, 8 files\n" \ |
| "" "" |
| #note: tree v2.0.1 says "8 directories, 7 files": |
| #it counts "test3 -> ../../test3" as a directory, even though it does not follow this symlink |
| |
| testing "tree multiple directories" \ |
| "tree tree2.tempdir tree3.tempdir" \ |
| "\ |
| tree2.tempdir\n\ |
| └── testfile\n\ |
| tree3.tempdir\n\ |
| ├── test1\n\ |
| ├── test2\n\ |
| │ ├── a\n\ |
| │ │ ├── testfile1\n\ |
| │ │ ├── testfile2\n\ |
| │ │ ├── testfile3\n\ |
| │ │ └── testfile4 -> ../b/testfile4\n\ |
| │ └── b\n\ |
| │ ├── test3 -> ../../test3\n\ |
| │ └── testfile4\n\ |
| └── test3\n\ |
| ├── c\n\ |
| │ └── testfile5\n\ |
| └── d\n\ |
| └── testfile6\n\ |
| \n\ |
| 7 directories, 9 files\n" \ |
| "" "" |
| #note: tree v2.0.1 says "8 directories, 7 files" (not "8 files", probably a/testfile4 -> ../b/testfile4 and b/testfile4 are counted as one file, not 2?) |
| |
| rm -rf tree.tempdir tree2.tempdir tree3.tempdir |
| |
| exit $FAILCOUNT |