tree.tests 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #!/bin/sh
  2. # Copyright 2022 by Roger Knecht <rknecht@pm.me>
  3. # Licensed under GPLv2, see file LICENSE in this source tree.
  4. . ./testing.sh -v
  5. # testing "description" "command" "result" "infile" "stdin"
  6. testing "tree error opening dir" \
  7. "tree tree.tempdir" \
  8. "\
  9. tree.tempdir [error opening dir]\n\
  10. \n\
  11. 0 directories, 0 files\n" \
  12. "" ""
  13. mkdir -p tree2.tempdir
  14. touch tree2.tempdir/testfile
  15. testing "tree single file" \
  16. "cd tree2.tempdir && tree" \
  17. "\
  18. .\n\
  19. └── testfile\n\
  20. \n\
  21. 0 directories, 1 files\n" \
  22. "" ""
  23. mkdir -p tree3.tempdir/test1 \
  24. tree3.tempdir/test2/a \
  25. tree3.tempdir/test2/b \
  26. tree3.tempdir/test3/c \
  27. tree3.tempdir/test3/d
  28. touch tree3.tempdir/test2/a/testfile1 \
  29. tree3.tempdir/test2/a/testfile2 \
  30. tree3.tempdir/test2/a/testfile3 \
  31. tree3.tempdir/test2/b/testfile4 \
  32. tree3.tempdir/test3/c/testfile5 \
  33. tree3.tempdir/test3/d/testfile6 \
  34. tree3.tempdir/test3/d/.testfile7
  35. (cd tree3.tempdir/test2/a && ln -s ../b/testfile4 .)
  36. (cd tree3.tempdir/test2/b && ln -s ../../test3 .)
  37. testing "tree nested directories and files" \
  38. "cd tree3.tempdir && tree" \
  39. "\
  40. .\n\
  41. ├── test1\n\
  42. ├── test2\n\
  43. │   ├── a\n\
  44. │   │   ├── testfile1\n\
  45. │   │   ├── testfile2\n\
  46. │   │   ├── testfile3\n\
  47. │   │   └── testfile4 -> ../b/testfile4\n\
  48. │   └── b\n\
  49. │   ├── test3 -> ../../test3\n\
  50. │   └── testfile4\n\
  51. └── test3\n\
  52. ├── c\n\
  53. │   └── testfile5\n\
  54. └── d\n\
  55. └── testfile6\n\
  56. \n\
  57. 7 directories, 8 files\n" \
  58. "" ""
  59. #note: tree v2.0.1 says "8 directories, 7 files":
  60. #it counts "test3 -> ../../test3" as a directory, even though it does not follow this symlink
  61. testing "tree multiple directories" \
  62. "tree tree2.tempdir tree3.tempdir" \
  63. "\
  64. tree2.tempdir\n\
  65. └── testfile\n\
  66. tree3.tempdir\n\
  67. ├── test1\n\
  68. ├── test2\n\
  69. │   ├── a\n\
  70. │   │   ├── testfile1\n\
  71. │   │   ├── testfile2\n\
  72. │   │   ├── testfile3\n\
  73. │   │   └── testfile4 -> ../b/testfile4\n\
  74. │   └── b\n\
  75. │   ├── test3 -> ../../test3\n\
  76. │   └── testfile4\n\
  77. └── test3\n\
  78. ├── c\n\
  79. │   └── testfile5\n\
  80. └── d\n\
  81. └── testfile6\n\
  82. \n\
  83. 7 directories, 9 files\n" \
  84. "" ""
  85. #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?)
  86. rm -rf tree.tempdir tree2.tempdir tree3.tempdir
  87. exit $FAILCOUNT