run.sh 4.4 KB
Newer Older
1 2 3 4 5 6 7 8
#!/bin/bash
set +xe


# The exa binary we want to run
exa="$HOME/target/debug/exa --colour=always"

# Directory containing our awkward testcase files
9
testcases=/testcases
10 11 12 13 14

# Directory containing existing test results to compare against
results=/vagrant/xtests


15 16 17 18 19
# Check that no files were created more than a year ago.
# Files not from the current year use a different date format, meaning
# that tests will fail until the VM gets re-provisioned.
sudo find $testcases -mtime +365 -printf "File %p has not been modified since %TY! Consider re-provisioning; tests will probably fail.\n"

20

21
# Long view tests
B
oops  
Benjamin Sago 已提交
22
$exa $testcases/files -l   | diff -q - $results/files_l     || exit 1
23 24 25
$exa $testcases/files -lh  | diff -q - $results/files_lh    || exit 1
$exa $testcases/files -lhb | diff -q - $results/files_lhb   || exit 1
$exa $testcases/files -lhB | diff -q - $results/files_lhb2  || exit 1
26 27
$exa $testcases/attributes/dirs/empty-with-attribute -lh | diff -q - $results/empty  || exit 1

28

29 30 31 32 33 34 35
# Grid view tests
COLUMNS=40  $exa $testcases/files | diff -q - $results/files_40   || exit 1
COLUMNS=80  $exa $testcases/files | diff -q - $results/files_80   || exit 1
COLUMNS=120 $exa $testcases/files | diff -q - $results/files_120  || exit 1
COLUMNS=160 $exa $testcases/files | diff -q - $results/files_160  || exit 1
COLUMNS=200 $exa $testcases/files | diff -q - $results/files_200  || exit 1

36 37 38 39
COLUMNS=100 $exa $testcases/files/* | diff -q - $results/files_star_100   || exit 1
COLUMNS=150 $exa $testcases/files/* | diff -q - $results/files_star_150  || exit 1
COLUMNS=200 $exa $testcases/files/* | diff -q - $results/files_star_200  || exit 1

40

41 42 43 44 45 46 47
# Long grid view tests
COLUMNS=40  $exa $testcases/files -lG | diff -q - $results/files_lG_40   || exit 1
COLUMNS=80  $exa $testcases/files -lG | diff -q - $results/files_lG_80   || exit 1
COLUMNS=120 $exa $testcases/files -lG | diff -q - $results/files_lG_120  || exit 1
COLUMNS=160 $exa $testcases/files -lG | diff -q - $results/files_lG_160  || exit 1
COLUMNS=200 $exa $testcases/files -lG | diff -q - $results/files_lG_200  || exit 1

48 49 50 51
COLUMNS=100 $exa $testcases/files/* -lG | diff -q - $results/files_star_lG_100  || exit 1
COLUMNS=150 $exa $testcases/files/* -lG | diff -q - $results/files_star_lG_150  || exit 1
COLUMNS=200 $exa $testcases/files/* -lG | diff -q - $results/files_star_lG_200  || exit 1

52

53 54 55
# Attributes
$exa $testcases/attributes -l@T | diff -q - $results/attributes  || exit 1

56

57 58 59
# UIDs and GIDs
$exa $testcases/passwd -lgh | diff -q - $results/passwd  || exit 1

60 61 62 63 64

# Permissions, and current users and groups
sudo -u cassowary $exa $testcases/permissions -lghR 2>&1 | diff -q - $results/permissions_sudo  || exit 1
                  $exa $testcases/permissions -lghR 2>&1 | diff -q - $results/permissions       || exit 1

65
# File names
66
# (Mostly escaping control characters in file names)
67 68
COLUMNS=80 $exa $testcases/file-names    2>&1 | diff -q - $results/file_names   || exit 1
COLUMNS=80 $exa $testcases/file-names -x 2>&1 | diff -q - $results/file_names_x || exit 1
69
COLUMNS=80 $exa $testcases/file-names -R 2>&1 | diff -q - $results/file_names_R || exit 1
70
           $exa $testcases/file-names -1 2>&1 | diff -q - $results/file_names_1 || exit 1
71
           $exa $testcases/file-names -T 2>&1 | diff -q - $results/file_names_T || exit 1
72

B
Ben S 已提交
73
# File types
74
$exa $testcases/file-names-exts -1 2>&1 | diff -q - $results/file-names-exts  || exit 1
75 76
$exa $testcases/specials        -l 2>&1 | diff -q - $results/specials         || exit 1
$exa $testcases/specials     -F -l 2>&1 | diff -q - $results/specials_F       || exit 1
B
Ben S 已提交
77

78

B
Ben S 已提交
79
# Ignores
80 81
$exa $testcases/file-names-exts/music.* -I "*.ogg"       -1 2>&1 | diff -q - $results/ignores_ogg  || exit 1
$exa $testcases/file-names-exts/music.* -I "*.ogg|*.mp3" -1 2>&1 | diff -q - $results/empty        || exit 1
B
Ben S 已提交
82

B
Ben S 已提交
83

B
Benjamin Sago 已提交
84 85 86 87
# Paths and directories
# These directories are created in the VM user’s home directory (the default
# location) when a Cargo build is done.
(cd; $exa -1d target target/debug target/debug/build | diff -q - $results/dir_paths) || exit 1
88
     $exa -1d . .. /                                 | diff -q - $results/dirs       || exit 1
B
Benjamin Sago 已提交
89 90


91 92 93 94 95
# Links
COLUMNS=80 $exa $testcases/links    2>&1 | diff -q - $results/links        || exit 1
           $exa $testcases/links -1 2>&1 | diff -q - $results/links_1      || exit 1
           $exa $testcases/links -T 2>&1 | diff -q - $results/links_T      || exit 1
           $exa /proc/1/root     -T 2>&1 | diff -q - $results/proc_1_root  || exit 1
96

97 98

echo "All the tests passed!"