summaryrefslogtreecommitdiff
path: root/tests/ls.test
blob: 9866eb78d10ddcc78a8965f5e959363cbcaf0fc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash

# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>

[ -f testing.sh ] && . testing.sh

#testing "name" "command" "result" "infile" "stdin"
#set -x

# Creating test-file/dir for testing ls
mkdir -p lstest/dir1 lstest/dir2 || exit 1
echo "test file1" > lstest/file1.txt
echo "test file2" > lstest/file2.txt
echo "hidden file1" > lstest/.hfile1

IN="cd lstest"
OUT="cd .. "

testing "ls no argument" "$IN && ls; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
testing "ls with wild char" "$IN && ls file*; $OUT" "file1.txt\nfile2.txt\n" "" ""
testing "ls with wild char - long listing" "$IN && ls -1 file*; $OUT" "file1.txt\nfile2.txt\n" "" ""
testing "ls with -p" "$IN && ls -p; $OUT" "dir1/\ndir2/\nfile1.txt\nfile2.txt\n" "" ""
testing "ls with -a" "$IN && ls -a; $OUT" \
        ".\n..\ndir1\ndir2\nfile1.txt\nfile2.txt\n.hfile1\n" "" ""
testing "ls with -A" "$IN && ls -A; $OUT" \
        "dir1\ndir2\nfile1.txt\nfile2.txt\n.hfile1\n" "" ""
testing "ls with -d" "$IN && ls -d; $OUT" ".\n" "" ""
testing "ls with wild char and -d *" "$IN && ls -d *; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
testing "ls with -k" "$IN && ls -k; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
testing "ls with -m" "$IN && ls -m; $OUT" "dir1, dir2, file1.txt, file2.txt\n" "" ""
testing "ls with -F" "$IN && ls -F; $OUT" "dir1/\ndir2/\nfile1.txt\nfile2.txt\n" "" ""
testing "ls with -dk *" "$IN && ls -dk *; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""

ln -s file1.txt lstest/slink
testing "ls softlink - long listing" "$IN && ls -l slink | awk '{ print \$NF }' ; $OUT" \
          "file1.txt\n" "" ""
rm -f lstest/slink

ln -s /dev/null/nosuchfile lstest/nosuchfile
testing "ls with -d - broken softlink" "$IN && ls -d nosuchfile; $OUT" "nosuchfile\n" "" ""
rm -f lstest/nosuchfile

rm -rf lstest/* && mkdir -p lstest/dir1 && touch lstest/file1.txt
testing "ls nested recursively" "$IN && ls -R; $OUT" \
          ".:\ndir1\nfile1.txt\n\n./dir1:\n" "" ""

rm -rf lstest/* && touch lstest/file1.txt && INODE=`stat -c %i lstest/file1.txt`
testing "ls with -i" "$IN && ls -i 2>/dev/null; $OUT" "$INODE file1.txt\n" "" ""
unset INODE

# Removing test dir for cleanup purpose
rm -rf lstest