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" "" "" 34 35ln -s file1.txt lstest/slink 36testing "-l symlink" \ 37 "$IN && ls -l slink | grep -q -- ' slink -> file1.txt' && echo ok ; $OUT" \ 38 "ok\n" "" "" 39rm -f lstest/slink 40 41ln -s /dev/null/nosuchfile lstest/nosuchfile 42testing "with -d - broken softlink" "$IN && ls -d nosuchfile; $OUT" "nosuchfile\n" "" "" 43rm -f lstest/nosuchfile 44 45rm -rf lstest/* && mkdir -p lstest/dir1 && touch lstest/file1.txt 46testing "nested recursively" "$IN && ls -R; $OUT" \ 47 ".:\ndir1\nfile1.txt\n\n./dir1:\n" "" "" 48 49rm -rf lstest/* && touch lstest/file1.txt && INODE=`stat -c %i lstest/file1.txt` 50testing "with -i" "$IN && ls -i 2>/dev/null; $OUT" "$INODE file1.txt\n" "" "" 51unset INODE 52 53# Removing test dir for cleanup purpose 54rm -rf lstest 55