tree.tests 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. optional UNICODE_SUPPORT
  16. testing "tree single file" \
  17. "cd tree2.tempdir && tree" \
  18. "\
  19. .\n\
  20. └── testfile\n\
  21. \n\
  22. 0 directories, 1 files\n" \
  23. "" ""
  24. mkdir -p tree3.tempdir/test1 \
  25. tree3.tempdir/test2/a \
  26. tree3.tempdir/test2/b \
  27. tree3.tempdir/test3/c \
  28. tree3.tempdir/test3/d
  29. touch tree3.tempdir/test2/a/testfile1 \
  30. tree3.tempdir/test2/a/testfile2 \
  31. tree3.tempdir/test2/a/testfile3 \
  32. tree3.tempdir/test2/b/testfile4 \
  33. tree3.tempdir/test3/c/testfile5 \
  34. tree3.tempdir/test3/d/testfile6 \
  35. tree3.tempdir/test3/d/.testfile7
  36. (cd tree3.tempdir/test2/a && ln -s ../b/testfile4 .)
  37. (cd tree3.tempdir/test2/b && ln -s ../../test3 .)
  38. testing "tree nested directories and files" \
  39. "cd tree3.tempdir && tree" \
  40. "\
  41. .\n\
  42. ├── test1\n\
  43. ├── test2\n\
  44. │ ├── a\n\
  45. │ │ ├── testfile1\n\
  46. │ │ ├── testfile2\n\
  47. │ │ ├── testfile3\n\
  48. │ │ └── testfile4 -> ../b/testfile4\n\
  49. │ └── b\n\
  50. │ ├── test3 -> ../../test3\n\
  51. │ └── testfile4\n\
  52. └── test3\n\
  53. ├── c\n\
  54. │ └── testfile5\n\
  55. └── d\n\
  56. └── testfile6\n\
  57. \n\
  58. 7 directories, 8 files\n" \
  59. "" ""
  60. #note: tree v2.0.1 says "8 directories, 7 files":
  61. #it counts "test3 -> ../../test3" as a directory, even though it does not follow this symlink
  62. testing "tree multiple directories" \
  63. "tree tree2.tempdir tree3.tempdir" \
  64. "\
  65. tree2.tempdir\n\
  66. └── testfile\n\
  67. tree3.tempdir\n\
  68. ├── test1\n\
  69. ├── test2\n\
  70. │ ├── a\n\
  71. │ │ ├── testfile1\n\
  72. │ │ ├── testfile2\n\
  73. │ │ ├── testfile3\n\
  74. │ │ └── testfile4 -> ../b/testfile4\n\
  75. │ └── b\n\
  76. │ ├── test3 -> ../../test3\n\
  77. │ └── testfile4\n\
  78. └── test3\n\
  79. ├── c\n\
  80. │ └── testfile5\n\
  81. └── d\n\
  82. └── testfile6\n\
  83. \n\
  84. 7 directories, 9 files\n" \
  85. "" ""
  86. #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?)
  87. rm -rf tree.tempdir tree2.tempdir tree3.tempdir
  88. exit $FAILCOUNT