• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2
3# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
4# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
5
6[ -f testing.sh ] && . testing.sh
7
8#testing "name" "command" "result" "infile" "stdin"
9#set -x
10
11# Creating test-file/dir for testing ls
12mkdir -p lstest/dir1 lstest/dir2 || exit 1
13echo "test file1" > lstest/file1.txt
14echo "test file2" > lstest/file2.txt
15echo "hidden file1" > lstest/.hfile1
16
17IN="cd lstest"
18OUT="cd .. "
19
20testing "no argument" "$IN && ls; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
21testing "with wild char" "$IN && ls file*; $OUT" "file1.txt\nfile2.txt\n" "" ""
22testing "with wild char - long listing" "$IN && ls -1 file*; $OUT" "file1.txt\nfile2.txt\n" "" ""
23testing "with -p" "$IN && ls -p; $OUT" "dir1/\ndir2/\nfile1.txt\nfile2.txt\n" "" ""
24testing "with -a" "$IN && ls -a; $OUT" \
25        ".\n..\n.hfile1\ndir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
26testing "with -A" "$IN && ls -A; $OUT" \
27        ".hfile1\ndir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
28testing "with -d" "$IN && ls -d; $OUT" ".\n" "" ""
29testing "with wild char and -d *" "$IN && ls -d *; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
30testing "with -k" "$IN && ls -k; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
31testing "with -m" "$IN && ls -m; $OUT" "dir1, dir2, file1.txt, file2.txt\n" "" ""
32testing "with -F" "$IN && ls -F; $OUT" "dir1/\ndir2/\nfile1.txt\nfile2.txt\n" "" ""
33testing "with -dk *" "$IN && ls -dk *; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" ""
34testing "with -Z" "$IN && ls -Z file1.txt | egrep -q '^[^ ]+ file1.txt' || echo fail; $OUT" "" "" ""
35testing "with -lZ" "$IN && ls --full-time -lZ file1.txt | egrep -q '^-[rwx-]+ +[0-9]+ +[^ ]+ +[^ ]+ +[^ ]+ +[0-9]+ [0-9][0-9][0-9][0-9]-[0-9][0-9]-.* file1.txt' || echo fail; $OUT" "" "" ""
36
37ln -s file1.txt lstest/slink
38testing "-l symlink" \
39    "$IN && ls -l slink | grep -q -- ' slink -> file1.txt' && echo ok ; $OUT" \
40    "ok\n" "" ""
41rm -f lstest/slink
42
43ln -s /dev/null/nosuchfile lstest/nosuchfile
44testing "with -d - broken softlink" "$IN && ls -d nosuchfile; $OUT" "nosuchfile\n" "" ""
45rm -f lstest/nosuchfile
46
47rm -rf lstest/* && mkdir -p lstest/dir1 && touch lstest/file1.txt
48testing "nested recursively" "$IN && ls -R; $OUT" \
49          ".:\ndir1\nfile1.txt\n\n./dir1:\n" "" ""
50
51rm -rf lstest/* && touch lstest/file1.txt && INODE=`stat -c %i lstest/file1.txt`
52testing "with -i" "$IN && ls -i 2>/dev/null; $OUT" "$INODE file1.txt\n" "" ""
53unset INODE
54
55testing "missing" "$IN && ls does-not-exist 2>err ; grep -q 'ls:.*missing.*: No
56such file' err || echo missing error; $OUT" "" "" ""
57
58# Removing test dir for cleanup purpose
59rm -rf lstest
60