run.sh 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/bash
  2. set +xe
  3. # The exa binary we want to run
  4. exa="$HOME/target/debug/exa --colour=always"
  5. # Directory containing our awkward testcase files
  6. testcases=/testcases
  7. # Directory containing existing test results to compare against
  8. results=/vagrant/xtests
  9. # Check that no files were created more than a year ago.
  10. # Files not from the current year use a different date format, meaning
  11. # that tests will fail until the VM gets re-provisioned.
  12. sudo find $testcases -mtime +365 -printf "File %p has not been modified since %TY! Consider re-provisioning; tests will probably fail.\n"
  13. # Long view tests
  14. $exa $testcases/files -l | diff -q - $results/files_l || exit 1
  15. $exa $testcases/files -lh | diff -q - $results/files_lh || exit 1
  16. $exa $testcases/files -lhb | diff -q - $results/files_lhb || exit 1
  17. $exa $testcases/files -lhB | diff -q - $results/files_lhb2 || exit 1
  18. $exa $testcases/attributes/dirs/empty-with-attribute -lh | diff -q - $results/empty || exit 1
  19. # Grid view tests
  20. COLUMNS=40 $exa $testcases/files | diff -q - $results/files_40 || exit 1
  21. COLUMNS=80 $exa $testcases/files | diff -q - $results/files_80 || exit 1
  22. COLUMNS=120 $exa $testcases/files | diff -q - $results/files_120 || exit 1
  23. COLUMNS=160 $exa $testcases/files | diff -q - $results/files_160 || exit 1
  24. COLUMNS=200 $exa $testcases/files | diff -q - $results/files_200 || exit 1
  25. # Long grid view tests
  26. COLUMNS=40 $exa $testcases/files -lG | diff -q - $results/files_lG_40 || exit 1
  27. COLUMNS=80 $exa $testcases/files -lG | diff -q - $results/files_lG_80 || exit 1
  28. COLUMNS=120 $exa $testcases/files -lG | diff -q - $results/files_lG_120 || exit 1
  29. COLUMNS=160 $exa $testcases/files -lG | diff -q - $results/files_lG_160 || exit 1
  30. COLUMNS=200 $exa $testcases/files -lG | diff -q - $results/files_lG_200 || exit 1
  31. # Attributes
  32. $exa $testcases/attributes -l@T | diff -q - $results/attributes || exit 1
  33. # UIDs and GIDs
  34. $exa $testcases/passwd -lgh | diff -q - $results/passwd || exit 1
  35. # Permissions, and current users and groups
  36. sudo -u cassowary $exa $testcases/permissions -lghR 2>&1 | diff -q - $results/permissions_sudo || exit 1
  37. $exa $testcases/permissions -lghR 2>&1 | diff -q - $results/permissions || exit 1
  38. # File names
  39. COLUMNS=80 $exa $testcases/file-names 2>&1 | diff -q - $results/file_names || exit 1
  40. COLUMNS=80 $exa $testcases/file-names -x 2>&1 | diff -q - $results/file_names_x || exit 1
  41. $exa $testcases/file-names -1 2>&1 | diff -q - $results/file_names_1 || exit 1
  42. # File types
  43. $exa $testcases/file-names-exts -1 2>&1 | diff -q - $results/file-names-exts || exit 1
  44. $exa $testcases/specials -l 2>&1 | diff -q - $results/specials || exit 1
  45. $exa $testcases/specials -F -l 2>&1 | diff -q - $results/specials_F || exit 1
  46. # Ignores
  47. $exa $testcases/file-names-exts/music.* -I "*.ogg" -1 2>&1 | diff -q - $results/ignores_ogg || exit 1
  48. $exa $testcases/file-names-exts/music.* -I "*.ogg|*.mp3" -1 2>&1 | diff -q - $results/empty || exit 1
  49. # Paths and directories
  50. # These directories are created in the VM user’s home directory (the default
  51. # location) when a Cargo build is done.
  52. (cd; $exa -1d target target/debug target/debug/build | diff -q - $results/dir_paths) || exit 1
  53. $exa -1d . .. / | diff -q - $results/dirs || exit 1
  54. # Links
  55. COLUMNS=80 $exa $testcases/links 2>&1 | diff -q - $results/links || exit 1
  56. $exa $testcases/links -1 2>&1 | diff -q - $results/links_1 || exit 1
  57. $exa $testcases/links -T 2>&1 | diff -q - $results/links_T || exit 1
  58. $exa /proc/1/root -T 2>&1 | diff -q - $results/proc_1_root || exit 1
  59. echo "All the tests passed!"