changeset 1485:8700cbe1cb29 draft

Move testsuite out of scripts/test into its own top level tests directory, and make ctrl-c kill "make test" more reliably.
author Rob Landley <rob@landley.net>
date Sat, 20 Sep 2014 13:09:14 -0500
parents 19435f12ec63
children c7d27a6f9022
files scripts/runtest.sh scripts/test.sh scripts/test/basename.test scripts/test/blkid.test scripts/test/blkid/cramfs.bz2 scripts/test/blkid/ext2.bz2 scripts/test/blkid/ext3.bz2 scripts/test/blkid/ext4.bz2 scripts/test/blkid/f2fs.bz2 scripts/test/blkid/minix.bz2 scripts/test/blkid/msdos.bz2 scripts/test/blkid/ntfs.bz2 scripts/test/blkid/reiser3.bz2 scripts/test/blkid/squashfs.bz2 scripts/test/blkid/vfat.bz2 scripts/test/blkid/xfs.bz2 scripts/test/bzcat.test scripts/test/cat.test scripts/test/chgrp.test scripts/test/chmod.test scripts/test/cksum.test scripts/test/cmp.test scripts/test/cp.test scripts/test/cpio.test scripts/test/cut.test scripts/test/dd.test scripts/test/dirname.test scripts/test/du.test scripts/test/echo.test scripts/test/expand.test scripts/test/expr.test scripts/test/factor.test scripts/test/find.test scripts/test/grep.test scripts/test/groupadd.test scripts/test/groupdel.test scripts/test/head.test scripts/test/hostname.test scripts/test/link.test scripts/test/ln.test scripts/test/losetup.test scripts/test/ls.test scripts/test/lsattr.test scripts/test/md5sum.test scripts/test/mkdir.test scripts/test/mkfifo.test scripts/test/modinfo.test scripts/test/mount.test scripts/test/mv.test scripts/test/nl.test scripts/test/pgrep.test scripts/test/printf.test scripts/test/pwd.test scripts/test/readlink.test scripts/test/renice.test scripts/test/rev.test scripts/test/rm.test scripts/test/rmdir.test scripts/test/seq.test scripts/test/sha1sum.test scripts/test/sort.test scripts/test/split.test scripts/test/tac.test scripts/test/tail.test scripts/test/tar.test scripts/test/test.test scripts/test/testing.sh scripts/test/touch.test scripts/test/useradd.test scripts/test/uudecode.test scripts/test/uuencode.test scripts/test/wc.test scripts/test/xargs.test scripts/test/xzcat.test scripts/test/zcat.test tests/basename.test tests/blkid.test tests/blkid/cramfs.bz2 tests/blkid/ext2.bz2 tests/blkid/ext3.bz2 tests/blkid/ext4.bz2 tests/blkid/f2fs.bz2 tests/blkid/minix.bz2 tests/blkid/msdos.bz2 tests/blkid/ntfs.bz2 tests/blkid/reiser3.bz2 tests/blkid/squashfs.bz2 tests/blkid/vfat.bz2 tests/blkid/xfs.bz2 tests/bzcat.test tests/cat.test tests/chgrp.test tests/chmod.test tests/cksum.test tests/cmp.test tests/cp.test tests/cpio.test tests/cut.test tests/dd.test tests/dirname.test tests/du.test tests/echo.test tests/expand.test tests/expr.test tests/factor.test tests/find.test tests/grep.test tests/groupadd.test tests/groupdel.test tests/head.test tests/hostname.test tests/link.test tests/ln.test tests/losetup.test tests/ls.test tests/lsattr.test tests/md5sum.test tests/mkdir.test tests/mkfifo.test tests/modinfo.test tests/mount.test tests/mv.test tests/nl.test tests/pgrep.test tests/printf.test tests/pwd.test tests/readlink.test tests/renice.test tests/rev.test tests/rm.test tests/rmdir.test tests/seq.test tests/sha1sum.test tests/sort.test tests/split.test tests/tac.test tests/tail.test tests/tar.test tests/test.test tests/touch.test tests/useradd.test tests/uudecode.test tests/uuencode.test tests/wc.test tests/xargs.test tests/xzcat.test tests/zcat.test
diffstat 147 files changed, 3341 insertions(+), 3339 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/runtest.sh	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,158 @@
+# Simple test harness infrastructure
+#
+# Copyright 2005 by Rob Landley
+
+# This file defines two functions, "testing" and "optionflag"
+
+# The following environment variables enable optional behavior in "testing":
+#    DEBUG - Show every command run by test script.
+#    VERBOSE - Print the diff -u of each failed test case.
+#              If equal to "fail", stop after first failed test.
+#    SKIP - do not perform this test (this is set by "optionflag")
+#
+# The "testing" function takes five arguments:
+#	$1) Description to display when running command
+#	$2) Command line arguments to command
+#	$3) Expected result (on stdout)
+#	$4) Data written to file "input"
+#	$5) Data written to stdin
+#
+# The exit value of testing is the exit value of the command it ran.
+#
+# The environment variable "FAILCOUNT" contains a cumulative total of the
+# number of failed tests.
+
+# The "optional" function is used to skip certain tests, ala:
+#   optionflag CFG_THINGY
+#
+# The "optional" function checks the environment variable "OPTIONFLAGS",
+# which is either empty (in which case it always clears SKIP) or
+# else contains a colon-separated list of features (in which case the function
+# clears SKIP if the flag was found, or sets it to 1 if the flag was not found).
+
+export FAILCOUNT=0
+export SKIP=
+
+# Helper functions
+
+# Check config to see if option is enabled, set SKIP if not.
+
+optional()
+{
+  option=`echo "$OPTIONFLAGS" | egrep "(^|:)$1(:|\$)"`
+  # Not set?
+  if [ -z "$1" ] || [ -z "$OPTIONFLAGS" ] || [ ${#option} -ne 0 ]
+  then
+    SKIP=""
+    return
+  fi
+  SKIP=1
+}
+
+# The testing function
+
+testing()
+{
+  NAME="$1"
+  [ -z "$1" ] && NAME=$2
+
+  if [ $# -ne 5 ]
+  then
+    echo "Test $NAME has the wrong number of arguments ($# $*)" >&2
+    exit
+  fi
+
+  [ -n "$DEBUG" ] && set -x
+
+  if [ -n "$SKIP" ]
+  then
+    [ ! -z "$VERBOSE" ] && echo "SKIPPED: $NAME"
+    return 0
+  fi
+
+  echo -ne "$3" > expected
+  echo -ne "$4" > input
+  echo -ne "$5" | eval "$2" > actual
+  RETVAL=$?
+
+  cmp expected actual > /dev/null 2>&1
+  if [ $? -ne 0 ]
+  then
+    FAILCOUNT=$[$FAILCOUNT+1]
+    echo "FAIL: $NAME"
+    if [ -n "$VERBOSE" ]
+    then
+      echo "echo '$5' | $2"
+      diff -u expected actual
+      [ "$VERBOSE" == fail ] && exit 1
+    fi
+  else
+    echo "PASS: $NAME"
+  fi
+  rm -f input expected actual
+
+  [ -n "$DEBUG" ] && set +x
+
+  return $RETVAL
+}
+
+# Recursively grab an executable and all the libraries needed to run it.
+# Source paths beginning with / will be copied into destpath, otherwise
+# the file is assumed to already be there and only its library dependencies
+# are copied.
+
+mkchroot()
+{
+  [ $# -lt 2 ] && return
+
+  echo -n .
+
+  dest=$1
+  shift
+  for i in "$@"
+  do
+    [ "${i:0:1}" == "/" ] || i=$(which $i)
+    [ -f "$dest/$i" ] && continue
+    if [ -e "$i" ]
+    then
+      d=`echo "$i" | grep -o '.*/'` &&
+      mkdir -p "$dest/$d" &&
+      cat "$i" > "$dest/$i" &&
+      chmod +x "$dest/$i"
+    else
+      echo "Not found: $i"
+    fi
+    mkchroot "$dest" $(ldd "$i" | egrep -o '/.* ')
+  done
+}
+
+# Set up a chroot environment and run commands within it.
+# Needed commands listed on command line
+# Script fed to stdin.
+
+dochroot()
+{
+  mkdir tmpdir4chroot
+  mount -t ramfs tmpdir4chroot tmpdir4chroot
+  mkdir -p tmpdir4chroot/{etc,sys,proc,tmp,dev}
+  cp -L testing.sh tmpdir4chroot
+
+  # Copy utilities from command line arguments
+
+  echo -n "Setup chroot"
+  mkchroot tmpdir4chroot $*
+  echo
+
+  mknod tmpdir4chroot/dev/tty c 5 0
+  mknod tmpdir4chroot/dev/null c 1 3
+  mknod tmpdir4chroot/dev/zero c 1 5
+
+  # Copy script from stdin
+
+  cat > tmpdir4chroot/test.sh
+  chmod +x tmpdir4chroot/test.sh
+  chroot tmpdir4chroot /test.sh
+  umount -l tmpdir4chroot
+  rmdir tmpdir4chroot
+}
+
--- a/scripts/test.sh	Sat Sep 20 13:07:53 2014 -0500
+++ b/scripts/test.sh	Sat Sep 20 13:09:14 2014 -0500
@@ -2,34 +2,36 @@
 
 [ -z "$TOPDIR" ] && TOPDIR="$(pwd)"
 
-rm -rf testdir
-mkdir -p testdir/testdir
+trap 'kill $(jobs -p) 2>/dev/null; exit 1' INT
+
+rm -rf generated/testdir
+mkdir -p generated/testdir/testdir
 
 if [ -z "$TEST_HOST" ]
 then
   if [ $# -ne 0 ]
   then
-    PREFIX=testdir/ scripts/single.sh "$@" || exit 1
+    PREFIX=generated/testdir/ scripts/single.sh "$@" || exit 1
   else
-    make install_flat PREFIX=testdir || exit 1
+    make install_flat PREFIX=generated/testdir || exit 1
   fi
 fi
 
-cd testdir
+cd generated/testdir
 PATH="$PWD:$PATH"
 cd testdir
 
-. "$TOPDIR"/scripts/test/testing.sh
+. "$TOPDIR"/scripts/runtest.sh
 [ -f "$TOPDIR/generated/config.h" ] && export OPTIONFLAGS=:$(echo $(sed -nr 's/^#define CFG_(.*) 1/\1/p' "$TOPDIR/generated/config.h") | sed 's/ /:/g')
 
 if [ $# -ne 0 ]
 then
   for i in "$@"
   do
-    . "$TOPDIR"/scripts/test/$i.test
+    . "$TOPDIR"/tests/$i.test
   done
 else
-  for i in "$TOPDIR"/scripts/test/*.test
+  for i in "$TOPDIR"/tests/*.test
   do
     CMDNAME="$(echo "$i" | sed 's@.*/\(.*\)\.test@\1@')"
     if [ -h ../$CMDNAME ] || [ ! -z "$TEST_HOST" ]
--- a/scripts/test/basename.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Removal of extra /'s
-testing "basename /-only" "basename ///////" "/\n" "" ""
-testing "basename trailing /" "basename a//////" "a\n" "" ""
-testing "basename combined" "basename /////a///b///c///d/////" "d\n" "" ""
-
-# Standard suffix behavior.
-testing "basename suffix" "basename a/b/c/d.suffix .suffix" "d\n" "" ""
-
-# A suffix cannot be the entire result.
-testing "basename suffix=result" "basename .txt .txt" ".txt\n" "" ""
-
-# Deal with suffix appearing in the filename
-testing "basename reappearing suffix 1" "basename a.txt.txt .txt" "a.txt\n" "" ""
-testing "basename reappearing suffix 2" "basename a.txt.old .txt" "a.txt.old\n" "" ""
-
-# A suffix should be a real suffix, only a the end.
-testing "basename invalid suffix" "basename isthisasuffix? suffix" "isthisasuffix?\n" "" ""
--- a/scripts/test/blkid.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-BDIR="$TOPDIR/scripts/test/blkid"
-
-bzcat "$BDIR"/squashfs.bz2 > temp.img
-testing "blkid file" "blkid temp.img" 'temp.img: TYPE="squashfs"\n' "" ""
-rm temp.img
-
-testing "blkid cramfs" 'bzcat "$BDIR"/cramfs.bz2 | blkid -' \
-  '-: LABEL="mycramfs" TYPE="cramfs"\n' "" ""
-testing "blkid ext2" 'bzcat "$BDIR"/ext2.bz2 | blkid -' \
-  '-: LABEL="myext2" UUID="e59093ba-4135-4fdb-bcc4-f20beae4dfaf" TYPE="ext2"\n' \
-  "" "" 
-testing "blkid ext3" 'bzcat "$BDIR"/ext3.bz2 | blkid -' \
-  '-: LABEL="myext3" UUID="79d1c877-1a0f-4e7d-b21d-fc32ae3ef101" TYPE="ext2"\n' \
-  "" "" 
-testing "blkid ext4" 'bzcat "$BDIR"/ext4.bz2 | blkid -' \
-  '-: LABEL="myext4" UUID="dc4b7c00-c0c0-4600-af7e-0335f09770fa" TYPE="ext2"\n' \
-  "" ""
-testing "blkid f2fs" 'bzcat "$BDIR"/f2fs.bz2 | blkid -' \
-  '-: LABEL="" UUID="b53d3619-c204-4c0b-8504-36363578491c" TYPE="f2fs"\n' \
-  "" ""
-testing "blkid msdos" 'bzcat "$BDIR"/msdos.bz2 | blkid -' \
-  '-: LABEL="mymsdos    " UUID="5108-1e6e" TYPE="vfat"\n' "" ""
-testing "blkid ntfs" 'bzcat "$BDIR"/ntfs.bz2 | blkid -' \
-  '-: UUID="8585600838bfe16e" TYPE="ntfs"\n' "" ""
-testing "blkid reiserfs" 'bzcat "$BDIR"/reiser3.bz2 | blkid -' \
-  '-: LABEL="" UUID="a5b99bec-45cc-41d7-986e-32f4b6fc28f2" TYPE="reiserfs"\n' \
-  "" ""
-testing "blkid squashfs" 'bzcat "$BDIR"/squashfs.bz2 | blkid -' \
-  '-: TYPE="squashfs"\n' "" ""
-testing "blkid vfat" 'bzcat "$BDIR"/vfat.bz2 | blkid -' \
-  '-: LABEL="myvfat     " UUID="1db9-5673" TYPE="vfat"\n' "" ""
-testing "blkid xfs" 'bzcat "$BDIR"/xfs.bz2 | blkid -' \
-  '-: LABEL="XFS_test" UUID="d63a1dc3-27d5-4dd4-8b38-f4f97f495c6f" TYPE="xfs"\n' \
-  "" ""
-
-#testing "blkid minix" 'bzcat "$BDIR"/minix.bz2 | blkid -'
-#adfs bfs btrfs cramfs jfs nilfs romfs
-#vfat  // fat32 fat12 fat16
Binary file scripts/test/blkid/cramfs.bz2 has changed
Binary file scripts/test/blkid/ext2.bz2 has changed
Binary file scripts/test/blkid/ext3.bz2 has changed
Binary file scripts/test/blkid/ext4.bz2 has changed
Binary file scripts/test/blkid/f2fs.bz2 has changed
Binary file scripts/test/blkid/minix.bz2 has changed
Binary file scripts/test/blkid/msdos.bz2 has changed
Binary file scripts/test/blkid/ntfs.bz2 has changed
Binary file scripts/test/blkid/reiser3.bz2 has changed
Binary file scripts/test/blkid/squashfs.bz2 has changed
Binary file scripts/test/blkid/vfat.bz2 has changed
Binary file scripts/test/blkid/xfs.bz2 has changed
--- a/scripts/test/bzcat.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-echo "hello" > file
-tar -cjf file.tar.bz2 file
-# Get system bzcat
-bzcatExe=`which bzcat`
-$bzcatExe file.tar.bz2 > bzcatOut
-testing "bzcat - decompresses a single file" "bzcat file.tar.bz2 > Tempfile && echo "yes"; diff Tempfile bzcatOut && echo "yes"; rm -rf file* bzcatOut Tempfile" "yes\nyes\n" "" ""
-
-#testing "name" "command" "result" "infile" "stdin"
-echo "hello" > file1
-echo "hi" > file2
-echo "Hi, Good morning !! I am a bzcat tester" > file3
-tar -cjf file1.tar.bz2 file1
-tar -cjf file2.tar.bz2 file2
-tar -cjf file3.tar.bz2 file3
-# Get system bzcat
-bzcatExe=`which bzcat`
-$bzcatExe file1.tar.bz2 file2.tar.bz2 file3.tar.bz2 > bzcatOut
-testing "bzcat - decompresses multiple files" "bzcat file1.tar.bz2 file2.tar.bz2 file3.tar.bz2 > Tempfile && echo "yes" ; diff Tempfile bzcatOut && echo "yes"; rm -rf file* bzcatOut Tempfile " "yes\nyes\n" "" ""
--- a/scripts/test/cat.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-echo "one" > file1
-echo "two" > file2
-testing "cat" "cat && echo yes" "oneyes\n" "" "one"
-testing "cat -" "cat - && echo yes" "oneyes\n" "" "one"
-testing "cat file1 file2" "cat file1 file2" "one\ntwo\n"  "" ""
-testing "cat - file"      "cat - file1"     "zero\none\n" "" "zero\n"
-testing "cat file -"      "cat file1 -"     "one\nzero\n" "" "zero\n"
-
-testing "cat file1 notfound file2" \
-        "cat file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
-        "one\ntwo\ncat: notfound: No such file or directory\n" "" ""
-
-testing "cat file1" \
-        "cat /proc/self/exe > file1 && cmp /proc/self/exe file1 && echo yes" \
-        "yes\n" "" ""
-
-testing "cat - file1" \
-        "cat - file1 | diff -a -U 0 - file1 | tail -n 1" \
-        "-hello\n" "" "hello\n"
-
-testing "cat > /dev/full" \
-        "cat - > /dev/full 2>stderr && echo ok; cat stderr; rm stderr" \
-        "cat: xwrite: No space left on device\n" "" "zero\n"
-
-rm file1 file2
\ No newline at end of file
--- a/scripts/test/chgrp.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-if [ "$(id -u)" -ne 0 ]
-then
-  echo "SKIPPED: chgrp (not root)"
-  continue 2>/dev/null
-  exit
-fi
-
-# We chgrp between "root" and the last group in /etc/group.
-
-GRP="$(sed -n '$s/:.*//p' /etc/group)"
-
-# Set up a little testing hierarchy
-
-rm -rf testdir &&
-mkdir -p testdir/dir/dir/dir testdir/dir2 &&
-touch testdir/dir/file &&
-ln -s ../dir/dir testdir/dir2/dir &&
-ln -s ../dir/file testdir/dir2/file || exit 1
-
-# Wrapper to reset groups and return results
-
-IN="cd testdir && chgrp -R $GRP dir dir2 &&"
-OUT="&& cd .. && echo \$(ls -lR testdir | awk '{print \$4}')"
-
-# The groups returned by $OUT are, in order:
-# dir dir2 dir/dir dir/file dir/dir/dir dir2/dir dir2/file
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Basic smoketest
-testing "chgrp dir" "$IN chgrp root dir $OUT" \
-	"root $GRP $GRP $GRP $GRP $GRP $GRP\n" "" ""
-testing "chgrp file" "$IN chgrp root dir/file $OUT" \
-	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
-testing "chgrp dir and file" "$IN chgrp root dir dir/file $OUT" \
-	"root $GRP $GRP root $GRP $GRP $GRP\n" "" ""
-
-# symlinks (affect target, not symlink)
-testing "chgrp symlink->file" "$IN chgrp root dir2/file $OUT" \
-	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
-testing "chgrp symlink->dir" "$IN chgrp root dir2/dir $OUT" \
-	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
-testing "chgrp -h symlink->dir" "$IN chgrp -h root dir2/dir $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
-
-# What does -h do (affect symlink, not target)
-testing "chgrp -h symlink->file" "$IN chgrp -h root dir2/file $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP $GRP root\n" "" ""
-testing "chgrp -h symlink->dir" "$IN chgrp -h root dir2/dir $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
-
-# chgrp -R (note, -h is implied by -R)
-
-testing "chgrp -R dir" "$IN chgrp -R root dir $OUT" \
-	"root $GRP root root root $GRP $GRP\n" "" ""
-testing "chgrp -R dir2" "$IN chgrp -R root dir2 $OUT" \
-	"$GRP root $GRP $GRP $GRP root root\n" "" ""
-testing "chgrp -R symlink->dir" "$IN chgrp -R root dir2/dir $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
-testing "chgrp -R symlink->file" "$IN chgrp -R root dir2/file $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP $GRP root\n" "" ""
-
-# chgrp -RP (same as -R by itself)
-
-testing "chgrp -RP dir2" "$IN chgrp -RP root dir2 $OUT" \
-	"$GRP root $GRP $GRP $GRP root root\n" "" ""
-testing "chgrp -RP symlink->dir" "$IN chgrp -RP root dir2/dir $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
-testing "chgrp -RP symlink->file" "$IN chgrp -RP root dir2/file $OUT" \
-	"$GRP $GRP $GRP $GRP $GRP $GRP root\n" "" ""
-
-# chgrp -RH (change target but only recurse through symlink->dir on cmdline)
-
-testing "chgrp -RH dir2" "$IN chgrp -RH root dir2 $OUT" \
-	"$GRP root root root $GRP $GRP $GRP\n" "" ""
-testing "chgrp -RH symlink->dir" "$IN chgrp -RH root dir2/dir $OUT" \
-	"$GRP $GRP root $GRP root $GRP $GRP\n" "" ""
-testing "chgrp -RH symlink->file" "$IN chgrp -RH root dir2/file $OUT" \
-	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
-
-# chgrp -RL (change target and always recurse through symlink->dir)
-
-testing "chgrp -RL dir2" "$IN chgrp -RL root dir2 $OUT" \
-	"$GRP root root root root $GRP $GRP\n" "" ""
-testing "chgrp -RL symlink->dir" "$IN chgrp -RL root dir2/dir $OUT" \
-	"$GRP $GRP root $GRP root $GRP $GRP\n" "" ""
-testing "chgrp -RL symlink->file" "$IN chgrp -RL root dir2/file $OUT" \
-	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
-
-# -HLP are NOPs without -R
-testing "chgrp -H without -R" "$IN chgrp -H root dir2/dir $OUT" \
-	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
-testing "chgrp -L without -R" "$IN chgrp -L root dir2/dir $OUT" \
-	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
-testing "chgrp -P without -R" "$IN chgrp -P root dir2/dir $OUT" \
-	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
-
-rm -rf testdir
--- a/scripts/test/chmod.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-
-#testing "name" "command" "result" "infile" "stdin"
-
-PERM="---""--x""-w-""-wx""r--""r-x""rw-""rwx"
-
-num2perm()
-{
-  for i in 0 1 2
-  do
-    num=${1:$i:1}
-    printf "%s" ${PERM:$(($num*3)):3}
-  done
-  echo
-}
-
-# Creating test files to test chmod command
-mkdir dir
-touch file
-
-# We don't need to test all 511 permissions
-for u in 0 1 2 3 4 5 6 7
-do
-  for g in 0 3 6
-  do
-    for o in 0 7
-    do
-      if [ "$type" == file ]
-      then
-        type=dir
-        rm -rf "./$type" && mkdir $type
-        DASH=d
-      else
-        type=file
-        rm -f "./$type" && touch $type
-        DASH=-
-      fi
-      DASHES=$(num2perm $u$g$o)
-      testing "chmod $u$g$o $type" "chmod $u$g$o $type && 
-        ls -ld $type | cut -d' ' -f 1 | cut -d. -f 1" "$DASH$DASHES\n" "" ""
-    done
-  done
-done
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod 750 dir 640 file" \
-  "chmod 750 dir 640 file 2>/dev/null ||
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x---\n-rwxr-x---\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod 666 dir file" \
-  "chmod 666 dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-rw-rw-\n-rw-rw-rw-\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod 765 *" "chmod 765 * &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxrw-r-x\n-rwxrw-r-x\n" "" ""
-
-##### u,g,o,a=r,w,x
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u=r dir file" "chmod u=r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr--r-xr-x\n-r--r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u=w dir file" "chmod u=w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-w-r-xr-x\n--w-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u=x dir file" "chmod u=x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d--xr-xr-x\n---xr--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u+r dir file" "chmod u+r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u+w dir file" "chmod u+w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u+x dir file" "chmod u+x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rwxr--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u-r dir file" "chmod u-r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-wxr-xr-x\n--w-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u-w dir file" "chmod u-w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr-xr-xr-x\n-r--r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod u-x dir file" "chmod u-x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-r-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g=r dir file" "chmod g=r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr--r-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g=w dir file" "chmod g=w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwx-w-r-x\n-rw--w-r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g=x dir file" "chmod g=x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwx--xr-x\n-rw---xr--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g+r dir file" "chmod g+r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g+w dir file" "chmod g+w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxrwxr-x\n-rw-rw-r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g+x dir file" "chmod g+x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r-xr--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g-r dir file" "chmod g-r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwx--xr-x\n-rw----r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g-w dir file" "chmod g-w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod g-x dir file" "chmod g-x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr--r-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o=r dir file" "chmod o=r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr--\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o=w dir file" "chmod o=w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x-w-\n-rw-r---w-\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o=x dir file" "chmod o=x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x--x\n-rw-r----x\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o+r dir file" "chmod o+r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o+w dir file" "chmod o+w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xrwx\n-rw-r--rw-\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o+x dir file" "chmod o+x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r-x\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o-r dir file" "chmod o-r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x--x\n-rw-r-----\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o-w dir file" "chmod o-w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod o-x dir file" "chmod o-x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr--\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a=r dir file" "chmod a=r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr--r--r--\n-r--r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a=w dir file" "chmod a=w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-w--w--w-\n--w--w--w-\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a=x dir file" "chmod a=x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d--x--x--x\n---x--x--x\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a+r dir file" "chmod a+r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a+w dir file" "chmod a+w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxrwxrwx\n-rw-rw-rw-\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a+x dir file" "chmod a+x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rwxr-xr-x\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a-r dir file" "chmod a-r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-wx--x--x\n--w-------\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a-w dir file" "chmod a-w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr-xr-xr-x\n-r--r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod a-x dir file" "chmod a-x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-r--r--\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod =r dir file" "chmod =r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr--r--r--\n-r--r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod =w dir file" "chmod =w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-w-------\n--w-------\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod =x dir file" "chmod =x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d--x--x--x\n---x--x--x\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod +r dir file" "chmod +r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod +w dir file" "chmod +w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod +x dir file" "chmod +x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rwxr-xr-x\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod -r dir file" "chmod -r dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-wx--x--x\n--w-------\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod -w dir file" "chmod -w dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr-xr-xr-x\n-r--r--r--\n" "" ""
-
-rm -rf dir file && mkdir dir && touch file
-testing "chmod -x dir file" "chmod -x dir file &&
-   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-r--r--\n-rw-r--r--\n" "" ""
-
-# Removing test files for cleanup purpose
-rm -rf dir file
--- a/scripts/test/cksum.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Default behavior on stdin and on files.
-testing "cksum on stdin" "echo -n hello | cksum" "3287646509 5\n" "" ""
-echo -n "hello" > tmpfile
-testing "cksum on file" "cksum tmpfile" "3287646509 5 tmpfile\n" "" ""
-rm -f tmpfile
-touch one two
-testing "cksum on multiple files" "cksum one two" "4294967295 0 one\n4294967295 0 two\n" "" ""
-rm -f one two
-
-# Check the length suppression, both calculate the CRC on 'abc' but the second
-# option has length suppression on and has the length concatenated to 'abc'.
-testing "cksum on abc including length" "echo -n 'abc' | cksum" "1219131554 3\n" "" ""
-testing "cksum on abc excluding length" "echo -ne 'abc\x3' | cksum -N" "1219131554 4\n" "" ""
-
-# cksum on no contents gives 0xffffffff (=4294967295)
-testing "cksum on no data post-inversion" "echo -n "" | cksum" "4294967295 0\n" "" ""
-# If we do preinversion we will then get 0.
-testing "cksum on no data pre+post-inversion" "echo -n "" | cksum -P" "0 0\n" "" ""
-# If we skip the post-inversion we also get 0
-testing "cksum on no data no inversion" "echo -n "" | cksum -I" "0 0\n" "" ""
-# Two wrongs make a right.
-testing "cksum on no data pre-inversion" "echo -n "" | cksum -PI" "4294967295 0\n" "" ""
--- a/scripts/test/cmp.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-testing "cmp not enough arguments [fail]" "cmp input 2>/dev/null || echo yes" "yes\n" "foo" ""
-testing "cmp missing file1 [fail]" "cmp file1 input 2>/dev/null || echo yes" "yes\n" "foo" ""
-
-#mkdir dir
-#testing "cmp directory [fail]" "cmp dir dir 2>/dev/null || echo yes" \
-	#"yes\n" "" ""
-#rmdir dir
-
-echo "ab
-c" > input2
-
-testing "cmp identical files, stdout" "cmp input input2" "" "ab\nc\n" ""
-testing "cmp identical files, return code" "cmp input input2 && echo yes" "yes\n" "ab\nc\n" ""
-
-testing "cmp EOF, stderr" "cmp input input2 2>&1" "cmp: EOF on input2\n" "ab\nc\nx" ""
-testing "cmp EOF, return code" "cmp input input2 2>/dev/null || echo yes" "yes\n" "ab\nc\nx" ""
-# The gnu/dammit version fails this because posix says "char" and they don't.
-testing "cmp diff, stdout" "cmp input input2" "input input2 differ: char 4, line 2\n" "ab\nx\nx" ""
-testing "cmp diff, return code" "cmp input input2 > /dev/null || echo yes" "yes\n" "ab\nx\nx" ""
-
-testing "cmp -s EOF, return code" "cmp -s input input2 || echo yes"  "yes\n" "ab\nc\nx" ""
-testing "cmp -s diff, return code" "cmp -s input input2 || echo yes" "yes\n" "ab\nx\nx" ""
-
-testing "cmp -l EOF, stderr" "cmp -l input input2 2>&1" "cmp: EOF on input2\n" "ab\nc\nx" ""
-testing "cmp -l diff and EOF, stdout and stderr" "cmp -l input input2 2>&1 | sort" "4 170 143\ncmp: EOF on input2\n" "ab\nx\nx" ""
-
-rm input2
-
-testing "cmp stdin and file" "cmp input -" "input - differ: char 4, line 2\n" "ab\nc\n" "ab\nx\n"
-#testing "cmp stdin and stdin" "cmp input -" "" "" "ab\nc\n"
-
--- a/scripts/test/cp.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-# Create test file
-dd if=/dev/urandom of=random bs=64 count=1 2> /dev/null
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "cp not enough arguments [fail]" "cp one 2>/dev/null || echo yes" \
-	"yes\n" "" ""
-testing "cp -missing source [fail]" "cp missing two 2>/dev/null || echo yes" \
-	"yes\n" "" ""
-testing "cp file->file" "cp random two && cmp random two && echo yes" \
-	"yes\n" "" ""
-rm two
-
-mkdir two
-testing "cp file->dir" "cp random two && cmp random two/random && echo yes" \
-	"yes\n" "" ""
-rm two/random
-testing "cp file->dir/file" \
-	"cp random two/random && cmp random two/random && echo yes" \
-	"yes\n" "" ""
-testing "cp -r dir->missing" \
-	"cp -r two three && cmp random three/random && echo yes" \
-	"yes\n" "" ""
-touch walrus
-testing "cp -r dir->file [fail]" \
-	"cp -r two walrus 2>/dev/null || echo yes" "yes\n" "" ""
-touch two/three
-testing "cp -r dir hits file." \
-	"cp -r three two 2>/dev/null || echo yes" "yes\n" "" ""
-rm -rf two three walrus
-
-touch two
-chmod 000 two
-testing "cp file->inaccessable [fail]" \
-	"cp random two 2>/dev/null || echo yes" "yes\n" "" ""
-rm -f two
-
-touch two
-chmod 000 two
-testing "cp -f file->inaccessable" \
-	"cp -f random two && cmp random two && echo yes" "yes\n" "" ""
-mkdir sub
-chmod 000 sub
-testing "cp file->inaccessable_dir [fail]" \
-	"cp random sub 2>/dev/null || echo yes" "yes\n" "" ""
-rm two
-rmdir sub
-
-# This test fails because our -rf deletes existing target files without
-# regard to what we'd be copying over it. Posix says to only do that if
-# we'd be copying a file over the file, but does not say _why_.
-
-#mkdir dir
-#touch file
-#testing "cp -rf dir file [fail]" "cp -rf dir file 2>/dev/null || echo yes" \
-#	"yes\n" "" ""
-#rm -rf dir file
-
-touch one two
-testing "cp file1 file2 missing [fail]" \
-	"cp one two missing 2>/dev/null || echo yes" "yes\n" "" ""
-mkdir dir
-testing "cp dir file missing [fail]" \
-	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
-testing "cp -rf dir file missing [fail]" \
-	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
-testing "cp file1 file2 file [fail]" \
-	"cp random one two 2>/dev/null || echo yes" "yes\n" "" ""
-testing "cp file1 file2 dir" \
-	"cp random one dir && cmp random dir/random && cmp one dir/one && echo yes" \
-	"yes\n" "" ""
-rm one two random
-rm -rf dir
-
-mkdir -p one/two/three/four
-touch one/two/three/five
-touch one/{six,seven,eight}
-testing "cp -r /abspath dest" \
-	"cp -r \"$(readlink -f one)\" dir && diff -r one dir && echo yes" \
-	"yes\n" "" ""
-testing "cp -r dir again" "cp -r one/. dir && diff -r one dir && echo yes" \
-	"yes\n" "" ""
-mkdir dir2
-testing "cp -r dir1/* dir2" \
-	"cp -r one/* dir2 && diff -r one dir2 && echo yes" "yes\n" "" ""
-rm -rf one dir dir2
-
-# cp -r ../source destdir
-# cp -r one/two/three missing
-# cp -r one/two/three two
-# mkdir one; touch one/two; ln -s two one/three
-# cp file1 file2 dir
-# cp file1 missing file2 -> dir
-
-# Make sure it's truncating existing file
-# copy with -d at top level, with -d in directory, without -d at top level,
-#      without -d in directory
--- a/scripts/test/cpio.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-# We need to test name and file padding.
-# This means all possible values of strlen(name)+1 % 4,
-# plus file sizes of at least 0-4.
-
-touch a bb ccc dddd
-testing "cpio name padding" "cpio -o -H newc|cpio -it" "a\nbb\nccc\ndddd\n" "" "a\nbb\nccc\ndddd\n"
-rm a bb ccc dddd
-
-touch a
-printf '1' >b
-printf '22' >c
-printf '333' >d
-testing "cpio file padding" "cpio -o -H newc|cpio -it" "a\nb\nc\nd\n" "" "a\nb\nc\nd\n"
-rm a b c d
-
-touch a
-printf '1' >bb
-printf '22' >ccc
-printf '333' >dddd
-# With the proper padding, header length, and file length, 
-# the relevant bit should be here:
-# 110*5 + 4*3 + 2 + 6*3 = 550 + 12 + 20 = 582
-# files are padded to n*4, names are padded to 2 + n*4 due to the header length
-testing "cpio archive length" "cpio -o -H newc|dd ibs=2 skip=291 count=5" "TRAILER!!!" "" "a\nbb\nccc\ndddd\n"
-testing "cpio archive magic" "cpio -o -H newc|dd ibs=2 count=3" "070701" "" "a\n"
-# check name length (8 bytes before the empty "crc")
-testing "cpio name length" "cpio -o -H newc|dd ibs=2 skip=47 count=4" "00000002" "" "a\n"
-rm a bb ccc dddd
-
-# archive dangling symlinks and empty files even if we cannot open them
-touch a; chmod a-rwx a; ln -s a/cant b
-testing "cpio archives unreadable empty files" "cpio -o -H newc|cpio -it" "a\nb\n" "" "a\nb\n"
-chmod u+rw a; rm -f a b
-
-
--- a/scripts/test/cut.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013  Kyungwan.Han <asura321@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-#set -x
-
-# Creating test file for testing cut
-echo "one:two:three:four:five:six:seven
-alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu
-the quick brown fox jumps over the lazy dog" >abc.txt
-
-testing "cut with -c (a-b)" "cut -c 4-10 abc.txt" ":two:th\nha:beta\n quick \n" "" ""
-testing "cut with -f (a-)" "cut -d ':' -f 5- abc.txt" "five:six:seven\nepsilon:zeta:eta:teta:iota:kappa:lambda:mu\nthe quick brown fox jumps over the lazy dog\n" "" ""
-
-testing "cut with -f (a)" "cut -d ' ' -f 3 abc.txt" "one:two:three:four:five:six:seven\nalpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu\nbrown\n" "" ""
-
-testing "cut with echo, -c (a-b)" "echo 'ref_categorie=test' | cut -c 1-15 " "ref_categorie=t\n" "" ""
-testing "cut with echo, -c (a)" "echo 'ref_categorie=test' | cut -c 14" "=\n" "" ""
-
-# Modifying abc.txt data as per new testcase
-echo "abcdefghijklmnopqrstuvwxyz" >abc.txt
-
-testing "cut with -c (a,b,c)" "cut -c 4,5,20 abc.txt" "det\n" "" ""
-
-testing "cut with -b (a,b,c)" "cut -b 4,5,20 abc.txt" "det\n" "" ""
-
-# Modifying abc.txt data as per testcase
-echo "406378:Sales:Itorre:Jan
-031762:Marketing:Nasium:Jim
-636496:Research:Ancholie:Mel
-396082:Sales:Jucacion:Ed" >abc.txt
-
-testing "cut with -d -f(:) -s" "cut -d: -f3 -s abc.txt" "Itorre\nNasium\nAncholie\nJucacion\n" "" ""
-
-testing "cut with -d -f( ) -s" "cut -d' ' -f3 -s abc.txt && echo yes" "yes\n" "" ""
-
-testing "cut with -d -f(a) -s" "cut -da -f3 -s abc.txt" "n\nsium:Jim\n\ncion:Ed\n" "" ""
-
-testing "cut with -d -f(a) -s -n" "cut -da -f3 -s -n abc.txt" "n\nsium:Jim\n\ncion:Ed\n" "" ""
-
-# Removing abc.txt file for cleanup purpose
-rm abc.txt
--- a/scripts/test/dd.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-# 'dd' command, stderr prints redirecting to /dev/null
-opt="2>/dev/null"
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "dd if=(file)" "dd if=input $opt" "I WANT\n" "I WANT\n" ""
-testing "dd of=(file)" "dd of=file $opt && cat file" "I WANT\n" "" "I WANT\n"
-testing "dd if=file of=file" "dd if=input of=foo $opt && cat foo && rm -f foo" \
-  "I WANT\n" "I WANT\n" ""
-testing "dd if=file | dd of=file" "dd if=input $opt | dd of=foo $opt &&
-   cat foo && rm -f foo" "I WANT\n" "I WANT\n" ""
-testing "dd (stdout)" "dd $opt" "I WANT\n" "" "I WANT\n"
-testing "dd sync,noerror" \
-  "dd if=input of=outFile seek=8860 bs=1M conv=sync,noerror $opt &&
-   stat -c \"%s\" outFile && rm -f outFile" "9291431936\n" "I WANT\n" ""
-testing "dd if=file of=(null)" \
-  "dd if=input of=/dev/null $opt && echo 'yes'" "yes\n" "I WANT\n" ""
-testing "dd with if of bs" \
-  "dd if=/dev/zero of=sda.txt bs=512 count=1 $opt &&
-   stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
-testing "dd with if of ibs obs" \
-  "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=1 $opt &&
-   stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
-testing "dd with if of ibs obs count" \
-  "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=3 $opt &&
-   stat -c '%s' sda.txt && rm -f sda.txt" "1536\n" "" ""
-
-ln -s input softlink
-testing "dd if=softlink" "dd if=softlink $opt" "I WANT\n" "I WANT\n" ""
-unlink softlink
-
-ln -s file softlink
-testing "dd if=file of=softlink" "dd if=input of=softlink $opt &&
-   [ -f file -a -L softlink ] && cat softlink" "I WANT\n" "I WANT\n" ""
-unlink softlink && rm -f file
-
-testing "dd if=file of=file (same file)" "dd if=input of=input $opt &&
-   [ -f input ] && cat input && echo 'yes'" "yes\n" "I WANT\n" ""
-
-testing "dd with ibs obs bs" "dd ibs=2 obs=5 bs=9 $opt" "I WANT\n" "" "I WANT\n"
-testing "dd with ibs obs bs if" "dd ibs=2 obs=5 bs=9 if=input $opt" \
-  "I WANT\n" "I WANT\n" ""
-
-testing "dd with ibs obs count" "dd ibs=1 obs=1 count=1 $opt" "I" "" "I WANT\n"
-testing "dd with ibs obs count if" "dd ibs=1 obs=1 count=3 if=input $opt" \
-  "I W" "I WANT\n" ""
-
-testing "dd with count" "dd count=1 $opt" "I WANT\n" "" "I WANT\n"
-testing "dd with count if" "dd count=1 if=input $opt" "I WANT\n" "I WANT\n" ""
-
-testing "dd with skip" "dd skip=0 $opt" "I WANT\n" "" "I WANT\n"
-testing "dd with skip if" "dd skip=0 if=input $opt" "I WANT\n" "I WANT\n" ""
-
-testing "dd with seek" "dd seek=0 $opt" "I WANT\n" "" "I WANT\n"
-testing "dd with seek if" "dd seek=0 if=input $opt" "I WANT\n" "I WANT\n" ""
-
-# These type of conv is not supported in toybox: 'ascii', 'ebcdic', 'ibm',
-# 'block', 'unblock', 'nocreat', 'notronc', 'lcase', 'ucase', 'excl', 'swab'
-
-# Testing only 'notrunc', 'noerror', 'fsync', 'sync'
-
-testing "dd conv=notrunc" "dd conv=notrunc $opt" "I WANT\n" "" "I WANT\n"
-testing "dd conv=notrunc with IF" "dd conv=notrunc if=input $opt" "I WANT\n" \
-  "I WANT\n" ""
-
-testing "dd conv=noerror" "dd conv=noerror $opt" "I WANT\n" "" "I WANT\n"
-testing "dd conv=noerror with IF" "dd conv=noerror if=input $opt" "I WANT\n" \
-  "I WANT\n" ""
-
-testing "dd conv=fsync" "dd conv=fsync $opt" "I WANT\n" "" "I WANT\n"
-testing "dd conv=fsync with IF" "dd conv=fsync if=input $opt" "I WANT\n" \
-  "I WANT\n" ""
-
-testing "dd conv=sync" "dd conv=sync $opt | head -n 1" "I WANT\n" "" "I WANT\n"
-testing "dd conv=sync with IF" "dd conv=sync if=input $opt | head -n 1" "I WANT\n" \
-  "I WANT\n" ""
--- a/scripts/test/dirname.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "dirname /-only" "dirname ///////" "/\n" "" ""
-testing "dirname trailing /" "dirname a//////" ".\n" "" ""
-testing "dirname combined" "dirname /////a///b///c///d/////" "/////a///b///c\n" "" ""
-testing "dirname /a/" "dirname /////a///" "/\n" "" ""
--- a/scripts/test/du.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# we only test with -k since getting POSIX version is variable
-# POSIXLY_CORRECT is sometimes needed, sometimes -P is needed,
-# while -k is the default on most Linux systems
-
-mkdir -p du_test/test du_2/foo
-testing "du (no options)" "du -k du_test" "4\tdu_test/test\n8\tdu_test\n" "" ""
-testing "du -s" "du -k -s du_test" "8\tdu_test\n" "" ""
-ln -s ../du_2 du_test/xyz
-# "du shall count the size of the symbolic link"
-# I assume this means the space used to store the link name
-testing "du counts symlinks without following" "du -ks du_test" "12\tdu_test\n" "" ""
-testing "du -L follows symlinks" "du -ksL du_test" "16\tdu_test\n" "" ""
-# if -H and -L are specified, the last takes priority
-testing "du -HL follows symlinks" "du -ksHL du_test" "16\tdu_test\n" "" ""
-testing "du -H does not follow unspecified symlinks" "du -ksH du_test" "12\tdu_test\n" "" ""
-testing "du -LH does not follow unspecified symlinks" "du -ksLH du_test" "12\tdu_test\n" "" ""
-testing "du -H follows specified symlinks" "du -ksH du_test/xyz" "8\tdu_test/xyz\n" "" ""
-
-rm -rf du_test du_2
-
--- a/scripts/test/echo.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-# This one's tricky both because echo is a shell builtin (so $PATH is
-# irrelevant) and because the "result" field is parsed with echo -e.
-# To make it work, "$CMD" is an explicit path to the command being tested,
-# so "result" keeps using the shell builtin but we test the one in toybox.
-
-CMD="$(which echo)"
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "echo" "$CMD && echo yes" "\nyes\n" "" ""
-testing "echo 1 2 3" "$CMD one  two	three" "one two three\n" "" ""
-testing "echo with spaces" "$CMD 'one  two	three'" \
-	"one  two	three\n" "" ""
-testing "echo -n" "$CMD -n" "" "" ""
-testing "echo -n one" "$CMD -n one" "one" "" ""
-testing "echo one -n" "$CMD one -n" "one -n\n" "" ""
-testing "echo -en" "$CMD -en 'one\ntwo'" "one\ntwo" "" ""
-testing "echo --hello" "$CMD --hello" "--hello\n" "" ""
-testing "echo -e all" "$CMD -e '\a\b\c\f\n\r\t\v\\\0123'" \
-	"\a\b\c\f\n\r\t\v\\\0123\n" "" ""
-testing "echo -nex hello" "$CMD -nex hello" "-nex hello\n" "" ""
-
-# Octal formatting tests
-testing "echo -e octal values" \
-	"$CMD -ne '\01234 \0060 \060 \0130\0131\0132 \077\012'" \
-	"S4 0 0 XYZ ?\n" "" ""
-
-# Hexadecimal value tests
-testing "echo -e hexadecimal values" \
-	"$CMD -ne '\x534 \x30 \x58\x59\x5a \x3F\x0A'"\
-	"S4 0 XYZ ?\n" "" ""
-
-testing "echo -e \p" "$CMD -e '\\p'" "\\p\n" "" ""
--- a/scripts/test/expand.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#!/bin/bash
-
-# POSIX 2008 compliant expand tests.
-# Copyright 2012 by Jonathan Clairembault <jonathan@clairembault.fr>
-
-[ -f testing.sh ] && . testing.sh
-
-# some basic tests
-
-testing "expand default" "expand input" "        foo     bar\n" "\tfoo\tbar\n" ""
-testing "expand default stdin" "expand"  "        foo     bar\n" "" "\tfoo\tbar\n"
-testing "expand single" "expand -t 2 input" "  foo bar\n" "\tfoo\tbar\n" ""
-testing "expand tablist" "expand -t 5,10,12 input" "     foo  bar foo\n" "\tfoo\tbar\tfoo\n" ""
-testing "expand backspace" "expand input" "foobarfoo\b\b bar\n" "foobarfoo\b\b\tbar\n" ""
-
-# advanced tests
-
-POW=15
-TABSTOP=1
-BIGTAB=" "
-for i in $(seq $POW); do
-    BIGTAB=$BIGTAB$BIGTAB
-    TABSTOP=$[$TABSTOP*2]
-done
-testing "expand long tab single" "expand -t $TABSTOP input" "${BIGTAB}foo\n" "\tfoo\n" ""
-testing "expand long tab tablist" "expand -t $TABSTOP,$[TABSTOP+5] input" \
-        "${BIGTAB}foo  bar\n" "\tfoo\tbar\n" ""
-
-testing "expand multiline single" "expand -t 4 input" "foo \n    bar\n" "foo\t\n\tbar\n" ""
-testing "expand multiline tablist" "expand -t 4,8 input" \
-        "foo     bar\n    bar foo\n" "foo\t\tbar\n\tbar\tfoo\n" ""
-POW=15
-BIGLINE="foo "
-for i in $(seq $POW); do
-    BIGLINE=$BIGLINE$BIGLINE
-done
-if [ $POW -gt 0 ]; then
-    EXPANDLINE="${BIGLINE}        foo\n"
-else
-    EXPANDLINE="${BIGLINE}    foo\n"
-fi
-BIGLINE="${BIGLINE}\tfoo\n"
-testing "expand long line single" "expand input" \
-        "${EXPANDLINE}" "$BIGLINE" ""
--- a/scripts/test/expr.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-testing "expr integer" "expr 5" "5\n" "" ""
-testing "expr integer negative" "expr -5" "-5\n" "" ""
-testing "expr string" "expr astring" "astring\n" "" ""
-testing "expr 1 + 3" "expr 1 + 3" "4\n" "" ""
-testing "expr 5 + 6 * 3" "expr 5 + 6 \* 3" "23\n" "" ""
-testing "expr ( 5 + 6 ) * 3" "expr \( 5 + 6 \) \* 3" "33\n" "" ""
--- a/scripts/test/factor.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "factor -32" "factor -32" "-32: -1 2 2 2 2 2\n" "" ""
-testing "factor 0" "factor 0" "0: 0\n" "" ""
-testing "factor 1" "factor 1" "1: 1\n" "" ""
-testing "factor 2" "factor 2" "2: 2\n" "" ""
-testing "factor 3" "factor 3" "3: 3\n" "" ""
-testing "factor 4" "factor 4" "4: 2 2\n" "" ""
-testing "factor 10000000017" "factor 10000000017" \
-        "10000000017: 3 3 3 7 7 7 1079797\n" "" ""
-testing "factor 10000000018" "factor 10000000018" \
-        "10000000018: 2 131 521 73259\n" "" ""
-testing "factor 10000000019" "factor 10000000019" \
-        "10000000019: 10000000019\n" "" ""
--- a/scripts/test/find.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-mkdir dir
-cd dir
-touch file
-mkfifo fifo
-ln -s fifo link
-cd ..
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Testing operators
-
-testing "find -type l -a -type d -o -type p" \
-	"find dir -type l -a -type d -o -type p" "dir/fifo\n" "" ""
-testing "find -type l -type d -o -type p" "find dir -type l -type d -o -type p" \
-	"dir/fifo\n" "" ""
-testing "find -type l -o -type d -a -type p" \
-	"find dir -type l -o -type d -a -type p" "dir/link\n" "" ""
-testing "find -type l -o -type d -type p" "find dir -type l -o -type d -type p" \
-	"dir/link\n" "" ""
-testing "find -type l ( -type d -o -type l )" \
-	"find dir -type l \( -type d -o -type l \)" "dir/link\n" "" ""
-testing "find extra parantheses" \
-	"find dir \( \( -type l \) \( -type d -o \( \( -type l \) \) \) \)" \
-	"dir/link\n" "" ""
-testing "find ( -type p -o -type d ) -type p" \
-	"find dir \( -type p -o -type d \) -type p" "dir/fifo\n" "" ""
-testing "find -type l -o -type d -type p -o -type f" \
-	"find dir -type l -o -type d -type p -o -type f | sort" \
-	"dir/file\ndir/link\n" "" ""
-
-# Testing short-circuit evaluations
-
-testing "find -type f -a -print" \
-	"find dir -type f -a -print" "dir/file\n" "" ""
-testing "find -print -o -print" \
-	"find dir -type f -a \( -print -o -print \)" "dir/file\n" "" ""
-
-rm -rf dir
--- a/scripts/test/grep.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-# Copyright 2013 by Kyungsu Kim <kaspyx@gmail.com>
-# Copyright 2013 by Kyungwan Han <asura321@gmail.com>
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "grep -c" "grep -c 123 input" "3\n" "123\ncount 123\n123\nfasdfasdf" ""
-
-echo -e "this is test" > foo
-echo -e "this is test2" > foo2
-echo -e "this is foo3" > foo3
-testing "grep -l" "grep -l test foo foo2 foo3" "foo\nfoo2\n" "" ""
-rm foo foo2 foo3
-
-testing "grep -q" "grep -q test input && echo yes" "yes\n" "this is a test\n" ""
-testing "grep -E" "grep -E '[0-9]' input" "1234123asdfas123123\n1\n" \
-  "1234123asdfas123123\nabc\n1\nabcde" ""
-testing "grep -e" "grep -e '[0-9]' input" "1234123asdfas123123\n1\n" \
-  "1234123asdfas123123\nabc\n1\nabcde" ""
-testing "grep -e -e" "grep -e one -e two -e three input" \
-  "two\ntwo\nthree\none\n" "two\ntwo\nthree\nand\none\n" ""
-testing "grep -F" "grep -F is input" "this is test\nthis is test2\n" \
-  "this is test\nthis is test2\ntest case" ""
-
-echo -e "this is test\nthis is test2\ntest case" > foo
-echo -e "hello this is test" > foo2
-echo -e "hi hello" > foo3
-testing "grep -H" "grep -H is foo foo2 foo3" "foo:this is test\nfoo:this is test2\nfoo2:hello this is test\n" "" ""
-rm foo foo2 foo3
-
-testing "grep -b" "grep -b is input" "0:this is test\n13:this is test2\n" \
-  "this is test\nthis is test2\ntest case" ""
-testing "grep -i" "grep -i is input" "thisIs test\nthis is test2\n" \
-  "thisIs test\nthis is test2\ntest case" ""
-testing "grep -n" "grep -n is input" "1:this is test\n2:this is test2\n" \
-  "this is test\nthis is test2\ntest case" ""
-testing "grep -o" "grep -o is input" "is\nis\nis\nis\n" \
-  "this is test\nthis is test2\ntest case" ""
-testing "grep -s" "grep -hs hello asdf input 2>&1" "hello\n" "hello\n" ""
-testing "grep -v" "grep -v abc input" "1234123asdfas123123\n1ABa\n" \
-  "1234123asdfas123123\n1ABabc\nabc\n1ABa\nabcde" ""
-testing "grep -w" "grep -w abc input" "abc\n" \
-  "1234123asdfas123123\n1ABabc\nabc\n1ABa\nabcde" ""
-testing "grep -x" "grep -x abc input" "abc\n" \
-  "aabcc\nabc\n" ""
-
-testing "grep -H (standard input)" "grep -H abc" "(standard input):abc\n" \
-  "" "abc\n"
-testing "grep -l (standard input)" "grep -l abc" "(standard input)\n" \
-  "" "abc\n"
-testing "grep -n two inputs" "grep -hn def - input" "2:def\n2:def\n" \
-  "abc\ndef\n" "abc\ndef\n"
-
-testing "grep pattern with newline" "grep 'abc
-def' input" "aabcc\nddeff\n" \
-  "aaaa\naabcc\n\dddd\nddeff\nffff\n" ""
-
-testing "grep -lH" "grep -lH abc input" "input\n" "abc\n" ""
-testing "grep -cn" "grep -cn abc input" "1\n" "abc\n" ""
-testing "grep -qs" "grep -qs abc none input && echo yes" "yes\n" "abc\n" ""
-testing "grep -hl" "grep -hl abc input" "input\n" "abc\n" ""
-testing "grep -b stdin" "grep -b one" "0:one\n4:one\n8:one\n" "" "one\none\none\n"
-testing "grep -o overlap" "grep -bo aaa" "1:aaa\n" "" "baaaa\n"
-# nonobvious: -co counts lines, not matches
-testing "grep -co" "grep -co one input" "1\n" "one one one\n" ""
-testing "grep -nom" "grep -nom 2 one" "1:one\n1:one\n1:one\n2:one\n2:one\n" \
-  "" "one one one\none one\none"
-testing "grep -vo" "grep -vo one input" "two\nthree\n" "onetwoonethreeone\n" ""
-testing "grep no newline" "grep -h one input -" \
-  "hello one\nthere one\n" "hello one" "there one"
-
-testing "grep -e multi" "grep -e one -ethree input" \
-  "three\none\n" "three\ntwo\none\n" ""
-# Suppress filenames for recursive test because dunno order they'd occur in
-mkdir sub
-echo -e "one\ntwo\nthree" > sub/one
-echo -e "three\ntwo\none" > sub/two
-testing "grep -hr" "grep -hr one sub" "one\none\n" "" ""
-testing "grep -r file" "grep -r three sub/two" "three\n" "" ""
-testing "grep -r dir" "grep -r one sub | sort" "sub/one:one\nsub/two:one\n" \
-  "" ""
-rm -rf sub
-
-# Not sure if -Fx '' should do? Posix is unclear, '' match every line but does
-# it match every _byte_ in that line?
-testing "grep -Fx ''" "grep -Fx '' input" "one one one\n" "one one one\n" ""
-testing "grep -F ''" "grep -F '' input" "one one one\n" "one one one\n" ""
-testing "grep -F -e blah -e ''" "grep -F -e blah -e '' input" "one one one\n" \
-  "one one one\n" ""
-testing "grep -e blah -e ''" "grep -e blah -e '' input" "one one one\n" \
-  "one one one\n" ""
-testing "grep -w ''" "grep -w '' input" "" "one one one\n" ""
-testing "grep -o ''" "grep -o '' input" "" "one one one\n" ""
-testing "grep backref" 'grep -e "a\(b\)" -e "b\(c\)\1"' "bcc\nab\n" \
-  "" "bcc\nbcb\nab\n"
--- a/scripts/test/groupadd.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-#!/bin/bash
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-# 70 characters long string; hereafter, we will use it as per our need.
-_s70="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
-
-echo "# usage: addgroup [-g GID] [USER] GROUP
-# Add a group or add a user to a group."
-
-# Redirecting all output to /dev/null for grep and delgroup
-arg="&>/dev/null"
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "groupadd group_name (text)" "groupadd toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (alphanumeric)" "groupadd toy1Test2Group3 &&
-   grep '^toy1Test2Group3:' /etc/group $arg && groupdel toy1Test2Group3 $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (numeric)" "groupadd 987654321 &&
-   grep '^987654321:' /etc/group $arg && groupdel 987654321 $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (with ./-)" "groupadd toy.1Test-2Group.3 &&
-   grep '^toy.1Test-2Group.3:' /etc/group $arg &&
-   groupdel toy.1Test-2Group.3 $arg && echo 'yes'" "yes\n" "" ""
-
-_s210=`echo $_s70$_s70$_s70`
-testing "groupadd group_name (long string)" "groupadd $_s210 &&
-   grep '^$_s210:' /etc/group $arg && groupdel $_s210 $arg && echo 'yes'" \
-  "yes\n" "" ""
-testing "groupadd group_name with group_id" "groupadd -g 49999 toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name with group_id (system_group)" \
-  "groupadd -g 49999 -S toyTestGroup && grep '^toyTestGroup:' /etc/group $arg &&
-   groupdel toyTestGroup $arg && echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (system_group)" "groupadd -S toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (add/del user)" "groupadd toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg && groupadd $USER toyTestGroup &&
-   grep '^toyTestGroup:.*:.*:.*$USER.*' /etc/group $arg &&
-   groupdel $USER toyTestGroup $arg || groupdel toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg || echo 'yes'" "yes\n" "" ""
-
- echo "Testing to add single group multiple times after removing it..."
- for each in {01..20}
- do
-   testing "groupadd group_name ($each)" "groupadd toyTestGroup &&
-      grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
-      echo 'yes'" "yes\n" "" ""
- done
--- a/scripts/test/groupdel.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-# Redirecting all output to /dev/null for grep and delgroup
-arg="&>/dev/null"
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "groupadd group_name (text)" "groupadd toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (alphanumeric)" "groupadd toy1Test2Group3 &&
-   grep '^toy1Test2Group3:' /etc/group $arg && groupdel toy1Test2Group3 $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (numeric)" "groupadd 987654321 &&
-   grep '^987654321:' /etc/group $arg && groupdel 987654321 $arg &&
-   echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name (with ./-)" "groupadd toy.1Test-2Group.3 &&
-   grep '^toy.1Test-2Group.3:' /etc/group $arg &&
-   groupdel toy.1Test-2Group.3 $arg && echo 'yes'" "yes\n" "" ""
-testing "groupadd group_name with group_id" "groupadd -g 49999 toyTestGroup &&
-   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
-   echo 'yes'" "yes\n" "" ""
--- a/scripts/test/head.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "head, stdin" "head -n 1 && echo yes" "one\nyes\n" "" "one\ntwo"
-testing "head, stdin via -" "head -n 1 - && echo yes" "one\nyes\n" "" "one\ntwo"
-testing "head, file" "head input -n 1 && echo yes" "one\nyes\n" "one\ntwo" ""
-testing "head, default lines" "head" "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" "" "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12"
-
-echo "foo
-bar
-baz" > file1
-testing "head, multiple files" "head -n 2 input file1" "==> input <==\none\ntwo\n\n==> file1 <==\nfoo\nbar\n" "one\ntwo\nthree\n" ""
-rm file1
-
--- a/scripts/test/hostname.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Get system hostname
-hostnameExe=`which hostname`
-hostnameOut=`$hostnameExe`
-
-# New hostname
-NewHostname="NewHostName.system"
-
-testing "Hostname - Get" "hostname" "$hostnameOut\n" "" ""
-testing "Hostname - Set, Get and then Reset" "hostname $NewHostname; hostname; hostname $hostnameOut; hostname" "$NewHostname\n$hostnameOut\n" "" ""
--- a/scripts/test/link.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-echo "" >foo
-testing "link fails on non-existent file" "link foo/foo baz || echo GOOD" "GOOD\n" "" ""
-rm -f foo bar
-
-echo file1 > file
-testing "ln create_hardlink" "link file hlink && [ file -ef hlink ] &&
-          echo 'yes'; rm  -rf hlink" "yes\n" "" ""
-
-echo hlink1 > hlink
-set +e
-testing "ln preserves_hardlinks" "link file hlink 2>/dev/null || echo 'yes'; rm -rf hlink" \
-          "yes\n" "" ""
-
-echo file1 > file
-testing "ln create_hardlink_and_remove_sourcefile" "link file hlink &&
-          [ file -ef hlink ] && rm -rf file && [ -f hlink ] && echo 'yes'; rm -f file hlink" \
-          "yes\n" "" ""
--- a/scripts/test/ln.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#!/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
-
-echo file1 > file
-testing "ln create_hardlink" "ln file hlink && [ file -ef hlink ] &&
-          echo 'yes'" "yes\n" "" ""
-testing "ln create_softlink" "ln -s file slink && [ -L slink ] &&
-          readlink slink" "file\n" "" ""
-rm slink hlink
-
-echo hlink1 > hlink
-testing "ln force_create_hardlink" "ln -f file hlink &&
-          [ file -ef hlink ] && cat hlink 2>/dev/null" "file1\n" "" ""
-
-echo slink1 > slink
-testing "ln force_create_softlink" "ln -f -s file slink &&
-          [ -L slink ] && readlink slink" "file\n" "" ""
-rm slink hlink
-
-echo hlink1 > hlink
-set +e
-testing "ln preserves_hardlinks" "ln file hlink 2>/dev/null || echo 'yes'" \
-          "yes\n" "" ""
-
-echo slink1 > slink
-set +e
-testing "ln preserves_softlinks" "ln -s file slink 2>/dev/null || echo 'yes'" \
-          "yes\n" "" ""
-rm slink hlink
-
-mkdir dir
-testing "ln multilevel_symbolic_links" "ln -s dir slink &&
-          ln -s file slink && [ -L slink -a -L slink/file ] &&
-          readlink slink && readlink slink/file" "dir\nfile\n" "" ""
-rm slink
-
-testing "ln no_dereference" "ln -s dir slink &&
-          ln -n -s file slink 2>/dev/null || [ -L slink ] && readlink slink" \
-          "dir\n" "" ""
-rm -rf file dir slink
-
-touch file1 file2 && mkdir dir
-testing "ln create_multiple_hardlinks" "ln file* dir/ &&
-   [ file1 -ef dir/file1 -a file2 -ef dir/file2 ] && echo 'yes'" "yes\n" "" ""
-rm -rf file* dir
-
-touch file1 file2 && mkdir dir
-testing "ln create_multiple_softlinks" "ln -s file* dir/ &&
-          [ -L dir/file1 -a -L dir/file2 ] && readlink dir/file1 &&
-          readlink dir/file2" "file1\nfile2\n" "" ""
-rm -rf file* dir
-
-echo file1 > file
-testing "ln create_softlink_and_remove_sourcefile" "ln -s file slink &&
-          [ -L slink ] && rm file && cat slink 2>/dev/null || echo 'yes' " \
-          "yes\n" "" ""
-rm -f file slink
-
-echo file1 > file
-testing "ln create_hardlink_and_remove_sourcefile" "ln file hlink &&
-          [ file -ef hlink ] && rm file && [ -f hlink ] && echo 'yes'" \
-          "yes\n" "" ""
-rm -f file hlink
--- a/scripts/test/losetup.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-if [ "$(id -u)" -ne 0 ]
-then
-  echo "SKIPPED: losetup (not root)"
-  continue 2>/dev/null
-  exit
-fi
-
-#testing "name" "command" "result" "infile" "stdin"
-
-truncate -s 1M blah.img &&
-FILE="$(readlink -f blah.img)"
-DEV="$(printf '%04d' $(stat -t blah.img | awk '{print $7}'))"
-NODE="$(awk '{print $7}')"
-
-losetup -f 
-losetup -f -s
-losetup -f file
-testing "cat" "cat && echo yes" "oneyes\n" "" "one"
-testing "cat -" "cat - && echo yes" "oneyes\n" "" "one"
-testing "cat file1 file2" "cat file1 file2" "one\ntwo\n"  "" ""
-testing "cat - file"      "cat - file1"     "zero\none\n" "" "zero\n"
-testing "cat file -"      "cat file1 -"     "one\nzero\n" "" "zero\n"
-
-testing "cat file1 notfound file2" \
-        "cat file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
-        "one\ntwo\ncat: notfound: No such file or directory\n" "" ""
-
-testing "cat file1" \
-        "cat /proc/self/exe > file1 && cmp /proc/self/exe file1 && echo yes" \
-        "yes\n" "" ""
-
-testing "cat - file1" \
-        "cat - file1 | diff -a -U 0 - file1 | tail -n 1" \
-        "-hello\n" "" "hello\n"
-
-testing "cat > /dev/full" \
-        "cat - > /dev/full 2>stderr && echo ok; cat stderr; rm stderr" \
-        "cat: xwrite: No space left on device\n" "" "zero\n"
-
-losetup -d
-
-rm blah.img
--- a/scripts/test/ls.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#!/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
-
-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
--- a/scripts/test/lsattr.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# chattr - Testcases
-
-mkdir testattr
-IN="cd testattr"
-OUT="cd .."
-_t="abcdefghijklmnopqrstuvwxyz"
-
-testing "chattr [-/+]i FILE[write]" "$IN && echo "$_t" > testFile &&
-         chattr +i testFile && lsattr testFile && echo "$_t" > testFile; 
-         chattr -i testFile; rm -rf testFile; $OUT " "----i-------- testFile\n" "" ""
-testing "chattr [-/+]i FILE[re-write]" "$IN && echo "$_t" > testFile && 
-         chattr +i testFile && echo \"$_t\" > testFile || chattr -i testFile && 
-         echo \"$_t\" > testFile && lsattr testFile; rm -rf testFile; $OUT" \
-         "------------- testFile\n" "" ""
-testing "chattr [-/+]i FILE[append]" "$IN && echo "$_t" > testFile && 
-         chattr +i testFile && echo \"$_t\" >> testFile || lsattr testFile && 
-         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
-testing "chattr [-/+]i FILE[move]" "$IN && echo "$_t" > testFile && 
-         chattr +i testFile && mv testFile testFile1 || lsattr testFile && 
-         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
-testing "chattr [-/+]i FILE[delete]" "$IN && echo "$_t" > testFile && 
-         chattr +i testFile && rm -f testFile || lsattr testFile && 
-         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
-testing "chattr [-/+]i FILE[read]" "$IN && echo "$_t" > testFile && 
-         chattr +i testFile && cat testFile && lsattr testFile && 
-         chattr -i testFile; rm -rf testFile; $OUT" "$_t\n----i-------- testFile\n" "" ""
-testing "chattr [-/+]a FILE[write]" "$IN && echo "$_t" > testFile && 
-         chattr +a testFile && echo $_t > testFile || lsattr testFile && 
-         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
-testing "chattr [-/+]a FILE[re-write]" "$IN && echo "$_t" > testFile && 
-         chattr +a testFile && echo $_t > testFile || lsattr testFile && 
-         chattr -a testFile && echo $_t > testFile && cat testFile && 
-         lsattr testFile; rm -rf testFile; 
-         $OUT" "-----a------- testFile\n$_t\n------------- testFile\n" "" ""
-testing "chattr [-/+]a FILE[append]" "$IN && echo "$_t" > testFile && 
-         chattr +a testFile && echo $_t >> testFile && cat testFile && 
-         lsattr testFile && chattr -a testFile; rm -rf testFile; $OUT" \
-         "$_t\n$_t\n-----a------- testFile\n" "" ""
-testing "chattr [-/+]a FILE[move]" "$IN && echo "$_t" > testFile && 
-         chattr +a testFile && mv testFile testFile1 || lsattr testFile && 
-         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
-testing "chattr [-/+]a FILE[delete]" "$IN && echo "$_t" > testFile && 
-         chattr +a testFile && rm -f testFile || lsattr testFile && 
-         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
-testing "chattr [-/+]a FILE[read]" "$IN && echo "$_t" > testFile && 
-         chattr +a testFile && cat testFile && lsattr testFile && chattr -a testFile; 
-         rm -rf testFile; $OUT" "$_t\n-----a------- testFile\n" "" ""
-
-for attr in "A" "a" "c" "D" "d" "i" "j" "s" "S" "t" "T" "u"
-do
-  testing "chattr [-/+]$attr FILE" "$IN && echo "$_t" > testFile && 
-           chattr +$attr testFile && cat testFile && chattr -$attr testFile && 
-           lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
-done
-
-for attr in "A" "a" "c" "D" "d" "i" "j" "s" "S" "t" "T" "u"
-do
-  testing "chattr -$attr FILE" "$IN && echo "$_t" > testFile && chattr -$attr testFile &&
-           cat testFile && lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
-done
-
-testing "chattr [-/+]AacDdijsStTu FILE" "$IN && echo "$_t" > testFile && 
-         chattr +AacDdijsStTu testFile && cat testFile && chattr -AacDdijsStTu testFile && 
-         lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
-testing "chattr [-/+]AacDdijsStTu(random) FILE" \
-        "$IN && echo "$_t" > testFile && 
-        chattr +AacDdijsStTu testFile && cat testFile && chattr -A testFile &&
-        chattr -a testFile && chattr -c testFile && chattr -D testFile &&
-        chattr -d testFile && chattr -i testFile && chattr -j testFile &&
-        chattr -s testFile && chattr -S testFile && chattr -t testFile &&
-        chattr -T testFile && chattr -u testFile && lsattr testFile &&
-        chattr -AacDdijsStTu testFile; rm -rf testFile; $OUT" \
-        "$_t\n------------- testFile\n" "" ""
-testing "chattr [-/+]AacDdijsStTu FILE*" "$IN && 
-        echo "$_t" > testFile && echo "$_t" > testFile1 &&
-        echo "$_t" > testFile2 && echo "$_t" > testFile3 &&
-        echo "$_t" > testFile4 && echo "$_t" > testFile5 &&
-        echo "$_t" > testFile6 && echo "$_t" > testFile7 &&
-        echo "$_t" > testFile8 && echo "$_t" > testFile9 &&
-        echo "$_t" > testFile10 && echo "$_t" > testFile11 &&
-       chattr +AacDdijsStTu testFile* &&
-       cat testFile9 && chattr -AacDdijsStTu testFile* && lsattr testFile*; rm -rf testFile*; $OUT" \
-       "$_t\n------------- testFile\n------------- testFile1\n------------- testFile10\n------------- testFile11\n------------- testFile2\n------------- testFile3\n------------- testFile4\n------------- testFile5\n------------- testFile6\n------------- testFile7\n------------- testFile8\n------------- testFile9\n" "" ""
-testing "chattr [-/+]AacDdijsStTu(random) FILE*" \
-        "$IN && echo "$_t" > testFile &&
-        chattr +AacDdijsStTu testFile* && cat testFile && chattr -A testFile* &&
-	chattr -a testFile* && chattr -c testFile* && chattr -D testFile* &&
-	chattr -d testFile* && chattr -i testFile* && chattr -j testFile* &&
-	chattr -s testFile* && chattr -S testFile* && chattr -t testFile* &&
-	chattr -T testFile* && chattr -u testFile* && lsattr testFile;
-        rm -rf testFile; $OUT" \
-	"$_t\n------------- testFile\n" "" ""
-testing "chattr [-/+]i FILE[write]" \
-	"$IN && echo "$_t" > testFile &&
-	chattr +i testFile &&
-	echo \"$_t\" > testFile || lsattr testFile && chattr -i testFile;
-	rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
-testing "chattr [-/+]A FILE[write]" \
-	"$IN && echo "$_t" > testFile && chattr +A testFile &&
-	echo \"$_t\" > testFile && lsattr testFile && chattr -A testFile;
-	rm -rf testFile; $OUT" "-------A----- testFile\n" "" ""
-testing "chattr [-/+]s FILE[write]" \
-	"$IN && echo "$_t" > testFile && chattr +s testFile &&
-	echo \"$_t\" > testFile && lsattr testFile && chattr -s testFile
-	rm -rf testFile; $OUT" "s------------ testFile\n" "" ""
-testing "chattr -v version FILE[write]" \
-	"$IN && echo "$_t" > testFile &&
-	chattr -v 1234 testFile && echo \"$_t\" > testFile && 
-	lsattr -v testFile; rm -rf testFile" \
-	" 1234 ------------- testFile\n" "" ""
-
-_a="-------A-----"
-testing "chattr -R [-/+]a FILE" "$IN && touch aa && chattr -R +A aa && lsattr aa &&
-	chattr -R -A aa; rm -rf aa; $OUT" "$_a aa\n" "" ""
-testing "chattr -R [-/+]a FILE.." "$IN && touch aa bb &&
-	chattr -R +A aa bb && lsattr aa bb &&
-	chattr -R -A aa bb; rm -rf aa bb; $OUT" "$_a aa\n$_a bb\n" "" ""
-
-# Clean up
-rm -rf testattr
-
-# lsattr - Testcases
-mkdir dir && cd dir && touch file
-chattr +A file &>/dev/null
-
-_p=$PWD
-_b="-------------"
-_A="-------A-----"
-
-testing "lsattr file" "lsattr file" "$_A file\n" "" ""
-testing "lsattr file_path" "lsattr $_p/file" "$_A $_p/file\n" "" ""
-testing "lsattr -R file" "lsattr -R file" "$_A file\n" "" ""
-testing "lsattr -R file_path" "lsattr -R $_p/file" "$_A $_p/file\n" "" ""
-testing "lsattr -a file" "lsattr -a file" "$_A file\n" "" ""
-testing "lsattr -a file_path" "lsattr -a $_p/file" "$_A $_p/file\n" "" ""
-testing "lsattr -d ." "lsattr -d ." "$_b .\n" "" ""
-testing "lsattr -d dir_path" "lsattr -d $_p" "$_b $_p\n" "" ""
-testing "lsattr -d file" "lsattr -d file" "$_A file\n" "" ""
-testing "lsattr -d file_path" "lsattr -d $_p/file" "$_A $_p/file\n" "" ""
-sp_44="                                            "
-testing "lsattr -l file" "lsattr -l file" "file  $sp_44 No_Atime\n" "" ""
-_v="12345"
-testing "lsattr -v file" "chattr -v $_v * && lsattr -v file" \
-  "$_v $_A file\n" "" ""
-testing "lsattr -v file_path" "chattr -v $_v * && lsattr -v $_p/file" \
-  "$_v $_A $_p/file\n" "" ""
-testing "lsattr -Radlv file1 file2" "chattr -v $_v * &&
-   lsattr -Radlv file input" \
-  "$_v file  $sp_44 No_Atime\n$_v input $sp_44 ---\n" "" ""
-
-# Cleanup
-chattr -AacDdijsStTu file && cd ..
-rm -rf dir
--- a/scripts/test/md5sum.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# These tests are from RFC 1321 appendix 5, reshuffled slightly to test
-# varying argument numbers
-
-testing "md5sum ''" "md5sum" "d41d8cd98f00b204e9800998ecf8427e  -\n" "" ""
-testing "md5sum infile" "md5sum input" \
-  "0cc175b9c0f1b6a831c399e269772661  input\n" "a" ""
-testing "md5sum two files" "md5sum - input" \
-  "900150983cd24fb0d6963f7d28e17f72  -\nf96b697d7cb7938d525a2f31aaf161d0  input\n" \
-  "message digest" "abc"
-testing "md5sum 4" "md5sum" "c3fcd3d76192e4007dfb496cca67e13b  -\n" \
-  "" "abcdefghijklmnopqrstuvwxyz"
-testing "md5sum 5" "md5sum" "d174ab98d277d9f5a5611c2c9f419d9f  -\n" \
-  "" "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
-testing "md5sum 6" "md5sum" "57edf4a22be3c955ac49da2e2107b67a  -\n" \
-  "" "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
-
--- a/scripts/test/mkdir.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "mkdir" "mkdir one && [ -d one ] && echo yes" "yes\n" "" ""
-rmdir one
-
-touch existing
-testing "mkdir existing" \
-	"mkdir existing 2> /dev/null || [ -f existing ] && echo yes" "yes\n" "" ""
-rm existing
-
-testing "mkdir one two" \
-	"mkdir one two && [ -d one ] && [ -d two ] && echo yes" "yes\n" "" ""
-rmdir one two
-
-testing "mkdir missing/one" \
-	"mkdir missing/one 2> /dev/null || [ ! -d missing ] && echo yes" "yes\n" "" ""
-
-testing "mkdir -p" \
-	"mkdir -p one/two/three && [ -d one/two/three ] && echo yes" "yes\n" "" ""
-rm -rf one
-
-mkdir existing
-testing "mkdir -p existing" "mkdir -p existing && echo yes" "yes\n" "" ""
-rmdir existing
-
-umask 123
-testing "mkdir (default permissions)" \
-	"mkdir one && stat -c %a one" "654\n" "" ""
-rmdir one
-
-testing "mkdir -m 124" \
-	"mkdir -m 124 one && stat -c %a one" "124\n" "" ""
-rmdir one
-
-umask 000
-testing "mkdir -p -m 653" \
-	"mkdir -p -m 653 one/two && stat -c %a one && stat -c %a one/two" \
-	"777\n653\n" "" ""
-rm -rf one
-
-testing "mkdir -p one/two/ (trailing slash)" \
-	"mkdir -p one/two/ &&  [ -d one/two ] && echo yes" "yes\n" "" ""
-rm -rf one
-
-umask 022
-testing "mkdir -p -m 777 (022 umask)" \
-	"mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \
-	"755\n777\n" "" ""
-rm -rf one
-
-umask 377
-testing "mkdir -p -m 777 (377 umask)" \
-	"mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \
-	"700\n777\n" "" ""
-umask 002
-rm -rf one
-
-testing "mkdir -vp" "mkdir -vp walrus 2>&1" \
-	"mkdir: created directory 'walrus'\n" "" ""
-
-testing "mkdir -vp exists" "mkdir -vp walrus 2>&1" \
-	"" "" ""
-rm -rf walrus
-
-touch two
-testing "mkdir continue after fail" \
-	"mkdir -m 777 one two three 2>/dev/null || stat -c %a three" \
-	"777\n" "" ""
-rm -rf one two three
--- a/scripts/test/mkfifo.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "mkfifo" "mkfifo one && [ -p one ] && echo yes" "yes\n" "" ""
-rm one
-
-touch existing
-testing "mkfifo existing" \
-	"mkfifo existing 2> /dev/null || [ -f existing ] && echo yes" "yes\n" "" ""
-rm existing
-
-testing "mkfifo one two" \
-	"mkfifo one two && [ -p one ] && [ -p two ] && echo yes" "yes\n" "" ""
-rm one two
-
-umask 123
-testing "mkfifo (default permissions)" \
-	"mkfifo one && stat -c %a one" "644\n" "" ""
-rm one
-
-umask 000
-
-testing "mkfifo -m 124" \
-	"mkfifo -m 124 one && stat -c %a one" "124\n" "" ""
-rm -f one
--- a/scripts/test/modinfo.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-[ -e /proc/modules ] || { echo "Skipping test because modules are not supported"; exit 1; }
-
-# modinfo does not need to output fields in a specified order.
-# Instead, there are labelled fields.  We can use sort to make up for this.
-# Other issues to beware of are the volatile nature of srcversion and vermagic,
-# which change from kernel to kernel and can be disabled. 
-# We grep to remove these.
-
-#We expect they have ne2k-pci as a module.
-
-testing "modinfo gets right number of fields" "modinfo ne2k-pci |cut -d: -f1 |grep -v ver|sort" "alias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nauthor\ndepends\ndescription\nfilename\nlicense\nparm\nparm\nparm\n" "" ""
-testing "modinfo treats - and _ as equivalent" "modinfo ne2k_pci |cut -d: -f1 |grep -v ver|sort" "alias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nauthor\ndepends\ndescription\nfilename\nlicense\nparm\nparm\nparm\n" "" ""
-
-# Output of -F filename should be an absolute path to the module.
-# Otherwise, initrd generating scripts will break.
-
-testing "modinfo -F filename gets absolute path" "[ -e `modinfo -F filename ne2k-pci` ] && echo ne2k-pci " "ne2k-pci\n" "" ""
-
-testing "modinfo supports multiple modules" "modinfo -F filename ne2k-pci 8390 | wc -l" "2\n" "" ""
-
-testing "modinfo does not output filename for bad module" "modinfo -F filename zxcvbnm__9753" "" "" ""
-
-
-
--- a/scripts/test/mount.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-root_fs=`df | grep "\/$" | awk '{print $1}'`
-root_fs_type=`file -sL $root_fs | awk '{print $5}'`
-
-tmp_b_fs="tmp_b_fs"
-tmp_b_fs_type="ext3"
-
-reCreateTmpFs() {
-  rm -rf $tmp_b_fs
-  mknod $tmp_b_fs b 1 0
-  mkfs.ext3 $tmp_b_fs >/dev/null 2>&1
-}
-reCreateTmpFs
-
-testing "mount $root_fs /mnt" \
-  "mount $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" ""
-testing "mount $tmp_b_fs /mnt" \
-  "mount $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
-reCreateTmpFs
-
-chmod 444 /mnt
-testing "mount $root_fs /mnt (read_only dir)" \
-  "mount $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" ""
-testing "mount $tmp_b_fs /mnt (read_only dir)" \
-  "mount $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
-reCreateTmpFs
-chmod 755 /mnt
-testing "mount -w $root_fs /mnt (write_only mode)" \
-  "mount -w $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" ""
-testing "mount -w $tmp_b_fs /mnt (write_only mode)" \
-  "mount -w $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
-reCreateTmpFs
-testing "mount -rw $tmp_b_fs /mnt (read_write mode)" \
-  'mount -rw $tmp_b_fs /mnt >/dev/null && mkdir /mnt/testDir && \
-   sleep 1 && ! test -e /mnt/testDir && umount /mnt' "" "" ""
-reCreateTmpFs
-testing "mount $tmp_b_fs /mnt -t fs_type" \
-  "mount $tmp_b_fs /mnt -t $tmp_b_fs_type >/dev/null 2>&1 &&
-   mkdir /mnt/testDir && sleep 1 && umount /mnt &&
-   ! test -e /mnt/testDir" "" "" ""
-reCreateTmpFs
-mkdir -p testDir1/testDir2 testDir
-echo "abcdefghijklmnopqrstuvwxyz" > testDir1/testDir2/testFile
-testing "mount -o bind dir1 dir2" \
-  'mount -o bind testDir1 testDir >/dev/null 2>&1 && \
-   cat testDir/testDir2/testFile && sleep 1 && umount testDir' \
-  "abcdefghijklmnopqrstuvwxyz\n" "" ""
-testing "mount -o rbind dir1 dir2" \
-  'mount -o rbind testDir1 testDir >/dev/null 2>&1 && \
-   cat testDir/testDir2/testFile && sleep 1 && umount testDir' \
-  "abcdefghijklmnopqrstuvwxyz\n" "" ""
-testing "mount -o loop $tmp_b_fs /mnt" \
-  "mount -o loop $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDirp &&
-   sleep 1 && umount -d /mnt && ! test -e /mnt/testDirp" "" "" ""
-reCreateTmpFs
-
-mkdir testDir2
-testing "mount -o move mount_1 mount_2" \
-  "mount $tmp_b_fs testDir1 && mkdir testDir1/testDirr &&
-   mount -o move testDir1 testDir2 && test -r testDir2/testDirr &&
-   sleep 1 && umount testDir2" "" "" ""
-reCreateTmpFs
-testing "mount -o rw $tmp_b_fs /mnt" \
-  "mount -o rw $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
-   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
-reCreateTmpFs
-testing "mount -o ro $tmp_b_fs /mnt" \
-  "mount -o ro $tmp_b_fs /mnt >/dev/null 2>&1 &&
-   mkdir /mnt/testDir 2>/dev/null || sleep 1 && umount /mnt" "" "" ""
-reCreateTmpFs
-
-umount testDir1
-rm -f $tmp_b_fs
--- a/scripts/test/mv.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-#!/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"
-
-touch file
-testing "Move old_file to  new_file" "mv file file1 && [ ! -e file -a -f file1 ] &&
-   echo 'yes'" "yes\n" "" ""
-rm -f file*
-
-touch file
-mkdir dir
-testing "Move file to a dir" "mv file dir && [ ! -e file -a -f dir/file ] &&
-   echo 'yes'" "yes\n" "" ""
-rm -rf file* dir*
-
-mkdir dir
-testing "Move old_dir to new_dir" "mv dir dir1 && [ ! -e dir -a -d dir1 ] &&
-   echo 'yes'" "yes\n" "" ""
-rm -rf dir*
-
-mkdir dir1 dir2
-touch file1 file2 dir1/file3
-ln -s file1 link1
-testing "Move multiple files/dir to a dir" "mv file1 file2 link1 dir1 dir2 &&
-   [ ! -e file1 -a ! -e file2 -a ! -e link1 -a ! -e dir1 ] &&
-   [ -f dir2/file1 -a -f dir2/file2 -a -L dir2/link1 -a -d dir2/dir1 ] &&
-   [ -f dir2/dir1/file3 ] && readlink dir2/link1" "file1\n" "" ""
-rm -rf file* link* dir*
-
-touch file1
-testing "Move a empty file to new_file" "mv file1 file2 &&
-   [ ! -e file1 -a -f file2 ] && stat -c %s file2" "0\n" "" ""
-rm -rf file*
-
-mkdir dir1
-testing "Move enpty dir to new_dir" "mv dir1 dir2 &&
-   [ ! -d dir1 -a -d dir2 ] && echo 'yes'" "yes\n" "" ""
-rm -rf dir*
-
-dd if=/dev/zero of=file1 seek=10k count=1 >/dev/null 2>&1
-testing "Move file new_file (random file)" "mv file1 file2 &&
-   [ ! -e file1 -a -f file2 ] && stat -c %s file2" "5243392\n" "" ""
-rm -f file*
-
-touch file1
-ln -s file1 link1
-testing "Move link new_link (softlink)" "mv link1 link2 &&
-   [ ! -e link1 -a -L link2 ] && readlink link2" "file1\n" "" ""
-unlink tLink2 &>/dev/null
-rm -f file* link*
-
-touch file1
-ln file1 link1
-testing "Move link new_link (hardlink)" "mv link1 link2 &&
-   [ ! -e link1 -a -f link2 -a file1 -ef link2 ] && echo 'yes'" "yes\n" "" ""
-unlink link2 &>/dev/null
-rm -f file* link*
-
-touch file1
-chmod a-r file1
-testing "Move file new_file (unreadable)" "mv file1 file2 &&
-   [ ! -e file1 -a -f file2 ] && echo 'yes'" "yes\n" "" ""
-rm -f file*
-
-touch file1
-ln file1 link1
-mkdir dir1
-testing "Move file link dir (hardlink)" "mv file1 link1 dir1 &&
-   [ ! -e file1 -a ! -e link1 -a -f dir1/file1 -a -f dir1/link1 ] &&
-   [ dir1/file1 -ef dir1/link1 ] && echo 'yes'" "yes\n" "" ""
-rm -rf file* link* dir*
-
-mkdir -p dir1/dir2 dir3
-touch dir1/dir2/file1 dir1/dir2/file2
-testing "Move dir1/dir2 dir3/new_dir" "mv dir1/dir2 dir3/dir4 &&
-   [ ! -e dir1/dir2 -a -d dir3/dir4 -a -f dir3/dir4/file1 ] &&
-   [ -f dir3/dir4/file2 ] && echo 'yes'" "yes\n" "" ""
-rm -rf file* dir*
-
-mkdir dir1 dir2
-testing "Move dir new_dir (already exist)" "mv dir1 dir2 &&
-   [ ! -e dir1 -a -d dir2/dir1 ] && echo 'yes'" "yes\n" "" ""
-rm -rf dir*
-
-touch file1 file2
-testing "Move -f file new_file (exist)" "mv -f file1 file2 &&
-   [ ! -e file1 -a -e file2 ] && echo 'yes'" "yes\n" "" ""
-rm -f file*
-
-touch file1 file2
-testing "Move -n file new_file (exist)" "mv -n file1 file2 &&
-   [ -e file1 -a -e file2 ] && echo 'yes'" "yes\n" "" ""
-rm -f file*
--- a/scripts/test/nl.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "nl" "nl" "     1\tone\n     2\ttwo\n     3\tthree\n" \
-  "" "one\ntwo\nthree\n"
-
-testing "nl explicit defaults" "nl -nrn -b a" \
-  "     1\tone\n     2\ttwo\n     3\tthree\n" "" "one\ntwo\nthree\n"
-
-# -n ln rn rz
-
-testing "nl -nln" "nl -nln" "1     \tone\n2     \ttwo\n3     \tthree\n" \
-  "" "one\ntwo\nthree\n"
-testing "nl -nln -w" "nl -nln -w 8" \
-  "1       \tone\n2       \ttwo\n3       \tthree\n" "" "one\ntwo\nthree\n"
-
-testing "nl -nrz" "nl -nrz" "000001\tone\n000002\ttwo\n000003\tthree\n" \
-  "" "one\ntwo\nthree\n"
-
-testing "nl -nrz -w" "nl -w3 -nrz" "001\tone\n002\ttwo\n003\tthree\n" \
-  "" "one\ntwo\nthree\n"
-
-
-# For non-matching lines the separator is "suppressed" meaning it...
-# turns into spaces! And the tab turns into one space, and -d boom turns
-# into 4 spaces, but these:
-#   nl -s"$(echo -e 'bo\tom')" -bpand README
-#   nl -w 3 -bpthe README
-# Yeah. And I doubt utf8 fontmetrics are used either.
-
-testing "nl -b t" "nl -b t" "       \n     1\tone\n       \n     2\ttwo\n" \
-  "" "\none\n\ntwo\n"
-testing "nl -b n" "nl -b n" "       one\n       two\n       three\n" \
-  "" "one\ntwo\nthree\n"
-testing "nl -sook -b p" "nl -sook -bpoing" \
-  "         one\n     1ookboing\n     2ooksproingy\n" \
-  "" "one\nboing\nsproingy\n"
-
-testing "nl -v" "nl -v 42" "    42\tone\n    43\ttwo\n    44\tthree\n" \
-  "" "one\ntwo\nthree\n"
-testing "nl -l" "nl -ba -l2 -w2 - input" \
-  " 1\tone\n   \n 2\t\n 3\ttwo\n   \n 4\t\n   \n 5\tthree\n 6\tfour\n   \n 7\t\n   \n 8\tbang\n   \n" \
-  "\n\nbang\n\n" "one\n\n\ntwo\n\n\n\nthree\nfour\n\n"
-testing "nl no space" "nl -w 1 -v 42" "42\tline\n" "" "line\n"
-
-# Should test for -E but no other implementation seems to have it?
-#testing "nl -E" "nl -w2 -sx -Ebp'(one|two)'" " 1x" "one\nand\ntwo\n"
--- a/scripts/test/pgrep.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-
-#cleaning 'yes' processes
-killall yes >/dev/null 2>&1
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Starting processes to test pgrep command
-yes >/dev/null &
-proc=$!
-echo "# Process created with id: $proc"
-sleep 1
-session_id=0
-proc_parent=`cat /proc/${proc}/stat | awk '{ print $4 }'`
-echo "# Parent Process id of $proc is $proc_parent"
-
-# Testcases for pgrep command
-testing "pgrep pattern" "pgrep yes" "$proc\n" "" ""
-testing "pgrep wildCardPattern" "pgrep ^y.*s$" "$proc\n" "" ""
-testing "pgrep -l pattern" "pgrep -l yes" "$proc yes\n" "" ""
-testing "pgrep -f pattern" "pgrep -f yes" "$proc\n" "" ""
-testing "pgrep -n pattern" "pgrep -n yes" "$proc\n" "" ""
-testing "pgrep -o pattern" "pgrep -o yes" "$proc\n" "" ""
-testing "pgrep -s" "pgrep -s $session_id yes" "$proc\n" "" ""
-testing "pgrep -P" "pgrep -P $proc_parent yes" "$proc\n" "" ""
-
-#Clean-up
-killall yes >/dev/null 2>&1
-
-# Testcases for pkill command
-
-yes >/dev/null &
-sleep 1
-testing "pkill pattern" "pkill yes && sleep 1 && (pgrep yes || echo 'yes')" \
-  "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-yes print1 >/dev/null &
-yes print2 >/dev/null &
-sleep 1
-testing "pkill pattern (multiple)" "pkill yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-sleep 1
-testing "pkill -f pattern (one)" "pkill -f yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes print1 >/dev/null &
-sleep 1
-testing "pkill -f pattern args" "pkill -f \"yes print1\" && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-yes print1 >/dev/null &
-yes print2 >/dev/null &
-sleep 1
-testing "pkill -f pattern (multiple)" "pkill -f yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-sleep 1
-testing "pkill -s 0 -f pattern (regexp)" "pkill -s 0 -f ye* && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-proc1=$!
-yes >/dev/null &
-proc2=$!
-sleep 1
-testing "pkill -n pattern" "pkill -n yes && sleep 1 && pgrep yes" \
-  "$proc1\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-proc1=$!
-yes >/dev/null &
-proc2=$!
-sleep 1
-testing "pkill -o pattern" "pkill -o yes && sleep 1 && pgrep yes" \
-  "$proc2\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-sleep 1
-testing "pkill -s (blank) pattern" "pkill -s '' yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-sleep 1
-testing "pkill -s 0 pattern" "pkill -s 0 yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-proc=$!
-proc_p=`cat /proc/${proc}/stat | awk '{ print $4 }'`
-sleep 1
-testing "pkill -P parent_prodId pattern" "pkill -P $proc_p yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
-yes >/dev/null &
-proc=$!
-proc_parent=`cat /proc/${proc}/stat | awk '{ print $4 }'`
-sleep 1
-testing "pkill -9 pattern" "pkill -9 yes && sleep 1 &&
-   (pgrep yes || echo 'yes')" "yes\n" "" ""
-killall yes >/dev/null 2>&1
-
--- a/scripts/test/printf.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#!/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
-
-testing "printf TEXT" "printf toyTestText" "toyTestText" "" ""
-testing "printf MULTILINE_TEXT" \
-  "printf 'Testing\nmultiline\ntext\nfrom\ntoybox\tcommand.\b'" \
-  "Testing\nmultiline\ntext\nfrom\ntoybox\tcommand.\b" "" ""
-testing "printf '%5d%4d' 1 21 321 4321 54321" \
-  "printf '%5d%4d' 1 21 321 4321 54321" "    1  21  321432154321   0" "" ""
-testing "printf '%c %c' 78 79" "printf '%c %c' 78 79" "7 7" "" ""
-testing "printf '%d %d' 78 79" "printf '%d %d' 78 79" "78 79" "" ""
-testing "printf '%f %f' 78 79" "printf '%f %f' 78 79" \
-  "78.000000 79.000000" "" ""
-testing "printf 'f f' 78 79" "printf 'f f' 78 79" "f f" "" ""
-testing "printf '%i %i' 78 79" "printf '%i %i' 78 79" "78 79" "" ""
-testing "printf '%o %o' 78 79" "printf '%o %o' 78 79" "116 117" "" ""
-testing "printf '%u %u' 78 79" "printf '%u %u' 78 79" "78 79" "" ""
-testing "printf '%u %u' -1 -2" "printf '%u %u' -1 -2" \
-  "18446744073709551615 18446744073709551614" "" ""
-testing "printf '%x %X' 78 79" "printf '%x %X' 78 79" "4e 4F" "" ""
-testing "printf '%g %G' 78 79" "printf '%g %G' 78 79" "78 79" "" ""
-testing "printf '%s %s' 78 79" "printf '%s %s' 78 79" "78 79" "" ""
--- a/scripts/test/pwd.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-#TODO: Find better tests
-
-testing "pwd" "[ $(stat -c %i "$(pwd)") = $(stat -c %i .) ] && echo yes" \
-	"yes\n" "" ""
-testing "pwd -P" "[ $(stat -c %i "$(pwd -P)") = $(stat -c %i .) ] && echo yes" \
-	"yes\n" "" ""
-
-
-ln -s . sym
-cd sym
-testing "pwd" "[ $(stat -c %i "$(pwd)") = $(stat -c %i "$PWD") ] && echo yes" \
-	"yes\n" "" ""
-testing "pwd -P" "[ $(stat -c %i "$(pwd -P)") = $(stat -c %i "$PWD") ] || echo yes" \
-	"yes\n" "" ""
-cd ..
-rm sym
-
-export PWD=walrus
-testing "pwd (bad PWD)" "[ "$(pwd)" = "$(cd . ; pwd)" ] && echo yes" \
-	"yes\n" "" ""
--- a/scripts/test/readlink.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-APWD="$(pwd -P)"
-
-testing "readlink missing" "readlink notfound || echo yes" "yes\n" "" ""
-
-# simple tests on a file
-
-touch file
-testing "readlink file" "readlink file || echo yes" "yes\n" "" ""
-testing "readlink -f dir" "readlink -f ." "$APWD\n" "" ""
-testing "readlink -f missing" "readlink -f notfound" "$APWD/notfound\n" "" ""
-
-ln -sf notfound link
-testing "readlink link" "readlink link" "notfound\n" "" ""
-testing "readlink link->missing" "readlink -f link" "$APWD/notfound\n" "" ""
-ln -sf ../../ link
-testing "readlink stays relative" "readlink link" "../../\n" "" ""
-rm link
-ln -sf file link
-testing "readlink -f link->file" "readlink -f link" "$APWD/file\n" "" ""
-ln -sf . link
-testing "readlink -f link->dir" "readlink -f link" "$APWD\n" "" ""
-ln -snf link link
-testing "readlink link->link (recursive)" "readlink link" "link\n" "" ""
-testing "readlink -f link->link (recursive)" \
-  "readlink -f link 2>/dev/null || echo yes" "yes\n" "" ""
-
-testing "readlink -q notlink" "readlink -q file || echo yes" "yes\n" "" ""
-testing "readlink -q link" "readlink -q link && echo yes" "yes\n" "" ""
-testing "readlink -q notfound" "readlink -q notfound || echo yes" "yes\n" "" ""
-testing "readlink -e found" "readlink -e file" "$APWD/file\n" "" ""
-testing "readlink -e notfound" \
-  "readlink -e notfound 2>/dev/null || echo yes" "yes\n" "" ""
-testing "readlink -nf ." "readlink -nf ." "$APWD" "" ""
-
-mkdir sub &&
-ln -s . here &&
-ln -s ./sub dir &&
-touch sub/bang || exit 1
-testing "readlink -f multi" "readlink -f dir/../here/dir/bang" \
-  "$APWD/sub/bang\n" "" ""
-testing "readlink -f link/missing" "readlink -f dir/boing" \
-  "$APWD/sub/boing\n" "" ""
-testing "readlink -f /dev/null/file" \
-  "readlink -f /dev/null/file 2>/dev/null || echo yes" "yes\n" "" ""
-ln -sf / link || exit 1
-testing "readlink -f link->/" "readlink -e link/dev" "/dev\n" "" ""
-testing "readlink -f /dev/null/.." \
-  "readlink -f link/null/.. 2>/dev/null || echo yes" "yes\n" "" ""
-rm -f link && ln -sf link link || exit 1
-testing "readlink recurse" "readlink link" "link\n" "" ""
-
-rm file link sub/bang dir here
-rmdir sub
-
-# Make sure circular links don't run away.
-
-ln -s link1 link2
-ln -s link2 link1
-testing "readlink follow recursive2" "readlink -f link1 || echo yes" \
-	"yes\n" "" ""
-rm link1 link2
--- a/scripts/test/renice.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-#!/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"
-
-fun_nice_val() 
-{
-  for each_proc in $@
-  do
-    echo `awk '{ print $18 }' /proc/${each_proc}/stat`
-  done
-}
-
-# creating processes as a test data
-yes >/dev/null &
-proc1=$!
-yes >/dev/null &
-proc2=$!
-yes >/dev/null &
-proc3=$!
-yes >/dev/null &
-proc4=$!
-yes >/dev/null &
-proc5=$!
-
-n_val1=`fun_nice_val $proc1`
-n_val2=`fun_nice_val $proc2`
-n_val3=`fun_nice_val $proc3`
-n_val4=`fun_nice_val $proc4`
-n_val5=`fun_nice_val $proc5`
-
-# Redirecting errors to /dev/null
-arg="2>/dev/null"
-
-for n_v in "-1" "1"
-do
-  for n_o in "" " -p"
-  do
-    nice_val1=$((`fun_nice_val $proc1` + $n_v))
-    nice_val2=$((`fun_nice_val $proc2` + $n_v))
-    nice_val3=$((`fun_nice_val $proc3` + $n_v))
-    nice_val4=$((`fun_nice_val $proc4` + $n_v))
-    nice_val5=$((`fun_nice_val $proc5` + $n_v))
-    testing "renice with -n=$n_v and with$n_o multiple_pids" \
-      "renice -n $n_v$n_o $proc1 $proc2 $proc3 $proc4 $proc5 &&
-       fun_nice_val $proc1 $proc2 $proc3 $proc4 $proc5" \
-      "$nice_val1\n$nice_val2\n$nice_val3\n$nice_val4\n$nice_val5\n" "" ""
-  
-    nice_val1=$((`fun_nice_val $proc1` + $n_v))
-    nice_val2=$((`fun_nice_val $proc2` + $n_v))
-    nice_val3=$((`fun_nice_val $proc3` + $n_v))
-    nice_val4=$((`fun_nice_val $proc4` + $n_v))
-    nice_val5=$((`fun_nice_val $proc5` + $n_v))
-    testing "renice with -n=$n_v and with$n_o multiple_pids (some invalid)" \
-      "renice -n $n_v$n_o $proc1 $proc2 88888 99999 $proc3 $proc4 $proc5 $arg ||
-       fun_nice_val $proc1 $proc2 $proc3 $proc4 $proc5" \
-      "$nice_val1\n$nice_val2\n$nice_val3\n$nice_val4\n$nice_val5\n" "" ""
-  done
-done
-
-# Starting Boundary Test Here .. 
-loop_cnt=2
-echo -n "TEST: Boundary value test for Id($proc1)..[old_nice_val/new_nice_val]:"
-cnt=0
-n_val=1
-while [ $cnt -gt -1 ]
-do
-  old_nice_val=`fun_nice_val $proc1`
-  new_nice_val=`renice -n $n_val $proc1 >/dev/null 2>&1 && fun_nice_val $proc1`
-  echo -n "[$old_nice_val/$new_nice_val],"
-  if [ $old_nice_val -eq 39 -a $old_nice_val -eq $new_nice_val ]
-  then
-    echo -n " [Equals 39,doing -1] "
-    n_val="-1"
-  elif [ $old_nice_val -eq 0 -a $old_nice_val -eq $new_nice_val ]
-  then
-    echo -n " [Equals 0,doing +1] "
-    n_val="1"
-  elif [ $new_nice_val -gt 39 -o $new_nice_val -lt 0 ]
-  then
-    echo " [Test Fail] "
-    echo "FAIL: renice with step 1 ($proc1) (boundary value)"
-    cnt="-1"
-  elif [ $new_nice_val -eq $n_val1 -a $new_nice_val -eq $(($old_nice_val+1)) ]
-  then
-    cnt=$(($cnt + 1))
-    if [ $cnt -eq $loop_cnt ]
-    then
-      echo " [Test Pass] "
-      echo "PASS: renice with step 1 ($proc1) (boundary value)"
-      cnt="-1"
-    fi
-  else
-    dif=`echo $(($new_nice_val-$old_nice_val))`
-    dif=`echo ${dif/-}`
-    if [ $dif -ne 1 ]
-    then
-      echo " [Test Fail] "
-      echo "FAIL: renice with step 1 ($proc1) (boundary value)"
-      cnt="-1"
-    fi
-  fi
-done
-# Boundary test End
-
-killall yes >/dev/null 2>&1
--- a/scripts/test/rev.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-echo -e "one" > file1 
-echo -e "two" > file2
-testing "rev" "rev && echo yes" "orez\nyes\n" "" "zero\n"
-testing "rev -" "rev - && echo yes" "orez\nyes\n" "" "zero\n"
-testing "rev file1 file2" "rev file1 file2" "eno\nowt\n" "" ""
-testing "rev - file"      "rev - file1"     "orez\neno\n" "" "zero\n"
-testing "rev file -"      "rev file1 -"     "eno\norez\n" "" "zero\n"
-testing "rev no trailing newline" "rev -" "cba\nfed\n" "" "abc\ndef"
-
-testing "rev file1 notfound file2" \
-        "rev file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
-        "eno\nowt\nrev: notfound: No such file or directory\n" "" ""
-
-testing "rev different input sizes"\
-        "rev"\
-        "\n1\n21\n321\n4321\n54321\n4321\n321\n21\n1\n\n"\
-        "" "\n1\n12\n123\n1234\n12345\n1234\n123\n12\n1\n\n"
-
-rm file1 file2
\ No newline at end of file
--- a/scripts/test/rm.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-#!/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"
-
-echo "abcdefghijklmnopqrstuvwxyz" > file.txt
-testing "Remove text-file" "rm file.txt && [ ! -e file.txt ] && echo 'yes'" "yes\n" "" ""
-rm -f file*
-
-mkdir dir
-testing "Remove empty directory" "rm -r dir && [ ! -d dir ] && echo 'yes'" "yes\n" "" ""
-rm -rf dir
-
-echo "abcdefghijklmnopqrstuvwxyz" > file.txt && chmod 000 file.txt
-testing "Remove text file(mode 000)" "rm -f file.txt && [ ! -e file.txt ] && echo 'yes'" \
-  "yes\n" "" ""
-rm -f file*
-
-touch file1.txt file2.txt
-mkdir dir1 dir2
-testing "rm -r (multiple files and dirs)" \
-  "rm -r file1.txt file2.txt dir1 dir2 2>/dev/null &&
-   [ ! -e file1.txt -a ! -e file2.txt -a ! -d dir1 -a ! -d dir2 ] && echo 'yes'" \
-  "yes\n" "" ""
-rm -rf file* dir*
-
-touch file1.txt file2.txt
-mkdir dir1 dir2
-testing "rm -rf (present + missing files and dirs)" \
-  "rm -rf file1.txt file2.txt file3.txt dir1 dir2 dir3 2>/dev/null &&
-  [ ! -e file1.txt -a ! -e file2.txt -a ! -d dir1 -a ! -d dir2 ] && echo 'yes'" \
-  "yes\n" "" ""
-rm -rf file* dir*
-
-# testing with nested dirs.
-mkdir -p dir1/dir2/dir3 dir1/dir2/dir4
-touch dir1/file1.txt dir1/dir2/file2.txt dir1/dir2/dir3/file3.txt
-testing "rm -r nested_dir" "rm -r dir1/dir2/ 2>/dev/null &&
-  [ -d dir1 -a -f dir1/file1.txt -a ! -d dir1/dir2 ] && echo 'yes'" \
-  "yes\n" "" ""
-rm -rf dir*
-
--- a/scripts/test/rmdir.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-mkdir one
-testing "rmdir" "rmdir one && [ ! -d one ] && echo yes" "yes\n" "" ""
-
-touch walrus
-testing "rmdir file" \
-	"rmdir walrus 2> /dev/null || [ -f walrus ] && echo yes" "yes\n" "" ""
-
-mkdir one two
-testing "rmdir one two" \
-	"rmdir one two 2> /dev/null && [ ! -d one ] && [ ! -d two ] && echo yes" \
-	"yes\n" "" ""
-
-mkdir one two three
-testing "rmdir one missing two file three" \
-	"rmdir one missing two walrus three 2> /dev/null || [ ! -d three ] && echo yes" \
-	"yes\n" "" ""
-rm walrus
-
-mkdir one
-chmod 000 one
-testing "rmdir mode 000" "rmdir one && [ ! -d one ] && echo yes" "yes\n" "" ""
-
-mkdir temp
-touch temp/thing
-testing "rmdir non-empty" \
-	"rmdir temp 2>/dev/null || [ -d temp ] && echo yes" "yes\n" "" ""
-testing "rmdir -p dir/file" \
-	"rmdir -p temp/thing 2>/dev/null || [ -f temp/thing ] && echo yes" \
-	"yes\n" "" ""
-
-mkdir -p temp/one/two/three
-testing "rmdir -p part of path" \
-	"rmdir -p temp/one/two/three 2>/dev/null || [ -d temp ] && [ ! -e temp/one ] && echo yes" \
-	"yes\n" "" ""
-rm -rf temp
-
-
-mkdir -p one/two/three
-testing "rmdir -p one/two/three" \
-	"rmdir -p one/two/three && [ ! -e one ] && echo yes" "yes\n" "" ""
-
-mkdir -p one/two/three
-testing "rmdir -p one/two/three/" \
-	"rmdir -p one/two/three/ && [ ! -e one ] && echo yes" "yes\n" "" ""
-
-#mkdir -p one/two/three
-#chmod 000 one/two/three one/two one
-#testing "rmdir -p one/two/three" \
-#	"rmdir -p one/two/three && [ ! -e one ] && echo yes" "yes\n" "" ""
--- a/scripts/test/seq.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "seq (exit with error)" "seq 2> /dev/null || echo yes" "yes\n" "" ""
-testing "seq (exit with error)" "seq 1 2 3 4 2> /dev/null || echo yes" \
-        "yes\n" "" ""
-testing "seq one argument" "seq 3" "1\n2\n3\n" "" ""
-testing "seq two arguments" "seq 5 7" "5\n6\n7\n" "" ""
-testing "seq two arguments reversed" "seq 7 5" "" "" ""
-testing "seq two arguments equal" "seq 3 3" "3\n" "" ""
-testing "seq two arguments equal, arbitrary negative step" "seq 1 -15 1" \
-        "1\n" "" ""
-testing "seq two arguments equal, arbitrary positive step" "seq 1 +15 1" \
-        "1\n" "" ""
-testing "seq count up by 2" "seq 4 2 8" "4\n6\n8\n" "" ""
-testing "seq count down by 2" "seq 8 -2 4" "8\n6\n4\n" "" ""
-testing "seq count wrong way #1" "seq 4 -2 8" "" "" ""
-testing "seq count wrong way #2" "seq 8 2 4" "" "" ""
-testing "seq count by .3" "seq 3 .3 4" "3\n3.3\n3.6\n3.9\n" "" ""
-testing "seq count by -.9" "seq .7 -.9 -2.2" "0.7\n-0.2\n-1.1\n-2\n" "" ""
-testing "seq count by zero" "seq 4 0 8 | head -n 10" "" "" ""
-testing "seq separator -" "seq -s - 1 3" "1-2-3\n" "" ""
-testing "seq format string" 'seq -f %+01g -10 5 10' "-10\n-5\n+0\n+5\n+10\n" "" ""
-testing "seq separator and format string" "seq -f \%03g -s \; 5 -1 0" "005;004;003;002;001;000\n" "" ""
-
--- a/scripts/test/sha1sum.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# These tests are based on RFC3174 which were based on FIPS PUB 180-1
-
-testing "sha1sum TEST1" \
-        "sha1sum" \
-        "a9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
-        "" "abc"
-
-testing "sha1sum TEST2" \
-        "sha1sum" \
-        "84983e441c3bd26ebaae4aa1f95129e5e54670f1  -\n" \
-        "" "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-
-testing "sha1sum TEST3" \
-        'dd if=/dev/zero bs=1000 count=1000 2>/dev/null | tr \\0 a | sha1sum' \
-        "34aa973cd4c4daa4f61eeb2bdbad27316534016f  -\n" \
-        "" ""
-
-testing "sha1sum TEST4" \
-        'for i in `seq 1 10`; do echo -n 0123456701234567012345670123456701234567012345670123456701234567 ; done | sha1sum' \
-        "dea356a2cddd90c7a7ecedc5ebb563934f460452  -\n" \
-        "" ""
-
-echo -n "abc" > file1
-echo -n "def" > file2
-testing "sha1sum" \
-        "sha1sum" \
-        "a9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
-        "" "abc"
-
-testing "sha1sum -" \
-        "sha1sum -" \
-        "a9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
-        "" "abc"
-
-testing "sha1sum file" \
-        "sha1sum file1" \
-        "a9993e364706816aba3e25717850c26c9cd0d89d  file1\n" \
-        "" ""
-
-testing "sha1sum file1 file2" \
-        "sha1sum file1 file2" \
-        "a9993e364706816aba3e25717850c26c9cd0d89d  file1\n589c22335a381f122d129225f5c0ba3056ed5811  file2\n" \
-        "" ""
-
-testing "sha1sum file1 file2 -" \
-        "sha1sum file1 file2 -" \
-        "a9993e364706816aba3e25717850c26c9cd0d89d  file1\n589c22335a381f122d129225f5c0ba3056ed5811  file2\na9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
-        "" "abc"
-
-rm -f file1 file2
-
--- a/scripts/test/sort.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#!/bin/bash
-
-# SUSv4 compliant sort tests.
-# Copyright 2005, 2012 by Rob Landley <rob@landley.net>
-
-[ -f testing.sh ] && . testing.sh
-
-# The basic tests.  These should work even with the small config.
-
-testing "sort" "sort input" "a\nb\nc\n" "c\na\nb\n" ""
-testing "sort #2" "sort input" "010\n1\n3\n" "3\n1\n010\n" ""
-testing "sort stdin" "sort" "a\nb\nc\n" "" "b\na\nc\n"
-testing "sort numeric" "sort -n input" "1\n3\n010\n" "3\n1\n010\n" ""
-testing "sort reverse" "sort -r input" "wook\nwalrus\npoint\npabst\naargh\n" \
-	"point\nwook\npabst\naargh\nwalrus\n" ""
-
-# These tests require the full option set.
-
-optional SORT_BIG
-# Longish chunk of data re-used by the next few tests.  The expected output
-# varies, but the input (this) is the same.
-
-data="42	1	3	woot
-42	1	010	zoology
-egg	1	2	papyrus
-7	3	42	soup
-999	3	0	algebra
-"
-
-# Sorting with keys
-
-testing "sort one key" "sort -k4,4 input" \
-"999	3	0	algebra
-egg	1	2	papyrus
-7	3	42	soup
-42	1	3	woot
-42	1	010	zoology
-" "$data" ""
-
-# The numeric sort orders field 2, ignores field 3 (because numeric sort stops
-# at the whitespace), then the global fallback sort does an alpha sort on
-# the whole string (starting at the beginning of the line).
-
-testing "sort key range with numeric option" "sort -k2,3n input" \
-"42	1	010	zoology
-42	1	3	woot
-egg	1	2	papyrus
-7	3	42	soup
-999	3	0	algebra
-" "$data" ""
-
-# Numeric sort on field 2 (again, ignore field 3 because it's numeric),
-# then do a _reversed_ alpha sort on the whole line as a tiebreaker.
-
-testing "sort key range with numeric option and global reverse" \
-"sort -k2,3n -r input" \
-"egg	1	2	papyrus
-42	1	3	woot
-42	1	010	zoology
-999	3	0	algebra
-7	3	42	soup
-" "$data" ""
-
-# Reversed numeric sort on field 2 (numeric ignores field 3), then
-# break ties with alpha sort on whole line.
-
-testing "sort key range with multiple options" "sort -k2,3rn input" \
-"7	3	42	soup
-999	3	0	algebra
-42	1	010	zoology
-42	1	3	woot
-egg	1	2	papyrus
-" "$data" ""
-
-testing "sort key doesn't strip leading blanks, disables fallback global sort" \
-"sort -n -k2 -t ' '" " a \n 1 \n 2 \n" "" " 2 \n 1 \n a \n"
-
-# Test case contributed by Joey Hess:
-
-testing "sort key edge case with -t" "sort -n -k4 -t/" \
-"/usr/lib/finish-install.d/1
-/usr/lib/finish-install.d/4
-/usr/lib/prebaseconfig.d/2
-/usr/lib/prebaseconfig.d/6
-" "" "/usr/lib/finish-install.d/1
-/usr/lib/prebaseconfig.d/2
-/usr/lib/finish-install.d/4
-/usr/lib/prebaseconfig.d/6
-"
-
-testing "sort -x" "sort -x" "010\na0\n 0c0\n" "" "a0\n010\n 0c0\n"
-
-optional SORT_FLOAT
-
-# not numbers < NaN < -infinity < numbers < +infinity
-testing "sort -g" "sort -g" \
-  "bork\nNaN\n-inf\n0.4\n1.222\n01.37\n2.1\n+infinity\n" "" \
-  "01.37\n1.222\n2.1\n0.4\nNaN\nbork\n-inf\n+infinity\n"
-
-
--- a/scripts/test/split.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "split" "seq 1 12345 | split && ls xa[a-z] | wc -l" "13\n" "" ""
-rm xa[a-z]
-
-testing "split -" "seq 1 12345 | split - && ls xa[a-z] | wc -l" "13\n" "" ""
-rm xa[a-z]
-
-seq 1 12345 > file
-testing "split file" "split file && ls xa[a-z] | wc -l" "13\n" "" ""
-rm xa[a-z]
-
-testing "split -l" "split file -l 10k && wc -l xab" "2105 xab\n" "" ""
-rm xa[ab]
-
-testing "split suffix exhaustion" \
-  "split file -l 10 -a 1 walrus 2>/dev/null || ls walrus* | wc -l" "26\n" "" ""
-rm walrus*
-
-testing "split bytes" \
-  "toybox seq 1 20000 | split -b 100 -a 3 - whang && ls whang* | wc -l && wc -c whangbpw" "1089\n94 whangbpw\n" "" ""
-
-testing "split reassembly" \
-  'diff -u <(ls whang* | sort | xargs cat) <(seq 1 20000) && echo yes' \
-  "yes\n" "" ""
-
-rm file whang*
--- a/scripts/test/tac.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-
-echo -e "one-A\none-B" > file1 
-echo -e "two-A\ntwo-B" > file2
-testing "tac" "tac && echo yes" "one-B\none-A\nyes\n" "" "one-A\none-B\n"
-testing "tac -" "tac - && echo yes" "one-B\none-A\nyes\n" "" "one-A\none-B\n"
-testing "tac file1 file2" "tac file1 file2" "one-B\none-A\ntwo-B\ntwo-A\n"  "" ""
-testing "tac - file"      "tac - file1"     "zero-B\nzero-A\none-B\none-A\n" "" "zero-A\nzero-B\n"
-testing "tac file -"      "tac file1 -"     "one-B\none-A\nzero-B\nzero-A\n" "" "zero-A\nzero-B\n"
-
-testing "tac file1 notfound file2" \
-        "tac file1 notfound file2 2>stderr && echo ok ; tac stderr; rm stderr" \
-        "one-B\none-A\ntwo-B\ntwo-A\ntac: notfound: No such file or directory\n" "" ""
-
-testing "tac no trailing newline" "tac -" "defabc\n" "" "abc\ndef"
-
-# xputs used by tac does not propagate this error condition properly. 
-#testing "tac > /dev/full" \
-#        "tac - > /dev/full 2>stderr && echo ok; cat stderr; rm stderr" \
-#        "tac: write: No space left on device\n" "" "zero\n"
-
-# 
-
-rm file1 file2
\ No newline at end of file
--- a/scripts/test/tail.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-BIGTEST="one\ntwo\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n"
-echo -ne "$BIGTEST" > file1
-testing "tail" "tail && echo yes" "oneyes\n" "" "one"
-testing "tail file" "tail file1" \
-	"two\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n" "" ""
-testing "tail -n in bounds" "tail -n 3 file1" "nine\nten\neleven\n" "" ""
-testing "tail -n out of bounds" "tail -n 999 file1" "$BIGTEST" "" ""
-testing "tail -n+ in bounds" "tail -n +3 file1" \
-	"three\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n" "" ""
-testing "tail -n+ outof bounds" "tail -n +999 file1" "" "" ""
-testing "tail -c in bounds" "tail -c 27 file1" \
-	"even\neight\nnine\nten\neleven\n" "" ""
-testing "tail -c out of bounds" "tail -c 999 file1" "$BIGTEST" "" ""
-testing "tail -c+ in bounds" "tail -c +27 file1" \
-	"x\nseven\neight\nnine\nten\neleven\n" "" ""
-testing "tail -c+ out of bonds" "tail -c +999 file1" "" "" ""
-rm file1
-
-testing "tail stdin no trailing newline" "tail -n 1 - " "c" "" "a\nb\nc"
-testing "tail file no trailing newline" "tail -n 1 input" "c" "a\nb\nc" ""
-
-optional TAIL_SEEK
-testing "tail noseek -n in bounds" "tail -n 3" "nine\nten\neleven\n" \
-	"" "$BIGTEST"
-testing "tail noseek -n out of bounds" "tail -n 999" "$BIGTEST" "" "$BIGTEST"
-testing "tail noseek -n+ in bounds" "tail -n +3" \
-	"three\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n" "" \
-	"$BIGTEST"
-testing "tail noseek -n+ outof bounds" "tail -n +999" "" "" "$BIGTEST"
-testing "tail noseek -c in bounds" "tail -c 27" \
-	"even\neight\nnine\nten\neleven\n" "" "$BIGTEST"
-testing "tail noseek -c out of bounds" "tail -c 999" "$BIGTEST" "" "$BIGTEST"
-testing "tail noseek -c+ in bounds" "tail -c +27" \
-	"x\nseven\neight\nnine\nten\neleven\n" "" "$BIGTEST"
-testing "tail noseek -c+ out of bonds" "tail -c +999" "" "" "$BIGTEST"
-
-makebigfile()
-{
-
-  for j in $(seq 1 100)
-  do
-    printf "%s " $j
-    for i in $(seq 1 100)
-    do
-      printf %s 123456789abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
-    done
-    echo
-  done
-}
-makebigfile > bigfile
-
-testing "tail -c 12345 -n 3 bigfile" "tail -c 12345 -n 3 bigfile | md5sum" \
-  "347bbdcbad8a313f4dc7bd558c5bfcb8  -\n" "" ""
-testing "tail -n 3 -c 12345 bigfile" "tail -n 3 -c 12345 bigfile | md5sum" \
-  "1698825a750288284ec3ba7d8a59f302  -\n" "" ""
--- a/scripts/test/tar.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-#!/bin/bash
-
-# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-#Creating  dir
-mkdir dir/dir1 -p
-echo "This is testdata" > dir/dir1/file
-testing "tar tgz - compession, extraction and data validation" "tar -czf dir.tgz dir/ && [ -e dir.tgz ] && echo 'yes'; rm -rf dir; tar -xf dir.tgz && [ -f dir/dir1/file ] && cat dir/dir1/file; rm -rf dir.tgz" "yes\nThis is testdata\n" "" ""
-
-#Creating  dir
-mkdir dir/dir1 -p
-echo "This is testdata" > dir/dir1/file
-testing "tar tar.gz - compession, extraction and data validation" "tar -czf dir.tar.gz dir/ && [ -e dir.tar.gz ] && echo 'yes'; rm -rf dir; tar -xf dir.tar.gz && [ -f dir/dir1/file ] && cat dir/dir1/file; rm -rf dir.tar.gz" "yes\nThis is testdata\n" "" ""
-
-#Creating  dir
-mkdir dir/dir1 -p
-echo "This is testdata" > dir/dir1/file
-testing "tar verbose compression" "tar -cvzf dir.tgz dir/; rm -rf dir.tgz" "dir/\ndir/dir1/\ndir/dir1/file\n" "" ""
-rm -rf dir/
-
-#creating test file
-dd if=/dev/zero of=testFile ibs=4096 obs=4096 count=1000 2>/dev/null
-testing "tar - compession and extraction of a file" "tar -czf testFile.tgz testFile && [ -e testFile.tgz ] && echo 'yes'; rm -rf testFile; tar -xf testFile.tgz && [ -f testFile ] && echo 'yes'; rm -rf testFile.tgz" "yes\nyes\n" "" ""
-
-#creating empty test file
-touch testFile
-testing "tar - compession and extraction of a empty file" "tar -czf testFile.tgz testFile && [ -e testFile.tgz ] && echo 'yes'; rm -rf testFile; tar -xf testFile.tgz && [ -f testFile ] && echo 'yes'; rm -rf testFile.tgz" "yes\nyes\n" "" ""
-
-#Creating  dir
-mkdir dir/dir1 -p
-touch dir/dir1/file1 dir/dir1/file2 dir/dir1/file3 dir/dir1/file4
-testing "tar -t option" "tar -czf dir.tar.gz dir/; rm -rf dir; tar -tf dir.tar.gz; rm -rf dir.tar.gz" "dir/\ndir/dir1/\ndir/dir1/file2\ndir/dir1/file4\ndir/dir1/file3\ndir/dir1/file1\n" "" ""
-rm -rf dir/
-
-#Creating nested directory 
-mkdir -p dir/dir1 dir/dir2 dir/dir3 dir/dir4
-echo "This is testdata" > dir/dir1/file; echo "Dont exclude me" >  dir/dir3/file1 ; 
-echo "Exclude me" >  dir/dir3/file2 ; echo "YO" > dir/dir4/file1 ; echo "Hello" >dir/dir4/file2; echo "Dont" > dir/dir2/file1
-echo "dir/dir4\ndir/dir3/file2" > exclude_file
-testing "Creating tar with files excluded : -X" "tar -cvzf dir.tgz dir/ -X exclude_file ; rm -rf dir ; tar -tf dir.tgz; rm -rf dir.tgz " "dir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir3/file1\ndir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir3/file1\n" "" ""
-rm -rf exclude_file
-
-#Creating nested directory
-mkdir dir/dir1 -p ;  mkdir dir/dir2 ;  mkdir dir/dir3 ; mkdir dir/dir4
-echo "This is testdata" > dir/dir1/file
-echo "Dont exclude me" >  dir/dir3/file1 ; echo "Exclude me" >  dir/dir3/file2 ; echo "YO" > dir/dir4/file1 ; echo "Hello" >dir/dir4/file2; echo "Dont" > dir/dir2/file1
-testing "tar with pattern --exclude" "tar --exclude=dir/dir3/* -cvzf dir.tgz dir/ ; rm -rf dir ; tar -tf dir.tgz; rm -rf dir.tgz " "dir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir4/\ndir/dir4/file2\ndir/dir4/file1\ndir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir4/\ndir/dir4/file2\ndir/dir4/file1\n" "" ""
-
-#Creating directory to be compressed
-mkdir dir/dir1 -p
-echo "This is testdata" > dir/dir1/file
-mkdir temp
-testing "Extraction with -C Dir" "tar -czf dir.tgz dir/ ;rm -rf dir ;tar -xf dir.tgz -C temp/ ; [ -e temp/dir ] && echo 'yes' ; rm -rf dir dir.tgz" "yes\n" "" ""
-rm -rf temp
-
-#Creating nested directory 
-mkdir dir/dir1 -p ;  mkdir dir/dir2 ;  mkdir dir/dir3 ; mkdir dir/dir4 ; mkdir temp_dir
-echo "dir1/file" > dir/dir1/file ; echo "temp_dir/file" > temp_dir/file 
-echo "dir3/file1" >  dir/dir3/file1 ; echo "dir3/file2" >  dir/dir3/file2 ; echo "YO" > dir/dir4/file1 ; echo "Hello" >dir/dir4/file2; echo "dir2/file1" > dir/dir2/file1
-echo  "temp_dir/file" > exclude_file
-testing "Creating tar extra files/directory included : -T" "tar -czf dir.tgz dir/ -T exclude_file ; rm -rf dir ; tar -tf dir.tgz; rm -rf dir.tgz " "dir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir3/file2\ndir/dir3/file1\ndir/dir4/\ndir/dir4/file2\ndir/dir4/file1\ntemp_dir/file\n" "" ""
-rm -rf exclude_file
-rm -rf temp_dir
-
-#Creating dir
-mkdir dir/dir1 -p 
-echo "Inside dir/dir1" > dir/dir1/file ; echo "Hello Inside dir" > dir/file
-testing "Exctraction on STDOUT : -O" " tar -czf dir.tgz dir/ ; rm -rf dir ; tar -xf dir.tgz -O ; [ -e 'Inside dir/dir1/\nHello Inside dir\n' ] && echo 'yes'; rm -rf dir.tgz "  "" "" ""
--- a/scripts/test/test.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# TODO: Should also have device and socket files
-
-mkdir d
-touch f
-ln -s /dev/null L
-echo nonempty > s
-mkfifo p
-
-type_test()
-{
-  result=""
-  for i in d f L s p n
-  do
-    if test $* $i
-    then
-      result=$result$i
-    fi
-  done
-  printf "%s" $result
-}
-
-testing "test -b" "type_test -b" "" "" ""
-testing "test -c" "type_test -c" "L" "" ""
-testing "test -d" "type_test -d" "d" "" ""
-testing "test -f" "type_test -f" "fs" "" ""
-testing "test -h" "type_test -h" "L" "" ""
-testing "test -L" "type_test -L" "L" "" ""
-testing "test -s" "type_test -s" "ds" "" ""
-testing "test -S" "type_test -S" "" "" ""
-testing "test -p" "type_test -p" "p" "" ""
-testing "test -e" "type_test -e" "dfLsp" "" ""
-testing "test ! -e" "type_test ! -e" "n" "" ""
-
-rm f L s p
-rmdir d
-
-# TODO: Test rwx gu t
-
-testing "test" "test "" || test a && echo yes" "yes\n" "" ""
-testing "test -n" "test -n "" || test -n a && echo yes" "yes\n" "" ""
-testing "test -z" "test -n a || test -n "" && echo yes" "yes\n" "" ""
-testing "test a = b" "test a = b || test "" = "" && echo yes" "yes\n" "" ""
-testing "test a != b" "test "" != "" || test a = b && echo yes" "yes\n" "" ""
-
-arith_test()
-{
-  test -1 $1 1 && echo l
-  test 0 $1 0 && echo e
-  test -3 $1 -5 && echo g
-}
-
-testing "test -eq" "arith_test -eq" "e\n" "" ""
-testing "test -ne" "arith_test -ne" "l\ng\n" "" ""
-testing "test -gt" "arith_test -gt" "g\n" "" ""
-testing "test -ge" "arith_test -ge" "e\ng\n" "" ""
-testing "test -lt" "arith_test -lt" "l\n" "" ""
-testing "test -le" "arith_test -le" "l\ne\n" "" ""
-
-# test ! = -o a
-# test ! \( = -o a \)
-# test \( ! = \) -o a
--- a/scripts/test/testing.sh	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-# Simple test harness infrastructure
-#
-# Copyright 2005 by Rob Landley
-
-# This file defines two functions, "testing" and "optionflag"
-
-# The following environment variables enable optional behavior in "testing":
-#    DEBUG - Show every command run by test script.
-#    VERBOSE - Print the diff -u of each failed test case.
-#              If equal to "fail", stop after first failed test.
-#    SKIP - do not perform this test (this is set by "optionflag")
-#
-# The "testing" function takes five arguments:
-#	$1) Description to display when running command
-#	$2) Command line arguments to command
-#	$3) Expected result (on stdout)
-#	$4) Data written to file "input"
-#	$5) Data written to stdin
-#
-# The exit value of testing is the exit value of the command it ran.
-#
-# The environment variable "FAILCOUNT" contains a cumulative total of the
-# number of failed tests.
-
-# The "optional" function is used to skip certain tests, ala:
-#   optionflag CFG_THINGY
-#
-# The "optional" function checks the environment variable "OPTIONFLAGS",
-# which is either empty (in which case it always clears SKIP) or
-# else contains a colon-separated list of features (in which case the function
-# clears SKIP if the flag was found, or sets it to 1 if the flag was not found).
-
-export FAILCOUNT=0
-export SKIP=
-
-# Helper functions
-
-# Check config to see if option is enabled, set SKIP if not.
-
-optional()
-{
-  option=`echo "$OPTIONFLAGS" | egrep "(^|:)$1(:|\$)"`
-  # Not set?
-  if [ -z "$1" ] || [ -z "$OPTIONFLAGS" ] || [ ${#option} -ne 0 ]
-  then
-    SKIP=""
-    return
-  fi
-  SKIP=1
-}
-
-# The testing function
-
-testing ()
-{
-  NAME="$1"
-  [ -z "$1" ] && NAME=$2
-
-  if [ $# -ne 5 ]
-  then
-    echo "Test $NAME has the wrong number of arguments ($# $*)" >&2
-    exit
-  fi
-
-  [ -n "$DEBUG" ] && set -x
-
-  if [ -n "$SKIP" ]
-  then
-    [ ! -z "$VERBOSE" ] && echo "SKIPPED: $NAME"
-    return 0
-  fi
-
-  echo -ne "$3" > expected
-  echo -ne "$4" > input
-  echo -ne "$5" | eval "$2" > actual
-  RETVAL=$?
-
-  cmp expected actual > /dev/null 2>&1
-  if [ $? -ne 0 ]
-  then
-    FAILCOUNT=$[$FAILCOUNT+1]
-    echo "FAIL: $NAME"
-    if [ -n "$VERBOSE" ]
-    then
-      echo "echo '$5' | $2"
-      diff -u expected actual
-      [ "$VERBOSE" == fail ] && exit 1
-    fi
-  else
-    echo "PASS: $NAME"
-  fi
-  rm -f input expected actual
-
-  [ -n "$DEBUG" ] && set +x
-
-  return $RETVAL
-}
-
-# Recursively grab an executable and all the libraries needed to run it.
-# Source paths beginning with / will be copied into destpath, otherwise
-# the file is assumed to already be there and only its library dependencies
-# are copied.
-
-function mkchroot
-{
-  [ $# -lt 2 ] && return
-
-  echo -n .
-
-  dest=$1
-  shift
-  for i in "$@"
-  do
-    [ "${i:0:1}" == "/" ] || i=$(which $i)
-    [ -f "$dest/$i" ] && continue
-    if [ -e "$i" ]
-    then
-      d=`echo "$i" | grep -o '.*/'` &&
-      mkdir -p "$dest/$d" &&
-      cat "$i" > "$dest/$i" &&
-      chmod +x "$dest/$i"
-    else
-      echo "Not found: $i"
-    fi
-    mkchroot "$dest" $(ldd "$i" | egrep -o '/.* ')
-  done
-}
-
-# Set up a chroot environment and run commands within it.
-# Needed commands listed on command line
-# Script fed to stdin.
-
-function dochroot
-{
-  mkdir tmpdir4chroot
-  mount -t ramfs tmpdir4chroot tmpdir4chroot
-  mkdir -p tmpdir4chroot/{etc,sys,proc,tmp,dev}
-  cp -L testing.sh tmpdir4chroot
-
-  # Copy utilities from command line arguments
-
-  echo -n "Setup chroot"
-  mkchroot tmpdir4chroot $*
-  echo
-
-  mknod tmpdir4chroot/dev/tty c 5 0
-  mknod tmpdir4chroot/dev/null c 1 3
-  mknod tmpdir4chroot/dev/zero c 1 5
-
-  # Copy script from stdin
-
-  cat > tmpdir4chroot/test.sh
-  chmod +x tmpdir4chroot/test.sh
-  chroot tmpdir4chroot /test.sh
-  umount -l tmpdir4chroot
-  rmdir tmpdir4chroot
-}
-
--- a/scripts/test/touch.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "touch" "touch walrus && [ -e walrus ] && echo yes" "yes\n" "" ""
-testing "touch 1 2 3" "touch one two three && rm one two three && echo yes" "yes\n" \
-  "" ""
-testing "touch -c" "touch -c walrus && [ -e walrus ] && echo yes" "yes\n" "" ""
-testing "touch -c missing" "touch -c warrus && [ ! -e warrus ] && echo yes" \
-  "yes\n" "" ""
-
-# This isn't testing fraction of a second because I dunno how to read it back
-
-testing "touch -d" \
-  "touch -d 2009-02-13T23:31:30.12Z walrus && date -r walrus +%s.%N" "1234567890\n" \
-  "" ""
-#testing "touch -t" "touch -t 200902132331.42
-#testing "touch -r"
-#testing "touch -a"
-#testing "touch -m"
-#testing "touch -am"
-rm walrus
--- a/scripts/test/useradd.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-#!/bin/bash
-
-# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-# 70 characters long string; hereafter, we will use it as per our need.
-_s70="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
-
-# Redirecting all output to /dev/null for grep, adduser and deluser
-arg="&>/dev/null"
-
-#testing "name" "command" "result" "infile" "stdin"
-
-# Default password for adding user is: 'password'
-pass=`echo -ne 'password\npassword\n'`
-
-testing "adduser user_name (text)" "useradd toyTestUser $arg ||
-   grep '^toyTestUser:' /etc/passwd $arg && test -d /home/toyTestUser &&
-   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-testing "adduser user_name (alphanumeric)" "useradd toy1Test2User3 $arg ||
-   grep '^toy1Test2User3:' /etc/passwd $arg && test -d /home/toy1Test2User3 &&
-   userdel toy1Test2User3 $arg && rm -rf /home/toy1Test2User3 && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-testing "adduser user_name (numeric)" "useradd 987654321 $arg ||
-   grep '^987654321:' /etc/passwd $arg && test -d /home/987654321 &&
-   userdel 987654321 $arg && rm -rf /home/987654321 && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-testing "adduser user_name (with ./-/_)" "useradd toy.1Test-2User_3 $arg ||
-   grep '^toy.1Test-2User_3:' /etc/passwd $arg &&
-   test -d /home/toy.1Test-2User_3 && userdel toy.1Test-2User_3 $arg &&
-   rm -rf /home/toy.1Test-2User_3 && echo 'yes'" "yes\n" "" "$pass"
-
-testing "adduser user_name (long string)" "useradd $_s70 $arg ||
-   grep '^$_s70:' /etc/passwd $arg && test -d /home/$_s70 &&
-   userdel $_s70 $arg && rm -rf /home/$_s70 && echo 'yes'" "yes\n" "" "$pass"
-
-testing "adduser user_name with dir" "useradd -h $PWD/dir toyTestUser $arg ||
-   grep '^toyTestUser:.*dir' /etc/passwd $arg && test -d $PWD/dir &&
-   userdel toyTestUser $arg && rm -rf $PWD/dir && echo 'yes'" "yes\n" "" "$pass"
-
-gecos="aaa,bbb,ccc,ddd,eee"
-testing "adduser user_name with gecos" "useradd -g '$gecos' toyTestUser $arg ||
-   grep '^toyTestUser:.*$gecos' /etc/passwd $arg && test -d /home/toyTestUser &&
-   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-shl="/bin/sh"
-testing "adduser user_name with shell" "useradd -s $shl toyTestUser $arg ||
-   grep '^toyTestUser:.*$shl$' /etc/passwd $arg && test -d /home/toyTestUser &&
-   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-g_name="root"
-g_id=`grep $g_name /etc/group | cut -d : -f 3`
-testing "adduser user_name with group" "useradd -G $g_name toyTestUser $arg ||
-   grep '^toyTestUser:.*:.*:$g_id:.*' /etc/passwd $arg &&
-   test -d /home/toyTestUser && userdel toyTestUser $arg &&
-   rm -rf /home/toyTestUser && echo 'yes'" "yes\n" "" "$pass"
-
-testing "adduser user_name (system user)" "useradd -S toyTestUser $arg ||
-   grep '^toyTestUser:.*:.*:.*' /etc/passwd $arg &&
-   test ! -e /home/toyTestUser && userdel toyTestUser $arg && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-testing "adduser user_name with -D" "useradd -D toyTestUser $arg ||
-   grep '^toyTestUser:.*:.*:.*' /etc/passwd $arg && test -d /home/toyTestUser &&
-   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-testing "adduser user_name with -H" "useradd -H toyTestUser $arg ||
-   grep '^toyTestUser:.*:.*:.*' /etc/passwd $arg &&
-   test ! -e /home/toyTestUser && userdel toyTestUser $arg && echo 'yes'" \
-  "yes\n" "" "$pass"
-
-testing "adduser user_name with dir and -H" \
-  "useradd -H -h $PWD/dir toyTestUser $arg ||
-   grep '^toyTestUser:.*dir' /etc/passwd $arg && test ! -e $PWD/dir &&
-   userdel toyTestUser $arg && echo 'yes'" "yes\n" "" "$pass"
-
-testing "adduser user_name with user_id" "useradd -u 49999 toyTestUser $arg ||
-   grep '^toyTestUser:x:49999:.*' /etc/passwd $arg &&
-   test -d /home/toyTestUser && userdel toyTestUser $arg &&
-   rm -rf /home/toyTestUser && echo 'yes'" "yes\n" "" "$pass"
-
--- a/scripts/test/uudecode.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "uudecode uu empty file" "uudecode -o /dev/stdout && echo yes" \
-	"yes\n" "" "begin 744 test\n\`\nend\n"
-testing "uudecode uu 1-char" "uudecode -o /dev/stdout" "a" "" \
-	"begin 744 test\n!80  \n\`\nend\n"
-testing "uudecode uu 2-char" "uudecode -o /dev/stdout" "ab" "" \
-	"begin 744 test\n\"86( \n\`\nend\n"
-testing "uudecode uu 3-char" "uudecode -o /dev/stdout" "abc" "" \
-	"begin 744 test\n#86)C\n\`\nend\n" 
-
-testing "uudecode b64 empty file" "uudecode -o /dev/stdout && echo yes" \
-        "yes\n" "" "begin-base64 744 test\n====\n" 
-testing "uudecode b64 1-char" "uudecode -o /dev/stdout" "a" "" \
-	"begin-base64 744 test\nYQ==\n====\n"
-testing "uudecode b64 2-char" "uudecode -o /dev/stdout" "ab" "" \
-	"begin-base64 744 test\nYWI=\n====\n"
-testing "uudecode b64 3-char" "uudecode -o /dev/stdout" "abc" "" \
-	"begin-base64 744 test\nYWJj\n====\n"
-
-testing "uudecode filename" "uudecode && echo -ne 'abc' | cmp uudecode-fn-test /dev/stdin && echo -ne yes && rm uudecode-fn-test" \
-	"yes" "" "begin-base64 744 uudecode-fn-test\nYWJj\n====\n"
-
--- a/scripts/test/uuencode.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "uuencode not enough args [fail]" "uuencode 2>/dev/null" "" "" ""
-
-testing "uuencode uu empty file" "uuencode test" \
-	"begin 744 test\nend\n" "" "" 
-testing "uuencode uu 1-char" "uuencode test" \
-	"begin 744 test\n!80\`\`\nend\n" "" "a" 
-testing "uuencode uu 2-char" "uuencode test" \
-	"begin 744 test\n\"86(\`\nend\n" "" "ab" 
-testing "uuencode uu 3-char" "uuencode test" \
-	"begin 744 test\n#86)C\nend\n" "" "abc" 
-
-testing "uuencode b64 empty file" "uuencode -m test" \
-	"begin-base64 744 test\n====\n" "" "" 
-testing "uuencode b64 1-char" "uuencode -m test" \
-	"begin-base64 744 test\nYQ==\n====\n" "" "a" 
-testing "uuencode b64 2-char" "uuencode -m test" \
-	"begin-base64 744 test\nYWI=\n====\n" "" "ab" 
-testing "uuencode b64 3-char" "uuencode -m test" \
-	"begin-base64 744 test\nYWJj\n====\n" "" "abc" 
-
--- a/scripts/test/wc.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-cat >file1 <<EOF
-some words	. 
-
-some
-lines
-EOF
-
-testing "wc" "wc >/dev/null && echo yes" "yes\n" "" ""
-testing "wc empty file" "wc" "0 0 0\n" "" ""
-testing "wc standard input" "wc" "1 3 5\n" "" "a b\nc"
-testing "wc -c" "wc -c file1" "26 file1\n" "" ""
-testing "wc -l" "wc -l file1" "4 file1\n" "" ""
-testing "wc -w" "wc -w file1" "5 file1\n" "" ""
-testing "wc format" "wc file1" "4 5 26 file1\n" "" ""
-testing "wc multiple files" "wc input - file1" \
-        "1 2 3 input\n0 2 3 -\n4 5 26 file1\n5 9 32 total\n" "a\nb" "a b"
-
-optional TOYBOX_I18N
-
-#Tests for wc -m
-if printf "%s" "$LANG" | grep -q UTF-8
-then
-
-printf " " > file1
-for i in $(seq 1 8192)
-do
-  printf "ü" >> file1
-done
-testing "wc -m" "wc -m file1" "8193 file1\n" "" ""
-printf " " > file1
-for i in $(seq 1 8192)
-do
-  printf "ü" >> file1
-done
-testing "wc -m (invalid chars)" "wc -m file1" "8193 file1\n" "" ""
-testing "wc -mlw" "wc -mlw input" "1 2 11 input\n" "hello, 世界!\n" ""
-
-else
-printf "skipping tests for wc -m"
-fi
-
-rm file1
--- a/scripts/test/xargs.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-
-testing "xargs" "xargs && echo yes" "hello\nyes\n" "" "hello"
-testing "xargs spaces" "xargs" \
-	"one two three four\n" "" "one two\tthree  \nfour\n\n"
-
-testing "xargs -n 0" "xargs -n 0 2>/dev/null || echo ok" "ok\n" \
-	"" "one \ntwo\n three"
-testing "xargs -n 2" "xargs -n 2" "one two\nthree\n" "" "one \ntwo\n three"
-testing "xargs -n exact match" "xargs -n 3" "one two three\n" "" "one two three"
-testing "xargs2" "xargs -n2" "one two\nthree four\nfive\n" "" \
-	"one two three four five"
-testing "xargs -s too long" "xargs -s 9 echo 2>/dev/null || echo ok" \
-	"one\ntwo\nok\n" "" "one two three"
-testing "xargs -s 13" "xargs -s 13 echo" "one two\nthree\n" "" "one \ntwo\n three"
-testing "xargs -s 12" "xargs -s 12 echo" "one\ntwo\nthree\n" "" "one \ntwo\n three"
-
-touch one two three
-testing "xargs command -opt" "xargs -n2 ls -1" "one\ntwo\nthree\n" "" \
-	"one two three"
-rm one two three
-
-exit
-
-testing "xargs -n exact match"
-testing "xargs -s exact match"
-testing "xargs -s 0"
-testing "xargs -s impossible"
-
-# xargs command_not_found - returns 127
-# xargs false - returns 1
--- a/scripts/test/xzcat.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-echo "hello" > file
-tar -cJf file.xz file
-# Get system xzcat
-xzcatExe=`which xzcat`
-$xzcatExe file.xz > xzcatOut
-testing "xzcat - decompresses a single file" "xzcat file.xz > Tempfile && echo "yes"; diff Tempfile xzcatOut && echo "yes"; rm -rf file* xzcatOut Tempfile" "yes\nyes\n" "" ""
-
-#testing "name" "command" "result" "infile" "stdin"
-echo "hello" > file1
-echo "hi" > file2
-echo "Hi, Good morning !! I am a xzcat tester" > file3
-tar -cJf file1.xz file1
-tar -cJf file2.xz file2
-tar -cJf file3.xz file3
-# Get system xzcat
-xzcatExe=`which xzcat`
-$xzcatExe file1.xz file2.xz file3.xz > xzcatOut
-testing "xzcat - decompresses multiple files" "xzcat file1.xz file2.xz file3.xz > Tempfile && echo "yes" ; diff Tempfile xzcatOut && echo "yes"; rm -rf file* xzcatOut Tempfile " "yes\nyes\n" "" ""
--- a/scripts/test/zcat.test	Sat Sep 20 13:07:53 2014 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
-# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
-
-[ -f testing.sh ] && . testing.sh
-
-#testing "name" "command" "result" "infile" "stdin"
-echo "hello" > file
-tar -czf file.gz file
-# Get system zcat
-zcatExe=`which zcat`
-$zcatExe file.gz > zcatOut
-testing "zcat - decompresses a single file" "zcat file.gz > Tempfile && echo "yes"; diff Tempfile zcatOut && echo "yes"; rm -rf file* zcatOut Tempfile" "yes\nyes\n" "" ""
-
-#testing "name" "command" "result" "infile" "stdin"
-echo "hello" > file1
-echo "hi" > file2
-echo "Hi, Good morning !! I am a bzcat tester" > file3
-tar -czf file1.gz file1
-tar -czf file2.gz file2
-tar -czf file3.gz file3
-# Get system zcat
-zcatExe=`which zcat`
-$zcatExe file1.gz file2.gz file3.gz > zcatOut
-testing "zcat - decompresses multiple files" "zcat file1.gz file2.gz file3.gz > Tempfile && echo "yes" ; diff Tempfile zcatOut && echo "yes"; rm -rf file* zcatOut Tempfile " "yes\nyes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/basename.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Removal of extra /'s
+testing "basename /-only" "basename ///////" "/\n" "" ""
+testing "basename trailing /" "basename a//////" "a\n" "" ""
+testing "basename combined" "basename /////a///b///c///d/////" "d\n" "" ""
+
+# Standard suffix behavior.
+testing "basename suffix" "basename a/b/c/d.suffix .suffix" "d\n" "" ""
+
+# A suffix cannot be the entire result.
+testing "basename suffix=result" "basename .txt .txt" ".txt\n" "" ""
+
+# Deal with suffix appearing in the filename
+testing "basename reappearing suffix 1" "basename a.txt.txt .txt" "a.txt\n" "" ""
+testing "basename reappearing suffix 2" "basename a.txt.old .txt" "a.txt.old\n" "" ""
+
+# A suffix should be a real suffix, only a the end.
+testing "basename invalid suffix" "basename isthisasuffix? suffix" "isthisasuffix?\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/blkid.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+BDIR="$TOPDIR/tests/blkid"
+
+bzcat "$BDIR"/squashfs.bz2 > temp.img
+testing "blkid file" "blkid temp.img" 'temp.img: TYPE="squashfs"\n' "" ""
+rm temp.img
+
+testing "blkid cramfs" 'bzcat "$BDIR"/cramfs.bz2 | blkid -' \
+  '-: LABEL="mycramfs" TYPE="cramfs"\n' "" ""
+testing "blkid ext2" 'bzcat "$BDIR"/ext2.bz2 | blkid -' \
+  '-: LABEL="myext2" UUID="e59093ba-4135-4fdb-bcc4-f20beae4dfaf" TYPE="ext2"\n' \
+  "" "" 
+testing "blkid ext3" 'bzcat "$BDIR"/ext3.bz2 | blkid -' \
+  '-: LABEL="myext3" UUID="79d1c877-1a0f-4e7d-b21d-fc32ae3ef101" TYPE="ext2"\n' \
+  "" "" 
+testing "blkid ext4" 'bzcat "$BDIR"/ext4.bz2 | blkid -' \
+  '-: LABEL="myext4" UUID="dc4b7c00-c0c0-4600-af7e-0335f09770fa" TYPE="ext2"\n' \
+  "" ""
+testing "blkid f2fs" 'bzcat "$BDIR"/f2fs.bz2 | blkid -' \
+  '-: LABEL="" UUID="b53d3619-c204-4c0b-8504-36363578491c" TYPE="f2fs"\n' \
+  "" ""
+testing "blkid msdos" 'bzcat "$BDIR"/msdos.bz2 | blkid -' \
+  '-: LABEL="mymsdos    " UUID="5108-1e6e" TYPE="vfat"\n' "" ""
+testing "blkid ntfs" 'bzcat "$BDIR"/ntfs.bz2 | blkid -' \
+  '-: UUID="8585600838bfe16e" TYPE="ntfs"\n' "" ""
+testing "blkid reiserfs" 'bzcat "$BDIR"/reiser3.bz2 | blkid -' \
+  '-: LABEL="" UUID="a5b99bec-45cc-41d7-986e-32f4b6fc28f2" TYPE="reiserfs"\n' \
+  "" ""
+testing "blkid squashfs" 'bzcat "$BDIR"/squashfs.bz2 | blkid -' \
+  '-: TYPE="squashfs"\n' "" ""
+testing "blkid vfat" 'bzcat "$BDIR"/vfat.bz2 | blkid -' \
+  '-: LABEL="myvfat     " UUID="1db9-5673" TYPE="vfat"\n' "" ""
+testing "blkid xfs" 'bzcat "$BDIR"/xfs.bz2 | blkid -' \
+  '-: LABEL="XFS_test" UUID="d63a1dc3-27d5-4dd4-8b38-f4f97f495c6f" TYPE="xfs"\n' \
+  "" ""
+
+#testing "blkid minix" 'bzcat "$BDIR"/minix.bz2 | blkid -'
+#adfs bfs btrfs cramfs jfs nilfs romfs
+#vfat  // fat32 fat12 fat16
Binary file tests/blkid/cramfs.bz2 has changed
Binary file tests/blkid/ext2.bz2 has changed
Binary file tests/blkid/ext3.bz2 has changed
Binary file tests/blkid/ext4.bz2 has changed
Binary file tests/blkid/f2fs.bz2 has changed
Binary file tests/blkid/minix.bz2 has changed
Binary file tests/blkid/msdos.bz2 has changed
Binary file tests/blkid/ntfs.bz2 has changed
Binary file tests/blkid/reiser3.bz2 has changed
Binary file tests/blkid/squashfs.bz2 has changed
Binary file tests/blkid/vfat.bz2 has changed
Binary file tests/blkid/xfs.bz2 has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/bzcat.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+echo "hello" > file
+tar -cjf file.tar.bz2 file
+# Get system bzcat
+bzcatExe=`which bzcat`
+$bzcatExe file.tar.bz2 > bzcatOut
+testing "bzcat - decompresses a single file" "bzcat file.tar.bz2 > Tempfile && echo "yes"; diff Tempfile bzcatOut && echo "yes"; rm -rf file* bzcatOut Tempfile" "yes\nyes\n" "" ""
+
+#testing "name" "command" "result" "infile" "stdin"
+echo "hello" > file1
+echo "hi" > file2
+echo "Hi, Good morning !! I am a bzcat tester" > file3
+tar -cjf file1.tar.bz2 file1
+tar -cjf file2.tar.bz2 file2
+tar -cjf file3.tar.bz2 file3
+# Get system bzcat
+bzcatExe=`which bzcat`
+$bzcatExe file1.tar.bz2 file2.tar.bz2 file3.tar.bz2 > bzcatOut
+testing "bzcat - decompresses multiple files" "bzcat file1.tar.bz2 file2.tar.bz2 file3.tar.bz2 > Tempfile && echo "yes" ; diff Tempfile bzcatOut && echo "yes"; rm -rf file* bzcatOut Tempfile " "yes\nyes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/cat.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+echo "one" > file1
+echo "two" > file2
+testing "cat" "cat && echo yes" "oneyes\n" "" "one"
+testing "cat -" "cat - && echo yes" "oneyes\n" "" "one"
+testing "cat file1 file2" "cat file1 file2" "one\ntwo\n"  "" ""
+testing "cat - file"      "cat - file1"     "zero\none\n" "" "zero\n"
+testing "cat file -"      "cat file1 -"     "one\nzero\n" "" "zero\n"
+
+testing "cat file1 notfound file2" \
+        "cat file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
+        "one\ntwo\ncat: notfound: No such file or directory\n" "" ""
+
+testing "cat file1" \
+        "cat /proc/self/exe > file1 && cmp /proc/self/exe file1 && echo yes" \
+        "yes\n" "" ""
+
+testing "cat - file1" \
+        "cat - file1 | diff -a -U 0 - file1 | tail -n 1" \
+        "-hello\n" "" "hello\n"
+
+testing "cat > /dev/full" \
+        "cat - > /dev/full 2>stderr && echo ok; cat stderr; rm stderr" \
+        "cat: xwrite: No space left on device\n" "" "zero\n"
+
+rm file1 file2
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/chgrp.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,102 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+if [ "$(id -u)" -ne 0 ]
+then
+  echo "SKIPPED: chgrp (not root)"
+  continue 2>/dev/null
+  exit
+fi
+
+# We chgrp between "root" and the last group in /etc/group.
+
+GRP="$(sed -n '$s/:.*//p' /etc/group)"
+
+# Set up a little testing hierarchy
+
+rm -rf testdir &&
+mkdir -p testdir/dir/dir/dir testdir/dir2 &&
+touch testdir/dir/file &&
+ln -s ../dir/dir testdir/dir2/dir &&
+ln -s ../dir/file testdir/dir2/file || exit 1
+
+# Wrapper to reset groups and return results
+
+IN="cd testdir && chgrp -R $GRP dir dir2 &&"
+OUT="&& cd .. && echo \$(ls -lR testdir | awk '{print \$4}')"
+
+# The groups returned by $OUT are, in order:
+# dir dir2 dir/dir dir/file dir/dir/dir dir2/dir dir2/file
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Basic smoketest
+testing "chgrp dir" "$IN chgrp root dir $OUT" \
+	"root $GRP $GRP $GRP $GRP $GRP $GRP\n" "" ""
+testing "chgrp file" "$IN chgrp root dir/file $OUT" \
+	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
+testing "chgrp dir and file" "$IN chgrp root dir dir/file $OUT" \
+	"root $GRP $GRP root $GRP $GRP $GRP\n" "" ""
+
+# symlinks (affect target, not symlink)
+testing "chgrp symlink->file" "$IN chgrp root dir2/file $OUT" \
+	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
+testing "chgrp symlink->dir" "$IN chgrp root dir2/dir $OUT" \
+	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
+testing "chgrp -h symlink->dir" "$IN chgrp -h root dir2/dir $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
+
+# What does -h do (affect symlink, not target)
+testing "chgrp -h symlink->file" "$IN chgrp -h root dir2/file $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP $GRP root\n" "" ""
+testing "chgrp -h symlink->dir" "$IN chgrp -h root dir2/dir $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
+
+# chgrp -R (note, -h is implied by -R)
+
+testing "chgrp -R dir" "$IN chgrp -R root dir $OUT" \
+	"root $GRP root root root $GRP $GRP\n" "" ""
+testing "chgrp -R dir2" "$IN chgrp -R root dir2 $OUT" \
+	"$GRP root $GRP $GRP $GRP root root\n" "" ""
+testing "chgrp -R symlink->dir" "$IN chgrp -R root dir2/dir $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
+testing "chgrp -R symlink->file" "$IN chgrp -R root dir2/file $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP $GRP root\n" "" ""
+
+# chgrp -RP (same as -R by itself)
+
+testing "chgrp -RP dir2" "$IN chgrp -RP root dir2 $OUT" \
+	"$GRP root $GRP $GRP $GRP root root\n" "" ""
+testing "chgrp -RP symlink->dir" "$IN chgrp -RP root dir2/dir $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP root $GRP\n" "" ""
+testing "chgrp -RP symlink->file" "$IN chgrp -RP root dir2/file $OUT" \
+	"$GRP $GRP $GRP $GRP $GRP $GRP root\n" "" ""
+
+# chgrp -RH (change target but only recurse through symlink->dir on cmdline)
+
+testing "chgrp -RH dir2" "$IN chgrp -RH root dir2 $OUT" \
+	"$GRP root root root $GRP $GRP $GRP\n" "" ""
+testing "chgrp -RH symlink->dir" "$IN chgrp -RH root dir2/dir $OUT" \
+	"$GRP $GRP root $GRP root $GRP $GRP\n" "" ""
+testing "chgrp -RH symlink->file" "$IN chgrp -RH root dir2/file $OUT" \
+	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
+
+# chgrp -RL (change target and always recurse through symlink->dir)
+
+testing "chgrp -RL dir2" "$IN chgrp -RL root dir2 $OUT" \
+	"$GRP root root root root $GRP $GRP\n" "" ""
+testing "chgrp -RL symlink->dir" "$IN chgrp -RL root dir2/dir $OUT" \
+	"$GRP $GRP root $GRP root $GRP $GRP\n" "" ""
+testing "chgrp -RL symlink->file" "$IN chgrp -RL root dir2/file $OUT" \
+	"$GRP $GRP $GRP root $GRP $GRP $GRP\n" "" ""
+
+# -HLP are NOPs without -R
+testing "chgrp -H without -R" "$IN chgrp -H root dir2/dir $OUT" \
+	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
+testing "chgrp -L without -R" "$IN chgrp -L root dir2/dir $OUT" \
+	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
+testing "chgrp -P without -R" "$IN chgrp -P root dir2/dir $OUT" \
+	"$GRP $GRP root $GRP $GRP $GRP $GRP\n" "" ""
+
+rm -rf testdir
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/chmod.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,244 @@
+#!/bin/bash
+
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+
+#testing "name" "command" "result" "infile" "stdin"
+
+PERM="---""--x""-w-""-wx""r--""r-x""rw-""rwx"
+
+num2perm()
+{
+  for i in 0 1 2
+  do
+    num=${1:$i:1}
+    printf "%s" ${PERM:$(($num*3)):3}
+  done
+  echo
+}
+
+# Creating test files to test chmod command
+mkdir dir
+touch file
+
+# We don't need to test all 511 permissions
+for u in 0 1 2 3 4 5 6 7
+do
+  for g in 0 3 6
+  do
+    for o in 0 7
+    do
+      if [ "$type" == file ]
+      then
+        type=dir
+        rm -rf "./$type" && mkdir $type
+        DASH=d
+      else
+        type=file
+        rm -f "./$type" && touch $type
+        DASH=-
+      fi
+      DASHES=$(num2perm $u$g$o)
+      testing "chmod $u$g$o $type" "chmod $u$g$o $type && 
+        ls -ld $type | cut -d' ' -f 1 | cut -d. -f 1" "$DASH$DASHES\n" "" ""
+    done
+  done
+done
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod 750 dir 640 file" \
+  "chmod 750 dir 640 file 2>/dev/null ||
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x---\n-rwxr-x---\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod 666 dir file" \
+  "chmod 666 dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-rw-rw-\n-rw-rw-rw-\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod 765 *" "chmod 765 * &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxrw-r-x\n-rwxrw-r-x\n" "" ""
+
+##### u,g,o,a=r,w,x
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u=r dir file" "chmod u=r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr--r-xr-x\n-r--r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u=w dir file" "chmod u=w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-w-r-xr-x\n--w-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u=x dir file" "chmod u=x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d--xr-xr-x\n---xr--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u+r dir file" "chmod u+r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u+w dir file" "chmod u+w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u+x dir file" "chmod u+x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rwxr--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u-r dir file" "chmod u-r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-wxr-xr-x\n--w-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u-w dir file" "chmod u-w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr-xr-xr-x\n-r--r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod u-x dir file" "chmod u-x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-r-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g=r dir file" "chmod g=r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr--r-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g=w dir file" "chmod g=w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwx-w-r-x\n-rw--w-r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g=x dir file" "chmod g=x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwx--xr-x\n-rw---xr--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g+r dir file" "chmod g+r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g+w dir file" "chmod g+w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxrwxr-x\n-rw-rw-r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g+x dir file" "chmod g+x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r-xr--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g-r dir file" "chmod g-r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwx--xr-x\n-rw----r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g-w dir file" "chmod g-w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod g-x dir file" "chmod g-x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr--r-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o=r dir file" "chmod o=r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr--\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o=w dir file" "chmod o=w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x-w-\n-rw-r---w-\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o=x dir file" "chmod o=x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x--x\n-rw-r----x\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o+r dir file" "chmod o+r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o+w dir file" "chmod o+w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xrwx\n-rw-r--rw-\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o+x dir file" "chmod o+x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r-x\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o-r dir file" "chmod o-r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-x--x\n-rw-r-----\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o-w dir file" "chmod o-w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod o-x dir file" "chmod o-x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr--\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a=r dir file" "chmod a=r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr--r--r--\n-r--r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a=w dir file" "chmod a=w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-w--w--w-\n--w--w--w-\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a=x dir file" "chmod a=x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d--x--x--x\n---x--x--x\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a+r dir file" "chmod a+r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a+w dir file" "chmod a+w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxrwxrwx\n-rw-rw-rw-\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a+x dir file" "chmod a+x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rwxr-xr-x\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a-r dir file" "chmod a-r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-wx--x--x\n--w-------\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a-w dir file" "chmod a-w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr-xr-xr-x\n-r--r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod a-x dir file" "chmod a-x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-r--r--\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod =r dir file" "chmod =r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr--r--r--\n-r--r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod =w dir file" "chmod =w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-w-------\n--w-------\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod =x dir file" "chmod =x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d--x--x--x\n---x--x--x\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod +r dir file" "chmod +r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod +w dir file" "chmod +w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rw-r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod +x dir file" "chmod +x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drwxr-xr-x\n-rwxr-xr-x\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod -r dir file" "chmod -r dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "d-wx--x--x\n--w-------\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod -w dir file" "chmod -w dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "dr-xr-xr-x\n-r--r--r--\n" "" ""
+
+rm -rf dir file && mkdir dir && touch file
+testing "chmod -x dir file" "chmod -x dir file &&
+   ls -ld dir file | cut -d' ' -f 1 | cut -d. -f 1" "drw-r--r--\n-rw-r--r--\n" "" ""
+
+# Removing test files for cleanup purpose
+rm -rf dir file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/cksum.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Default behavior on stdin and on files.
+testing "cksum on stdin" "echo -n hello | cksum" "3287646509 5\n" "" ""
+echo -n "hello" > tmpfile
+testing "cksum on file" "cksum tmpfile" "3287646509 5 tmpfile\n" "" ""
+rm -f tmpfile
+touch one two
+testing "cksum on multiple files" "cksum one two" "4294967295 0 one\n4294967295 0 two\n" "" ""
+rm -f one two
+
+# Check the length suppression, both calculate the CRC on 'abc' but the second
+# option has length suppression on and has the length concatenated to 'abc'.
+testing "cksum on abc including length" "echo -n 'abc' | cksum" "1219131554 3\n" "" ""
+testing "cksum on abc excluding length" "echo -ne 'abc\x3' | cksum -N" "1219131554 4\n" "" ""
+
+# cksum on no contents gives 0xffffffff (=4294967295)
+testing "cksum on no data post-inversion" "echo -n "" | cksum" "4294967295 0\n" "" ""
+# If we do preinversion we will then get 0.
+testing "cksum on no data pre+post-inversion" "echo -n "" | cksum -P" "0 0\n" "" ""
+# If we skip the post-inversion we also get 0
+testing "cksum on no data no inversion" "echo -n "" | cksum -I" "0 0\n" "" ""
+# Two wrongs make a right.
+testing "cksum on no data pre-inversion" "echo -n "" | cksum -PI" "4294967295 0\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/cmp.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+testing "cmp not enough arguments [fail]" "cmp input 2>/dev/null || echo yes" "yes\n" "foo" ""
+testing "cmp missing file1 [fail]" "cmp file1 input 2>/dev/null || echo yes" "yes\n" "foo" ""
+
+#mkdir dir
+#testing "cmp directory [fail]" "cmp dir dir 2>/dev/null || echo yes" \
+	#"yes\n" "" ""
+#rmdir dir
+
+echo "ab
+c" > input2
+
+testing "cmp identical files, stdout" "cmp input input2" "" "ab\nc\n" ""
+testing "cmp identical files, return code" "cmp input input2 && echo yes" "yes\n" "ab\nc\n" ""
+
+testing "cmp EOF, stderr" "cmp input input2 2>&1" "cmp: EOF on input2\n" "ab\nc\nx" ""
+testing "cmp EOF, return code" "cmp input input2 2>/dev/null || echo yes" "yes\n" "ab\nc\nx" ""
+# The gnu/dammit version fails this because posix says "char" and they don't.
+testing "cmp diff, stdout" "cmp input input2" "input input2 differ: char 4, line 2\n" "ab\nx\nx" ""
+testing "cmp diff, return code" "cmp input input2 > /dev/null || echo yes" "yes\n" "ab\nx\nx" ""
+
+testing "cmp -s EOF, return code" "cmp -s input input2 || echo yes"  "yes\n" "ab\nc\nx" ""
+testing "cmp -s diff, return code" "cmp -s input input2 || echo yes" "yes\n" "ab\nx\nx" ""
+
+testing "cmp -l EOF, stderr" "cmp -l input input2 2>&1" "cmp: EOF on input2\n" "ab\nc\nx" ""
+testing "cmp -l diff and EOF, stdout and stderr" "cmp -l input input2 2>&1 | sort" "4 170 143\ncmp: EOF on input2\n" "ab\nx\nx" ""
+
+rm input2
+
+testing "cmp stdin and file" "cmp input -" "input - differ: char 4, line 2\n" "ab\nc\n" "ab\nx\n"
+#testing "cmp stdin and stdin" "cmp input -" "" "" "ab\nc\n"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/cp.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,101 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+# Create test file
+dd if=/dev/urandom of=random bs=64 count=1 2> /dev/null
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "cp not enough arguments [fail]" "cp one 2>/dev/null || echo yes" \
+	"yes\n" "" ""
+testing "cp -missing source [fail]" "cp missing two 2>/dev/null || echo yes" \
+	"yes\n" "" ""
+testing "cp file->file" "cp random two && cmp random two && echo yes" \
+	"yes\n" "" ""
+rm two
+
+mkdir two
+testing "cp file->dir" "cp random two && cmp random two/random && echo yes" \
+	"yes\n" "" ""
+rm two/random
+testing "cp file->dir/file" \
+	"cp random two/random && cmp random two/random && echo yes" \
+	"yes\n" "" ""
+testing "cp -r dir->missing" \
+	"cp -r two three && cmp random three/random && echo yes" \
+	"yes\n" "" ""
+touch walrus
+testing "cp -r dir->file [fail]" \
+	"cp -r two walrus 2>/dev/null || echo yes" "yes\n" "" ""
+touch two/three
+testing "cp -r dir hits file." \
+	"cp -r three two 2>/dev/null || echo yes" "yes\n" "" ""
+rm -rf two three walrus
+
+touch two
+chmod 000 two
+testing "cp file->inaccessable [fail]" \
+	"cp random two 2>/dev/null || echo yes" "yes\n" "" ""
+rm -f two
+
+touch two
+chmod 000 two
+testing "cp -f file->inaccessable" \
+	"cp -f random two && cmp random two && echo yes" "yes\n" "" ""
+mkdir sub
+chmod 000 sub
+testing "cp file->inaccessable_dir [fail]" \
+	"cp random sub 2>/dev/null || echo yes" "yes\n" "" ""
+rm two
+rmdir sub
+
+# This test fails because our -rf deletes existing target files without
+# regard to what we'd be copying over it. Posix says to only do that if
+# we'd be copying a file over the file, but does not say _why_.
+
+#mkdir dir
+#touch file
+#testing "cp -rf dir file [fail]" "cp -rf dir file 2>/dev/null || echo yes" \
+#	"yes\n" "" ""
+#rm -rf dir file
+
+touch one two
+testing "cp file1 file2 missing [fail]" \
+	"cp one two missing 2>/dev/null || echo yes" "yes\n" "" ""
+mkdir dir
+testing "cp dir file missing [fail]" \
+	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
+testing "cp -rf dir file missing [fail]" \
+	"cp dir two missing 2>/dev/null || echo yes" "yes\n" "" ""
+testing "cp file1 file2 file [fail]" \
+	"cp random one two 2>/dev/null || echo yes" "yes\n" "" ""
+testing "cp file1 file2 dir" \
+	"cp random one dir && cmp random dir/random && cmp one dir/one && echo yes" \
+	"yes\n" "" ""
+rm one two random
+rm -rf dir
+
+mkdir -p one/two/three/four
+touch one/two/three/five
+touch one/{six,seven,eight}
+testing "cp -r /abspath dest" \
+	"cp -r \"$(readlink -f one)\" dir && diff -r one dir && echo yes" \
+	"yes\n" "" ""
+testing "cp -r dir again" "cp -r one/. dir && diff -r one dir && echo yes" \
+	"yes\n" "" ""
+mkdir dir2
+testing "cp -r dir1/* dir2" \
+	"cp -r one/* dir2 && diff -r one dir2 && echo yes" "yes\n" "" ""
+rm -rf one dir dir2
+
+# cp -r ../source destdir
+# cp -r one/two/three missing
+# cp -r one/two/three two
+# mkdir one; touch one/two; ln -s two one/three
+# cp file1 file2 dir
+# cp file1 missing file2 -> dir
+
+# Make sure it's truncating existing file
+# copy with -d at top level, with -d in directory, without -d at top level,
+#      without -d in directory
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/cpio.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+# We need to test name and file padding.
+# This means all possible values of strlen(name)+1 % 4,
+# plus file sizes of at least 0-4.
+
+touch a bb ccc dddd
+testing "cpio name padding" "cpio -o -H newc|cpio -it" "a\nbb\nccc\ndddd\n" "" "a\nbb\nccc\ndddd\n"
+rm a bb ccc dddd
+
+touch a
+printf '1' >b
+printf '22' >c
+printf '333' >d
+testing "cpio file padding" "cpio -o -H newc|cpio -it" "a\nb\nc\nd\n" "" "a\nb\nc\nd\n"
+rm a b c d
+
+touch a
+printf '1' >bb
+printf '22' >ccc
+printf '333' >dddd
+# With the proper padding, header length, and file length, 
+# the relevant bit should be here:
+# 110*5 + 4*3 + 2 + 6*3 = 550 + 12 + 20 = 582
+# files are padded to n*4, names are padded to 2 + n*4 due to the header length
+testing "cpio archive length" "cpio -o -H newc|dd ibs=2 skip=291 count=5" "TRAILER!!!" "" "a\nbb\nccc\ndddd\n"
+testing "cpio archive magic" "cpio -o -H newc|dd ibs=2 count=3" "070701" "" "a\n"
+# check name length (8 bytes before the empty "crc")
+testing "cpio name length" "cpio -o -H newc|dd ibs=2 skip=47 count=4" "00000002" "" "a\n"
+rm a bb ccc dddd
+
+# archive dangling symlinks and empty files even if we cannot open them
+touch a; chmod a-rwx a; ln -s a/cant b
+testing "cpio archives unreadable empty files" "cpio -o -H newc|cpio -it" "a\nb\n" "" "a\nb\n"
+chmod u+rw a; rm -f a b
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/cut.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013  Kyungwan.Han <asura321@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+#set -x
+
+# Creating test file for testing cut
+echo "one:two:three:four:five:six:seven
+alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu
+the quick brown fox jumps over the lazy dog" >abc.txt
+
+testing "cut with -c (a-b)" "cut -c 4-10 abc.txt" ":two:th\nha:beta\n quick \n" "" ""
+testing "cut with -f (a-)" "cut -d ':' -f 5- abc.txt" "five:six:seven\nepsilon:zeta:eta:teta:iota:kappa:lambda:mu\nthe quick brown fox jumps over the lazy dog\n" "" ""
+
+testing "cut with -f (a)" "cut -d ' ' -f 3 abc.txt" "one:two:three:four:five:six:seven\nalpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu\nbrown\n" "" ""
+
+testing "cut with echo, -c (a-b)" "echo 'ref_categorie=test' | cut -c 1-15 " "ref_categorie=t\n" "" ""
+testing "cut with echo, -c (a)" "echo 'ref_categorie=test' | cut -c 14" "=\n" "" ""
+
+# Modifying abc.txt data as per new testcase
+echo "abcdefghijklmnopqrstuvwxyz" >abc.txt
+
+testing "cut with -c (a,b,c)" "cut -c 4,5,20 abc.txt" "det\n" "" ""
+
+testing "cut with -b (a,b,c)" "cut -b 4,5,20 abc.txt" "det\n" "" ""
+
+# Modifying abc.txt data as per testcase
+echo "406378:Sales:Itorre:Jan
+031762:Marketing:Nasium:Jim
+636496:Research:Ancholie:Mel
+396082:Sales:Jucacion:Ed" >abc.txt
+
+testing "cut with -d -f(:) -s" "cut -d: -f3 -s abc.txt" "Itorre\nNasium\nAncholie\nJucacion\n" "" ""
+
+testing "cut with -d -f( ) -s" "cut -d' ' -f3 -s abc.txt && echo yes" "yes\n" "" ""
+
+testing "cut with -d -f(a) -s" "cut -da -f3 -s abc.txt" "n\nsium:Jim\n\ncion:Ed\n" "" ""
+
+testing "cut with -d -f(a) -s -n" "cut -da -f3 -s -n abc.txt" "n\nsium:Jim\n\ncion:Ed\n" "" ""
+
+# Removing abc.txt file for cleanup purpose
+rm abc.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/dd.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,83 @@
+#!/bin/bash
+
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+# 'dd' command, stderr prints redirecting to /dev/null
+opt="2>/dev/null"
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "dd if=(file)" "dd if=input $opt" "I WANT\n" "I WANT\n" ""
+testing "dd of=(file)" "dd of=file $opt && cat file" "I WANT\n" "" "I WANT\n"
+testing "dd if=file of=file" "dd if=input of=foo $opt && cat foo && rm -f foo" \
+  "I WANT\n" "I WANT\n" ""
+testing "dd if=file | dd of=file" "dd if=input $opt | dd of=foo $opt &&
+   cat foo && rm -f foo" "I WANT\n" "I WANT\n" ""
+testing "dd (stdout)" "dd $opt" "I WANT\n" "" "I WANT\n"
+testing "dd sync,noerror" \
+  "dd if=input of=outFile seek=8860 bs=1M conv=sync,noerror $opt &&
+   stat -c \"%s\" outFile && rm -f outFile" "9291431936\n" "I WANT\n" ""
+testing "dd if=file of=(null)" \
+  "dd if=input of=/dev/null $opt && echo 'yes'" "yes\n" "I WANT\n" ""
+testing "dd with if of bs" \
+  "dd if=/dev/zero of=sda.txt bs=512 count=1 $opt &&
+   stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
+testing "dd with if of ibs obs" \
+  "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=1 $opt &&
+   stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
+testing "dd with if of ibs obs count" \
+  "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=3 $opt &&
+   stat -c '%s' sda.txt && rm -f sda.txt" "1536\n" "" ""
+
+ln -s input softlink
+testing "dd if=softlink" "dd if=softlink $opt" "I WANT\n" "I WANT\n" ""
+unlink softlink
+
+ln -s file softlink
+testing "dd if=file of=softlink" "dd if=input of=softlink $opt &&
+   [ -f file -a -L softlink ] && cat softlink" "I WANT\n" "I WANT\n" ""
+unlink softlink && rm -f file
+
+testing "dd if=file of=file (same file)" "dd if=input of=input $opt &&
+   [ -f input ] && cat input && echo 'yes'" "yes\n" "I WANT\n" ""
+
+testing "dd with ibs obs bs" "dd ibs=2 obs=5 bs=9 $opt" "I WANT\n" "" "I WANT\n"
+testing "dd with ibs obs bs if" "dd ibs=2 obs=5 bs=9 if=input $opt" \
+  "I WANT\n" "I WANT\n" ""
+
+testing "dd with ibs obs count" "dd ibs=1 obs=1 count=1 $opt" "I" "" "I WANT\n"
+testing "dd with ibs obs count if" "dd ibs=1 obs=1 count=3 if=input $opt" \
+  "I W" "I WANT\n" ""
+
+testing "dd with count" "dd count=1 $opt" "I WANT\n" "" "I WANT\n"
+testing "dd with count if" "dd count=1 if=input $opt" "I WANT\n" "I WANT\n" ""
+
+testing "dd with skip" "dd skip=0 $opt" "I WANT\n" "" "I WANT\n"
+testing "dd with skip if" "dd skip=0 if=input $opt" "I WANT\n" "I WANT\n" ""
+
+testing "dd with seek" "dd seek=0 $opt" "I WANT\n" "" "I WANT\n"
+testing "dd with seek if" "dd seek=0 if=input $opt" "I WANT\n" "I WANT\n" ""
+
+# These type of conv is not supported in toybox: 'ascii', 'ebcdic', 'ibm',
+# 'block', 'unblock', 'nocreat', 'notronc', 'lcase', 'ucase', 'excl', 'swab'
+
+# Testing only 'notrunc', 'noerror', 'fsync', 'sync'
+
+testing "dd conv=notrunc" "dd conv=notrunc $opt" "I WANT\n" "" "I WANT\n"
+testing "dd conv=notrunc with IF" "dd conv=notrunc if=input $opt" "I WANT\n" \
+  "I WANT\n" ""
+
+testing "dd conv=noerror" "dd conv=noerror $opt" "I WANT\n" "" "I WANT\n"
+testing "dd conv=noerror with IF" "dd conv=noerror if=input $opt" "I WANT\n" \
+  "I WANT\n" ""
+
+testing "dd conv=fsync" "dd conv=fsync $opt" "I WANT\n" "" "I WANT\n"
+testing "dd conv=fsync with IF" "dd conv=fsync if=input $opt" "I WANT\n" \
+  "I WANT\n" ""
+
+testing "dd conv=sync" "dd conv=sync $opt | head -n 1" "I WANT\n" "" "I WANT\n"
+testing "dd conv=sync with IF" "dd conv=sync if=input $opt | head -n 1" "I WANT\n" \
+  "I WANT\n" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/dirname.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "dirname /-only" "dirname ///////" "/\n" "" ""
+testing "dirname trailing /" "dirname a//////" ".\n" "" ""
+testing "dirname combined" "dirname /////a///b///c///d/////" "/////a///b///c\n" "" ""
+testing "dirname /a/" "dirname /////a///" "/\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/du.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# we only test with -k since getting POSIX version is variable
+# POSIXLY_CORRECT is sometimes needed, sometimes -P is needed,
+# while -k is the default on most Linux systems
+
+mkdir -p du_test/test du_2/foo
+testing "du (no options)" "du -k du_test" "4\tdu_test/test\n8\tdu_test\n" "" ""
+testing "du -s" "du -k -s du_test" "8\tdu_test\n" "" ""
+ln -s ../du_2 du_test/xyz
+# "du shall count the size of the symbolic link"
+# I assume this means the space used to store the link name
+testing "du counts symlinks without following" "du -ks du_test" "12\tdu_test\n" "" ""
+testing "du -L follows symlinks" "du -ksL du_test" "16\tdu_test\n" "" ""
+# if -H and -L are specified, the last takes priority
+testing "du -HL follows symlinks" "du -ksHL du_test" "16\tdu_test\n" "" ""
+testing "du -H does not follow unspecified symlinks" "du -ksH du_test" "12\tdu_test\n" "" ""
+testing "du -LH does not follow unspecified symlinks" "du -ksLH du_test" "12\tdu_test\n" "" ""
+testing "du -H follows specified symlinks" "du -ksH du_test/xyz" "8\tdu_test/xyz\n" "" ""
+
+rm -rf du_test du_2
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/echo.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+# This one's tricky both because echo is a shell builtin (so $PATH is
+# irrelevant) and because the "result" field is parsed with echo -e.
+# To make it work, "$CMD" is an explicit path to the command being tested,
+# so "result" keeps using the shell builtin but we test the one in toybox.
+
+CMD="$(which echo)"
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "echo" "$CMD && echo yes" "\nyes\n" "" ""
+testing "echo 1 2 3" "$CMD one  two	three" "one two three\n" "" ""
+testing "echo with spaces" "$CMD 'one  two	three'" \
+	"one  two	three\n" "" ""
+testing "echo -n" "$CMD -n" "" "" ""
+testing "echo -n one" "$CMD -n one" "one" "" ""
+testing "echo one -n" "$CMD one -n" "one -n\n" "" ""
+testing "echo -en" "$CMD -en 'one\ntwo'" "one\ntwo" "" ""
+testing "echo --hello" "$CMD --hello" "--hello\n" "" ""
+testing "echo -e all" "$CMD -e '\a\b\c\f\n\r\t\v\\\0123'" \
+	"\a\b\c\f\n\r\t\v\\\0123\n" "" ""
+testing "echo -nex hello" "$CMD -nex hello" "-nex hello\n" "" ""
+
+# Octal formatting tests
+testing "echo -e octal values" \
+	"$CMD -ne '\01234 \0060 \060 \0130\0131\0132 \077\012'" \
+	"S4 0 0 XYZ ?\n" "" ""
+
+# Hexadecimal value tests
+testing "echo -e hexadecimal values" \
+	"$CMD -ne '\x534 \x30 \x58\x59\x5a \x3F\x0A'"\
+	"S4 0 XYZ ?\n" "" ""
+
+testing "echo -e \p" "$CMD -e '\\p'" "\\p\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expand.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+# POSIX 2008 compliant expand tests.
+# Copyright 2012 by Jonathan Clairembault <jonathan@clairembault.fr>
+
+[ -f testing.sh ] && . testing.sh
+
+# some basic tests
+
+testing "expand default" "expand input" "        foo     bar\n" "\tfoo\tbar\n" ""
+testing "expand default stdin" "expand"  "        foo     bar\n" "" "\tfoo\tbar\n"
+testing "expand single" "expand -t 2 input" "  foo bar\n" "\tfoo\tbar\n" ""
+testing "expand tablist" "expand -t 5,10,12 input" "     foo  bar foo\n" "\tfoo\tbar\tfoo\n" ""
+testing "expand backspace" "expand input" "foobarfoo\b\b bar\n" "foobarfoo\b\b\tbar\n" ""
+
+# advanced tests
+
+POW=15
+TABSTOP=1
+BIGTAB=" "
+for i in $(seq $POW); do
+    BIGTAB=$BIGTAB$BIGTAB
+    TABSTOP=$[$TABSTOP*2]
+done
+testing "expand long tab single" "expand -t $TABSTOP input" "${BIGTAB}foo\n" "\tfoo\n" ""
+testing "expand long tab tablist" "expand -t $TABSTOP,$[TABSTOP+5] input" \
+        "${BIGTAB}foo  bar\n" "\tfoo\tbar\n" ""
+
+testing "expand multiline single" "expand -t 4 input" "foo \n    bar\n" "foo\t\n\tbar\n" ""
+testing "expand multiline tablist" "expand -t 4,8 input" \
+        "foo     bar\n    bar foo\n" "foo\t\tbar\n\tbar\tfoo\n" ""
+POW=15
+BIGLINE="foo "
+for i in $(seq $POW); do
+    BIGLINE=$BIGLINE$BIGLINE
+done
+if [ $POW -gt 0 ]; then
+    EXPANDLINE="${BIGLINE}        foo\n"
+else
+    EXPANDLINE="${BIGLINE}    foo\n"
+fi
+BIGLINE="${BIGLINE}\tfoo\n"
+testing "expand long line single" "expand input" \
+        "${EXPANDLINE}" "$BIGLINE" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/expr.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+testing "expr integer" "expr 5" "5\n" "" ""
+testing "expr integer negative" "expr -5" "-5\n" "" ""
+testing "expr string" "expr astring" "astring\n" "" ""
+testing "expr 1 + 3" "expr 1 + 3" "4\n" "" ""
+testing "expr 5 + 6 * 3" "expr 5 + 6 \* 3" "23\n" "" ""
+testing "expr ( 5 + 6 ) * 3" "expr \( 5 + 6 \) \* 3" "33\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/factor.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "factor -32" "factor -32" "-32: -1 2 2 2 2 2\n" "" ""
+testing "factor 0" "factor 0" "0: 0\n" "" ""
+testing "factor 1" "factor 1" "1: 1\n" "" ""
+testing "factor 2" "factor 2" "2: 2\n" "" ""
+testing "factor 3" "factor 3" "3: 3\n" "" ""
+testing "factor 4" "factor 4" "4: 2 2\n" "" ""
+testing "factor 10000000017" "factor 10000000017" \
+        "10000000017: 3 3 3 7 7 7 1079797\n" "" ""
+testing "factor 10000000018" "factor 10000000018" \
+        "10000000018: 2 131 521 73259\n" "" ""
+testing "factor 10000000019" "factor 10000000019" \
+        "10000000019: 10000000019\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/find.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+mkdir dir
+cd dir
+touch file
+mkfifo fifo
+ln -s fifo link
+cd ..
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Testing operators
+
+testing "find -type l -a -type d -o -type p" \
+	"find dir -type l -a -type d -o -type p" "dir/fifo\n" "" ""
+testing "find -type l -type d -o -type p" "find dir -type l -type d -o -type p" \
+	"dir/fifo\n" "" ""
+testing "find -type l -o -type d -a -type p" \
+	"find dir -type l -o -type d -a -type p" "dir/link\n" "" ""
+testing "find -type l -o -type d -type p" "find dir -type l -o -type d -type p" \
+	"dir/link\n" "" ""
+testing "find -type l ( -type d -o -type l )" \
+	"find dir -type l \( -type d -o -type l \)" "dir/link\n" "" ""
+testing "find extra parantheses" \
+	"find dir \( \( -type l \) \( -type d -o \( \( -type l \) \) \) \)" \
+	"dir/link\n" "" ""
+testing "find ( -type p -o -type d ) -type p" \
+	"find dir \( -type p -o -type d \) -type p" "dir/fifo\n" "" ""
+testing "find -type l -o -type d -type p -o -type f" \
+	"find dir -type l -o -type d -type p -o -type f | sort" \
+	"dir/file\ndir/link\n" "" ""
+
+# Testing short-circuit evaluations
+
+testing "find -type f -a -print" \
+	"find dir -type f -a -print" "dir/file\n" "" ""
+testing "find -print -o -print" \
+	"find dir -type f -a \( -print -o -print \)" "dir/file\n" "" ""
+
+rm -rf dir
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/grep.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,98 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+# Copyright 2013 by Kyungsu Kim <kaspyx@gmail.com>
+# Copyright 2013 by Kyungwan Han <asura321@gmail.com>
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "grep -c" "grep -c 123 input" "3\n" "123\ncount 123\n123\nfasdfasdf" ""
+
+echo -e "this is test" > foo
+echo -e "this is test2" > foo2
+echo -e "this is foo3" > foo3
+testing "grep -l" "grep -l test foo foo2 foo3" "foo\nfoo2\n" "" ""
+rm foo foo2 foo3
+
+testing "grep -q" "grep -q test input && echo yes" "yes\n" "this is a test\n" ""
+testing "grep -E" "grep -E '[0-9]' input" "1234123asdfas123123\n1\n" \
+  "1234123asdfas123123\nabc\n1\nabcde" ""
+testing "grep -e" "grep -e '[0-9]' input" "1234123asdfas123123\n1\n" \
+  "1234123asdfas123123\nabc\n1\nabcde" ""
+testing "grep -e -e" "grep -e one -e two -e three input" \
+  "two\ntwo\nthree\none\n" "two\ntwo\nthree\nand\none\n" ""
+testing "grep -F" "grep -F is input" "this is test\nthis is test2\n" \
+  "this is test\nthis is test2\ntest case" ""
+
+echo -e "this is test\nthis is test2\ntest case" > foo
+echo -e "hello this is test" > foo2
+echo -e "hi hello" > foo3
+testing "grep -H" "grep -H is foo foo2 foo3" "foo:this is test\nfoo:this is test2\nfoo2:hello this is test\n" "" ""
+rm foo foo2 foo3
+
+testing "grep -b" "grep -b is input" "0:this is test\n13:this is test2\n" \
+  "this is test\nthis is test2\ntest case" ""
+testing "grep -i" "grep -i is input" "thisIs test\nthis is test2\n" \
+  "thisIs test\nthis is test2\ntest case" ""
+testing "grep -n" "grep -n is input" "1:this is test\n2:this is test2\n" \
+  "this is test\nthis is test2\ntest case" ""
+testing "grep -o" "grep -o is input" "is\nis\nis\nis\n" \
+  "this is test\nthis is test2\ntest case" ""
+testing "grep -s" "grep -hs hello asdf input 2>&1" "hello\n" "hello\n" ""
+testing "grep -v" "grep -v abc input" "1234123asdfas123123\n1ABa\n" \
+  "1234123asdfas123123\n1ABabc\nabc\n1ABa\nabcde" ""
+testing "grep -w" "grep -w abc input" "abc\n" \
+  "1234123asdfas123123\n1ABabc\nabc\n1ABa\nabcde" ""
+testing "grep -x" "grep -x abc input" "abc\n" \
+  "aabcc\nabc\n" ""
+
+testing "grep -H (standard input)" "grep -H abc" "(standard input):abc\n" \
+  "" "abc\n"
+testing "grep -l (standard input)" "grep -l abc" "(standard input)\n" \
+  "" "abc\n"
+testing "grep -n two inputs" "grep -hn def - input" "2:def\n2:def\n" \
+  "abc\ndef\n" "abc\ndef\n"
+
+testing "grep pattern with newline" "grep 'abc
+def' input" "aabcc\nddeff\n" \
+  "aaaa\naabcc\n\dddd\nddeff\nffff\n" ""
+
+testing "grep -lH" "grep -lH abc input" "input\n" "abc\n" ""
+testing "grep -cn" "grep -cn abc input" "1\n" "abc\n" ""
+testing "grep -qs" "grep -qs abc none input && echo yes" "yes\n" "abc\n" ""
+testing "grep -hl" "grep -hl abc input" "input\n" "abc\n" ""
+testing "grep -b stdin" "grep -b one" "0:one\n4:one\n8:one\n" "" "one\none\none\n"
+testing "grep -o overlap" "grep -bo aaa" "1:aaa\n" "" "baaaa\n"
+# nonobvious: -co counts lines, not matches
+testing "grep -co" "grep -co one input" "1\n" "one one one\n" ""
+testing "grep -nom" "grep -nom 2 one" "1:one\n1:one\n1:one\n2:one\n2:one\n" \
+  "" "one one one\none one\none"
+testing "grep -vo" "grep -vo one input" "two\nthree\n" "onetwoonethreeone\n" ""
+testing "grep no newline" "grep -h one input -" \
+  "hello one\nthere one\n" "hello one" "there one"
+
+testing "grep -e multi" "grep -e one -ethree input" \
+  "three\none\n" "three\ntwo\none\n" ""
+# Suppress filenames for recursive test because dunno order they'd occur in
+mkdir sub
+echo -e "one\ntwo\nthree" > sub/one
+echo -e "three\ntwo\none" > sub/two
+testing "grep -hr" "grep -hr one sub" "one\none\n" "" ""
+testing "grep -r file" "grep -r three sub/two" "three\n" "" ""
+testing "grep -r dir" "grep -r one sub | sort" "sub/one:one\nsub/two:one\n" \
+  "" ""
+rm -rf sub
+
+# Not sure if -Fx '' should do? Posix is unclear, '' match every line but does
+# it match every _byte_ in that line?
+testing "grep -Fx ''" "grep -Fx '' input" "one one one\n" "one one one\n" ""
+testing "grep -F ''" "grep -F '' input" "one one one\n" "one one one\n" ""
+testing "grep -F -e blah -e ''" "grep -F -e blah -e '' input" "one one one\n" \
+  "one one one\n" ""
+testing "grep -e blah -e ''" "grep -e blah -e '' input" "one one one\n" \
+  "one one one\n" ""
+testing "grep -w ''" "grep -w '' input" "" "one one one\n" ""
+testing "grep -o ''" "grep -o '' input" "" "one one one\n" ""
+testing "grep backref" 'grep -e "a\(b\)" -e "b\(c\)\1"' "bcc\nab\n" \
+  "" "bcc\nbcb\nab\n"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/groupadd.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,56 @@
+#!/bin/bash
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+# 70 characters long string; hereafter, we will use it as per our need.
+_s70="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
+
+echo "# usage: addgroup [-g GID] [USER] GROUP
+# Add a group or add a user to a group."
+
+# Redirecting all output to /dev/null for grep and delgroup
+arg="&>/dev/null"
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "groupadd group_name (text)" "groupadd toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (alphanumeric)" "groupadd toy1Test2Group3 &&
+   grep '^toy1Test2Group3:' /etc/group $arg && groupdel toy1Test2Group3 $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (numeric)" "groupadd 987654321 &&
+   grep '^987654321:' /etc/group $arg && groupdel 987654321 $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (with ./-)" "groupadd toy.1Test-2Group.3 &&
+   grep '^toy.1Test-2Group.3:' /etc/group $arg &&
+   groupdel toy.1Test-2Group.3 $arg && echo 'yes'" "yes\n" "" ""
+
+_s210=`echo $_s70$_s70$_s70`
+testing "groupadd group_name (long string)" "groupadd $_s210 &&
+   grep '^$_s210:' /etc/group $arg && groupdel $_s210 $arg && echo 'yes'" \
+  "yes\n" "" ""
+testing "groupadd group_name with group_id" "groupadd -g 49999 toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name with group_id (system_group)" \
+  "groupadd -g 49999 -S toyTestGroup && grep '^toyTestGroup:' /etc/group $arg &&
+   groupdel toyTestGroup $arg && echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (system_group)" "groupadd -S toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (add/del user)" "groupadd toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg && groupadd $USER toyTestGroup &&
+   grep '^toyTestGroup:.*:.*:.*$USER.*' /etc/group $arg &&
+   groupdel $USER toyTestGroup $arg || groupdel toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg || echo 'yes'" "yes\n" "" ""
+
+ echo "Testing to add single group multiple times after removing it..."
+ for each in {01..20}
+ do
+   testing "groupadd group_name ($each)" "groupadd toyTestGroup &&
+      grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
+      echo 'yes'" "yes\n" "" ""
+ done
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/groupdel.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+# Redirecting all output to /dev/null for grep and delgroup
+arg="&>/dev/null"
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "groupadd group_name (text)" "groupadd toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (alphanumeric)" "groupadd toy1Test2Group3 &&
+   grep '^toy1Test2Group3:' /etc/group $arg && groupdel toy1Test2Group3 $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (numeric)" "groupadd 987654321 &&
+   grep '^987654321:' /etc/group $arg && groupdel 987654321 $arg &&
+   echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name (with ./-)" "groupadd toy.1Test-2Group.3 &&
+   grep '^toy.1Test-2Group.3:' /etc/group $arg &&
+   groupdel toy.1Test-2Group.3 $arg && echo 'yes'" "yes\n" "" ""
+testing "groupadd group_name with group_id" "groupadd -g 49999 toyTestGroup &&
+   grep '^toyTestGroup:' /etc/group $arg && groupdel toyTestGroup $arg &&
+   echo 'yes'" "yes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/head.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "head, stdin" "head -n 1 && echo yes" "one\nyes\n" "" "one\ntwo"
+testing "head, stdin via -" "head -n 1 - && echo yes" "one\nyes\n" "" "one\ntwo"
+testing "head, file" "head input -n 1 && echo yes" "one\nyes\n" "one\ntwo" ""
+testing "head, default lines" "head" "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" "" "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12"
+
+echo "foo
+bar
+baz" > file1
+testing "head, multiple files" "head -n 2 input file1" "==> input <==\none\ntwo\n\n==> file1 <==\nfoo\nbar\n" "one\ntwo\nthree\n" ""
+rm file1
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/hostname.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Get system hostname
+hostnameExe=`which hostname`
+hostnameOut=`$hostnameExe`
+
+# New hostname
+NewHostname="NewHostName.system"
+
+testing "Hostname - Get" "hostname" "$hostnameOut\n" "" ""
+testing "Hostname - Set, Get and then Reset" "hostname $NewHostname; hostname; hostname $hostnameOut; hostname" "$NewHostname\n$hostnameOut\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/link.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+echo "" >foo
+testing "link fails on non-existent file" "link foo/foo baz || echo GOOD" "GOOD\n" "" ""
+rm -f foo bar
+
+echo file1 > file
+testing "ln create_hardlink" "link file hlink && [ file -ef hlink ] &&
+          echo 'yes'; rm  -rf hlink" "yes\n" "" ""
+
+echo hlink1 > hlink
+set +e
+testing "ln preserves_hardlinks" "link file hlink 2>/dev/null || echo 'yes'; rm -rf hlink" \
+          "yes\n" "" ""
+
+echo file1 > file
+testing "ln create_hardlink_and_remove_sourcefile" "link file hlink &&
+          [ file -ef hlink ] && rm -rf file && [ -f hlink ] && echo 'yes'; rm -f file hlink" \
+          "yes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/ln.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,70 @@
+#!/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
+
+echo file1 > file
+testing "ln create_hardlink" "ln file hlink && [ file -ef hlink ] &&
+          echo 'yes'" "yes\n" "" ""
+testing "ln create_softlink" "ln -s file slink && [ -L slink ] &&
+          readlink slink" "file\n" "" ""
+rm slink hlink
+
+echo hlink1 > hlink
+testing "ln force_create_hardlink" "ln -f file hlink &&
+          [ file -ef hlink ] && cat hlink 2>/dev/null" "file1\n" "" ""
+
+echo slink1 > slink
+testing "ln force_create_softlink" "ln -f -s file slink &&
+          [ -L slink ] && readlink slink" "file\n" "" ""
+rm slink hlink
+
+echo hlink1 > hlink
+set +e
+testing "ln preserves_hardlinks" "ln file hlink 2>/dev/null || echo 'yes'" \
+          "yes\n" "" ""
+
+echo slink1 > slink
+set +e
+testing "ln preserves_softlinks" "ln -s file slink 2>/dev/null || echo 'yes'" \
+          "yes\n" "" ""
+rm slink hlink
+
+mkdir dir
+testing "ln multilevel_symbolic_links" "ln -s dir slink &&
+          ln -s file slink && [ -L slink -a -L slink/file ] &&
+          readlink slink && readlink slink/file" "dir\nfile\n" "" ""
+rm slink
+
+testing "ln no_dereference" "ln -s dir slink &&
+          ln -n -s file slink 2>/dev/null || [ -L slink ] && readlink slink" \
+          "dir\n" "" ""
+rm -rf file dir slink
+
+touch file1 file2 && mkdir dir
+testing "ln create_multiple_hardlinks" "ln file* dir/ &&
+   [ file1 -ef dir/file1 -a file2 -ef dir/file2 ] && echo 'yes'" "yes\n" "" ""
+rm -rf file* dir
+
+touch file1 file2 && mkdir dir
+testing "ln create_multiple_softlinks" "ln -s file* dir/ &&
+          [ -L dir/file1 -a -L dir/file2 ] && readlink dir/file1 &&
+          readlink dir/file2" "file1\nfile2\n" "" ""
+rm -rf file* dir
+
+echo file1 > file
+testing "ln create_softlink_and_remove_sourcefile" "ln -s file slink &&
+          [ -L slink ] && rm file && cat slink 2>/dev/null || echo 'yes' " \
+          "yes\n" "" ""
+rm -f file slink
+
+echo file1 > file
+testing "ln create_hardlink_and_remove_sourcefile" "ln file hlink &&
+          [ file -ef hlink ] && rm file && [ -f hlink ] && echo 'yes'" \
+          "yes\n" "" ""
+rm -f file hlink
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/losetup.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+if [ "$(id -u)" -ne 0 ]
+then
+  echo "SKIPPED: losetup (not root)"
+  continue 2>/dev/null
+  exit
+fi
+
+#testing "name" "command" "result" "infile" "stdin"
+
+truncate -s 1M blah.img &&
+FILE="$(readlink -f blah.img)"
+DEV="$(printf '%04d' $(stat -t blah.img | awk '{print $7}'))"
+NODE="$(awk '{print $7}')"
+
+losetup -f 
+losetup -f -s
+losetup -f file
+testing "cat" "cat && echo yes" "oneyes\n" "" "one"
+testing "cat -" "cat - && echo yes" "oneyes\n" "" "one"
+testing "cat file1 file2" "cat file1 file2" "one\ntwo\n"  "" ""
+testing "cat - file"      "cat - file1"     "zero\none\n" "" "zero\n"
+testing "cat file -"      "cat file1 -"     "one\nzero\n" "" "zero\n"
+
+testing "cat file1 notfound file2" \
+        "cat file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
+        "one\ntwo\ncat: notfound: No such file or directory\n" "" ""
+
+testing "cat file1" \
+        "cat /proc/self/exe > file1 && cmp /proc/self/exe file1 && echo yes" \
+        "yes\n" "" ""
+
+testing "cat - file1" \
+        "cat - file1 | diff -a -U 0 - file1 | tail -n 1" \
+        "-hello\n" "" "hello\n"
+
+testing "cat > /dev/full" \
+        "cat - > /dev/full 2>stderr && echo ok; cat stderr; rm stderr" \
+        "cat: xwrite: No space left on device\n" "" "zero\n"
+
+losetup -d
+
+rm blah.img
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/ls.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,49 @@
+#!/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
+
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/lsattr.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,159 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# chattr - Testcases
+
+mkdir testattr
+IN="cd testattr"
+OUT="cd .."
+_t="abcdefghijklmnopqrstuvwxyz"
+
+testing "chattr [-/+]i FILE[write]" "$IN && echo "$_t" > testFile &&
+         chattr +i testFile && lsattr testFile && echo "$_t" > testFile; 
+         chattr -i testFile; rm -rf testFile; $OUT " "----i-------- testFile\n" "" ""
+testing "chattr [-/+]i FILE[re-write]" "$IN && echo "$_t" > testFile && 
+         chattr +i testFile && echo \"$_t\" > testFile || chattr -i testFile && 
+         echo \"$_t\" > testFile && lsattr testFile; rm -rf testFile; $OUT" \
+         "------------- testFile\n" "" ""
+testing "chattr [-/+]i FILE[append]" "$IN && echo "$_t" > testFile && 
+         chattr +i testFile && echo \"$_t\" >> testFile || lsattr testFile && 
+         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
+testing "chattr [-/+]i FILE[move]" "$IN && echo "$_t" > testFile && 
+         chattr +i testFile && mv testFile testFile1 || lsattr testFile && 
+         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
+testing "chattr [-/+]i FILE[delete]" "$IN && echo "$_t" > testFile && 
+         chattr +i testFile && rm -f testFile || lsattr testFile && 
+         chattr -i testFile; rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
+testing "chattr [-/+]i FILE[read]" "$IN && echo "$_t" > testFile && 
+         chattr +i testFile && cat testFile && lsattr testFile && 
+         chattr -i testFile; rm -rf testFile; $OUT" "$_t\n----i-------- testFile\n" "" ""
+testing "chattr [-/+]a FILE[write]" "$IN && echo "$_t" > testFile && 
+         chattr +a testFile && echo $_t > testFile || lsattr testFile && 
+         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
+testing "chattr [-/+]a FILE[re-write]" "$IN && echo "$_t" > testFile && 
+         chattr +a testFile && echo $_t > testFile || lsattr testFile && 
+         chattr -a testFile && echo $_t > testFile && cat testFile && 
+         lsattr testFile; rm -rf testFile; 
+         $OUT" "-----a------- testFile\n$_t\n------------- testFile\n" "" ""
+testing "chattr [-/+]a FILE[append]" "$IN && echo "$_t" > testFile && 
+         chattr +a testFile && echo $_t >> testFile && cat testFile && 
+         lsattr testFile && chattr -a testFile; rm -rf testFile; $OUT" \
+         "$_t\n$_t\n-----a------- testFile\n" "" ""
+testing "chattr [-/+]a FILE[move]" "$IN && echo "$_t" > testFile && 
+         chattr +a testFile && mv testFile testFile1 || lsattr testFile && 
+         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
+testing "chattr [-/+]a FILE[delete]" "$IN && echo "$_t" > testFile && 
+         chattr +a testFile && rm -f testFile || lsattr testFile && 
+         chattr -a testFile; rm -rf testFile; $OUT" "-----a------- testFile\n" "" ""
+testing "chattr [-/+]a FILE[read]" "$IN && echo "$_t" > testFile && 
+         chattr +a testFile && cat testFile && lsattr testFile && chattr -a testFile; 
+         rm -rf testFile; $OUT" "$_t\n-----a------- testFile\n" "" ""
+
+for attr in "A" "a" "c" "D" "d" "i" "j" "s" "S" "t" "T" "u"
+do
+  testing "chattr [-/+]$attr FILE" "$IN && echo "$_t" > testFile && 
+           chattr +$attr testFile && cat testFile && chattr -$attr testFile && 
+           lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
+done
+
+for attr in "A" "a" "c" "D" "d" "i" "j" "s" "S" "t" "T" "u"
+do
+  testing "chattr -$attr FILE" "$IN && echo "$_t" > testFile && chattr -$attr testFile &&
+           cat testFile && lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
+done
+
+testing "chattr [-/+]AacDdijsStTu FILE" "$IN && echo "$_t" > testFile && 
+         chattr +AacDdijsStTu testFile && cat testFile && chattr -AacDdijsStTu testFile && 
+         lsattr testFile; rm -rf testFile; $OUT" "$_t\n------------- testFile\n" "" ""
+testing "chattr [-/+]AacDdijsStTu(random) FILE" \
+        "$IN && echo "$_t" > testFile && 
+        chattr +AacDdijsStTu testFile && cat testFile && chattr -A testFile &&
+        chattr -a testFile && chattr -c testFile && chattr -D testFile &&
+        chattr -d testFile && chattr -i testFile && chattr -j testFile &&
+        chattr -s testFile && chattr -S testFile && chattr -t testFile &&
+        chattr -T testFile && chattr -u testFile && lsattr testFile &&
+        chattr -AacDdijsStTu testFile; rm -rf testFile; $OUT" \
+        "$_t\n------------- testFile\n" "" ""
+testing "chattr [-/+]AacDdijsStTu FILE*" "$IN && 
+        echo "$_t" > testFile && echo "$_t" > testFile1 &&
+        echo "$_t" > testFile2 && echo "$_t" > testFile3 &&
+        echo "$_t" > testFile4 && echo "$_t" > testFile5 &&
+        echo "$_t" > testFile6 && echo "$_t" > testFile7 &&
+        echo "$_t" > testFile8 && echo "$_t" > testFile9 &&
+        echo "$_t" > testFile10 && echo "$_t" > testFile11 &&
+       chattr +AacDdijsStTu testFile* &&
+       cat testFile9 && chattr -AacDdijsStTu testFile* && lsattr testFile*; rm -rf testFile*; $OUT" \
+       "$_t\n------------- testFile\n------------- testFile1\n------------- testFile10\n------------- testFile11\n------------- testFile2\n------------- testFile3\n------------- testFile4\n------------- testFile5\n------------- testFile6\n------------- testFile7\n------------- testFile8\n------------- testFile9\n" "" ""
+testing "chattr [-/+]AacDdijsStTu(random) FILE*" \
+        "$IN && echo "$_t" > testFile &&
+        chattr +AacDdijsStTu testFile* && cat testFile && chattr -A testFile* &&
+	chattr -a testFile* && chattr -c testFile* && chattr -D testFile* &&
+	chattr -d testFile* && chattr -i testFile* && chattr -j testFile* &&
+	chattr -s testFile* && chattr -S testFile* && chattr -t testFile* &&
+	chattr -T testFile* && chattr -u testFile* && lsattr testFile;
+        rm -rf testFile; $OUT" \
+	"$_t\n------------- testFile\n" "" ""
+testing "chattr [-/+]i FILE[write]" \
+	"$IN && echo "$_t" > testFile &&
+	chattr +i testFile &&
+	echo \"$_t\" > testFile || lsattr testFile && chattr -i testFile;
+	rm -rf testFile; $OUT" "----i-------- testFile\n" "" ""
+testing "chattr [-/+]A FILE[write]" \
+	"$IN && echo "$_t" > testFile && chattr +A testFile &&
+	echo \"$_t\" > testFile && lsattr testFile && chattr -A testFile;
+	rm -rf testFile; $OUT" "-------A----- testFile\n" "" ""
+testing "chattr [-/+]s FILE[write]" \
+	"$IN && echo "$_t" > testFile && chattr +s testFile &&
+	echo \"$_t\" > testFile && lsattr testFile && chattr -s testFile
+	rm -rf testFile; $OUT" "s------------ testFile\n" "" ""
+testing "chattr -v version FILE[write]" \
+	"$IN && echo "$_t" > testFile &&
+	chattr -v 1234 testFile && echo \"$_t\" > testFile && 
+	lsattr -v testFile; rm -rf testFile" \
+	" 1234 ------------- testFile\n" "" ""
+
+_a="-------A-----"
+testing "chattr -R [-/+]a FILE" "$IN && touch aa && chattr -R +A aa && lsattr aa &&
+	chattr -R -A aa; rm -rf aa; $OUT" "$_a aa\n" "" ""
+testing "chattr -R [-/+]a FILE.." "$IN && touch aa bb &&
+	chattr -R +A aa bb && lsattr aa bb &&
+	chattr -R -A aa bb; rm -rf aa bb; $OUT" "$_a aa\n$_a bb\n" "" ""
+
+# Clean up
+rm -rf testattr
+
+# lsattr - Testcases
+mkdir dir && cd dir && touch file
+chattr +A file &>/dev/null
+
+_p=$PWD
+_b="-------------"
+_A="-------A-----"
+
+testing "lsattr file" "lsattr file" "$_A file\n" "" ""
+testing "lsattr file_path" "lsattr $_p/file" "$_A $_p/file\n" "" ""
+testing "lsattr -R file" "lsattr -R file" "$_A file\n" "" ""
+testing "lsattr -R file_path" "lsattr -R $_p/file" "$_A $_p/file\n" "" ""
+testing "lsattr -a file" "lsattr -a file" "$_A file\n" "" ""
+testing "lsattr -a file_path" "lsattr -a $_p/file" "$_A $_p/file\n" "" ""
+testing "lsattr -d ." "lsattr -d ." "$_b .\n" "" ""
+testing "lsattr -d dir_path" "lsattr -d $_p" "$_b $_p\n" "" ""
+testing "lsattr -d file" "lsattr -d file" "$_A file\n" "" ""
+testing "lsattr -d file_path" "lsattr -d $_p/file" "$_A $_p/file\n" "" ""
+sp_44="                                            "
+testing "lsattr -l file" "lsattr -l file" "file  $sp_44 No_Atime\n" "" ""
+_v="12345"
+testing "lsattr -v file" "chattr -v $_v * && lsattr -v file" \
+  "$_v $_A file\n" "" ""
+testing "lsattr -v file_path" "chattr -v $_v * && lsattr -v $_p/file" \
+  "$_v $_A $_p/file\n" "" ""
+testing "lsattr -Radlv file1 file2" "chattr -v $_v * &&
+   lsattr -Radlv file input" \
+  "$_v file  $sp_44 No_Atime\n$_v input $sp_44 ---\n" "" ""
+
+# Cleanup
+chattr -AacDdijsStTu file && cd ..
+rm -rf dir
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/md5sum.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# These tests are from RFC 1321 appendix 5, reshuffled slightly to test
+# varying argument numbers
+
+testing "md5sum ''" "md5sum" "d41d8cd98f00b204e9800998ecf8427e  -\n" "" ""
+testing "md5sum infile" "md5sum input" \
+  "0cc175b9c0f1b6a831c399e269772661  input\n" "a" ""
+testing "md5sum two files" "md5sum - input" \
+  "900150983cd24fb0d6963f7d28e17f72  -\nf96b697d7cb7938d525a2f31aaf161d0  input\n" \
+  "message digest" "abc"
+testing "md5sum 4" "md5sum" "c3fcd3d76192e4007dfb496cca67e13b  -\n" \
+  "" "abcdefghijklmnopqrstuvwxyz"
+testing "md5sum 5" "md5sum" "d174ab98d277d9f5a5611c2c9f419d9f  -\n" \
+  "" "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+testing "md5sum 6" "md5sum" "57edf4a22be3c955ac49da2e2107b67a  -\n" \
+  "" "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mkdir.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "mkdir" "mkdir one && [ -d one ] && echo yes" "yes\n" "" ""
+rmdir one
+
+touch existing
+testing "mkdir existing" \
+	"mkdir existing 2> /dev/null || [ -f existing ] && echo yes" "yes\n" "" ""
+rm existing
+
+testing "mkdir one two" \
+	"mkdir one two && [ -d one ] && [ -d two ] && echo yes" "yes\n" "" ""
+rmdir one two
+
+testing "mkdir missing/one" \
+	"mkdir missing/one 2> /dev/null || [ ! -d missing ] && echo yes" "yes\n" "" ""
+
+testing "mkdir -p" \
+	"mkdir -p one/two/three && [ -d one/two/three ] && echo yes" "yes\n" "" ""
+rm -rf one
+
+mkdir existing
+testing "mkdir -p existing" "mkdir -p existing && echo yes" "yes\n" "" ""
+rmdir existing
+
+umask 123
+testing "mkdir (default permissions)" \
+	"mkdir one && stat -c %a one" "654\n" "" ""
+rmdir one
+
+testing "mkdir -m 124" \
+	"mkdir -m 124 one && stat -c %a one" "124\n" "" ""
+rmdir one
+
+umask 000
+testing "mkdir -p -m 653" \
+	"mkdir -p -m 653 one/two && stat -c %a one && stat -c %a one/two" \
+	"777\n653\n" "" ""
+rm -rf one
+
+testing "mkdir -p one/two/ (trailing slash)" \
+	"mkdir -p one/two/ &&  [ -d one/two ] && echo yes" "yes\n" "" ""
+rm -rf one
+
+umask 022
+testing "mkdir -p -m 777 (022 umask)" \
+	"mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \
+	"755\n777\n" "" ""
+rm -rf one
+
+umask 377
+testing "mkdir -p -m 777 (377 umask)" \
+	"mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \
+	"700\n777\n" "" ""
+umask 002
+rm -rf one
+
+testing "mkdir -vp" "mkdir -vp walrus 2>&1" \
+	"mkdir: created directory 'walrus'\n" "" ""
+
+testing "mkdir -vp exists" "mkdir -vp walrus 2>&1" \
+	"" "" ""
+rm -rf walrus
+
+touch two
+testing "mkdir continue after fail" \
+	"mkdir -m 777 one two three 2>/dev/null || stat -c %a three" \
+	"777\n" "" ""
+rm -rf one two three
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mkfifo.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "mkfifo" "mkfifo one && [ -p one ] && echo yes" "yes\n" "" ""
+rm one
+
+touch existing
+testing "mkfifo existing" \
+	"mkfifo existing 2> /dev/null || [ -f existing ] && echo yes" "yes\n" "" ""
+rm existing
+
+testing "mkfifo one two" \
+	"mkfifo one two && [ -p one ] && [ -p two ] && echo yes" "yes\n" "" ""
+rm one two
+
+umask 123
+testing "mkfifo (default permissions)" \
+	"mkfifo one && stat -c %a one" "644\n" "" ""
+rm one
+
+umask 000
+
+testing "mkfifo -m 124" \
+	"mkfifo -m 124 one && stat -c %a one" "124\n" "" ""
+rm -f one
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/modinfo.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+[ -e /proc/modules ] || { echo "Skipping test because modules are not supported"; exit 1; }
+
+# modinfo does not need to output fields in a specified order.
+# Instead, there are labelled fields.  We can use sort to make up for this.
+# Other issues to beware of are the volatile nature of srcversion and vermagic,
+# which change from kernel to kernel and can be disabled. 
+# We grep to remove these.
+
+#We expect they have ne2k-pci as a module.
+
+testing "modinfo gets right number of fields" "modinfo ne2k-pci |cut -d: -f1 |grep -v ver|sort" "alias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nauthor\ndepends\ndescription\nfilename\nlicense\nparm\nparm\nparm\n" "" ""
+testing "modinfo treats - and _ as equivalent" "modinfo ne2k_pci |cut -d: -f1 |grep -v ver|sort" "alias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nalias\nauthor\ndepends\ndescription\nfilename\nlicense\nparm\nparm\nparm\n" "" ""
+
+# Output of -F filename should be an absolute path to the module.
+# Otherwise, initrd generating scripts will break.
+
+testing "modinfo -F filename gets absolute path" "[ -e `modinfo -F filename ne2k-pci` ] && echo ne2k-pci " "ne2k-pci\n" "" ""
+
+testing "modinfo supports multiple modules" "modinfo -F filename ne2k-pci 8390 | wc -l" "2\n" "" ""
+
+testing "modinfo does not output filename for bad module" "modinfo -F filename zxcvbnm__9753" "" "" ""
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mount.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,87 @@
+#!/bin/bash
+
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+root_fs=`df | grep "\/$" | awk '{print $1}'`
+root_fs_type=`file -sL $root_fs | awk '{print $5}'`
+
+tmp_b_fs="tmp_b_fs"
+tmp_b_fs_type="ext3"
+
+reCreateTmpFs() {
+  rm -rf $tmp_b_fs
+  mknod $tmp_b_fs b 1 0
+  mkfs.ext3 $tmp_b_fs >/dev/null 2>&1
+}
+reCreateTmpFs
+
+testing "mount $root_fs /mnt" \
+  "mount $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" ""
+testing "mount $tmp_b_fs /mnt" \
+  "mount $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
+reCreateTmpFs
+
+chmod 444 /mnt
+testing "mount $root_fs /mnt (read_only dir)" \
+  "mount $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" ""
+testing "mount $tmp_b_fs /mnt (read_only dir)" \
+  "mount $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
+reCreateTmpFs
+chmod 755 /mnt
+testing "mount -w $root_fs /mnt (write_only mode)" \
+  "mount -w $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" ""
+testing "mount -w $tmp_b_fs /mnt (write_only mode)" \
+  "mount -w $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
+reCreateTmpFs
+testing "mount -rw $tmp_b_fs /mnt (read_write mode)" \
+  'mount -rw $tmp_b_fs /mnt >/dev/null && mkdir /mnt/testDir && \
+   sleep 1 && ! test -e /mnt/testDir && umount /mnt' "" "" ""
+reCreateTmpFs
+testing "mount $tmp_b_fs /mnt -t fs_type" \
+  "mount $tmp_b_fs /mnt -t $tmp_b_fs_type >/dev/null 2>&1 &&
+   mkdir /mnt/testDir && sleep 1 && umount /mnt &&
+   ! test -e /mnt/testDir" "" "" ""
+reCreateTmpFs
+mkdir -p testDir1/testDir2 testDir
+echo "abcdefghijklmnopqrstuvwxyz" > testDir1/testDir2/testFile
+testing "mount -o bind dir1 dir2" \
+  'mount -o bind testDir1 testDir >/dev/null 2>&1 && \
+   cat testDir/testDir2/testFile && sleep 1 && umount testDir' \
+  "abcdefghijklmnopqrstuvwxyz\n" "" ""
+testing "mount -o rbind dir1 dir2" \
+  'mount -o rbind testDir1 testDir >/dev/null 2>&1 && \
+   cat testDir/testDir2/testFile && sleep 1 && umount testDir' \
+  "abcdefghijklmnopqrstuvwxyz\n" "" ""
+testing "mount -o loop $tmp_b_fs /mnt" \
+  "mount -o loop $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDirp &&
+   sleep 1 && umount -d /mnt && ! test -e /mnt/testDirp" "" "" ""
+reCreateTmpFs
+
+mkdir testDir2
+testing "mount -o move mount_1 mount_2" \
+  "mount $tmp_b_fs testDir1 && mkdir testDir1/testDirr &&
+   mount -o move testDir1 testDir2 && test -r testDir2/testDirr &&
+   sleep 1 && umount testDir2" "" "" ""
+reCreateTmpFs
+testing "mount -o rw $tmp_b_fs /mnt" \
+  "mount -o rw $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir &&
+   sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" ""
+reCreateTmpFs
+testing "mount -o ro $tmp_b_fs /mnt" \
+  "mount -o ro $tmp_b_fs /mnt >/dev/null 2>&1 &&
+   mkdir /mnt/testDir 2>/dev/null || sleep 1 && umount /mnt" "" "" ""
+reCreateTmpFs
+
+umount testDir1
+rm -f $tmp_b_fs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mv.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,98 @@
+#!/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"
+
+touch file
+testing "Move old_file to  new_file" "mv file file1 && [ ! -e file -a -f file1 ] &&
+   echo 'yes'" "yes\n" "" ""
+rm -f file*
+
+touch file
+mkdir dir
+testing "Move file to a dir" "mv file dir && [ ! -e file -a -f dir/file ] &&
+   echo 'yes'" "yes\n" "" ""
+rm -rf file* dir*
+
+mkdir dir
+testing "Move old_dir to new_dir" "mv dir dir1 && [ ! -e dir -a -d dir1 ] &&
+   echo 'yes'" "yes\n" "" ""
+rm -rf dir*
+
+mkdir dir1 dir2
+touch file1 file2 dir1/file3
+ln -s file1 link1
+testing "Move multiple files/dir to a dir" "mv file1 file2 link1 dir1 dir2 &&
+   [ ! -e file1 -a ! -e file2 -a ! -e link1 -a ! -e dir1 ] &&
+   [ -f dir2/file1 -a -f dir2/file2 -a -L dir2/link1 -a -d dir2/dir1 ] &&
+   [ -f dir2/dir1/file3 ] && readlink dir2/link1" "file1\n" "" ""
+rm -rf file* link* dir*
+
+touch file1
+testing "Move a empty file to new_file" "mv file1 file2 &&
+   [ ! -e file1 -a -f file2 ] && stat -c %s file2" "0\n" "" ""
+rm -rf file*
+
+mkdir dir1
+testing "Move enpty dir to new_dir" "mv dir1 dir2 &&
+   [ ! -d dir1 -a -d dir2 ] && echo 'yes'" "yes\n" "" ""
+rm -rf dir*
+
+dd if=/dev/zero of=file1 seek=10k count=1 >/dev/null 2>&1
+testing "Move file new_file (random file)" "mv file1 file2 &&
+   [ ! -e file1 -a -f file2 ] && stat -c %s file2" "5243392\n" "" ""
+rm -f file*
+
+touch file1
+ln -s file1 link1
+testing "Move link new_link (softlink)" "mv link1 link2 &&
+   [ ! -e link1 -a -L link2 ] && readlink link2" "file1\n" "" ""
+unlink tLink2 &>/dev/null
+rm -f file* link*
+
+touch file1
+ln file1 link1
+testing "Move link new_link (hardlink)" "mv link1 link2 &&
+   [ ! -e link1 -a -f link2 -a file1 -ef link2 ] && echo 'yes'" "yes\n" "" ""
+unlink link2 &>/dev/null
+rm -f file* link*
+
+touch file1
+chmod a-r file1
+testing "Move file new_file (unreadable)" "mv file1 file2 &&
+   [ ! -e file1 -a -f file2 ] && echo 'yes'" "yes\n" "" ""
+rm -f file*
+
+touch file1
+ln file1 link1
+mkdir dir1
+testing "Move file link dir (hardlink)" "mv file1 link1 dir1 &&
+   [ ! -e file1 -a ! -e link1 -a -f dir1/file1 -a -f dir1/link1 ] &&
+   [ dir1/file1 -ef dir1/link1 ] && echo 'yes'" "yes\n" "" ""
+rm -rf file* link* dir*
+
+mkdir -p dir1/dir2 dir3
+touch dir1/dir2/file1 dir1/dir2/file2
+testing "Move dir1/dir2 dir3/new_dir" "mv dir1/dir2 dir3/dir4 &&
+   [ ! -e dir1/dir2 -a -d dir3/dir4 -a -f dir3/dir4/file1 ] &&
+   [ -f dir3/dir4/file2 ] && echo 'yes'" "yes\n" "" ""
+rm -rf file* dir*
+
+mkdir dir1 dir2
+testing "Move dir new_dir (already exist)" "mv dir1 dir2 &&
+   [ ! -e dir1 -a -d dir2/dir1 ] && echo 'yes'" "yes\n" "" ""
+rm -rf dir*
+
+touch file1 file2
+testing "Move -f file new_file (exist)" "mv -f file1 file2 &&
+   [ ! -e file1 -a -e file2 ] && echo 'yes'" "yes\n" "" ""
+rm -f file*
+
+touch file1 file2
+testing "Move -n file new_file (exist)" "mv -n file1 file2 &&
+   [ -e file1 -a -e file2 ] && echo 'yes'" "yes\n" "" ""
+rm -f file*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/nl.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "nl" "nl" "     1\tone\n     2\ttwo\n     3\tthree\n" \
+  "" "one\ntwo\nthree\n"
+
+testing "nl explicit defaults" "nl -nrn -b a" \
+  "     1\tone\n     2\ttwo\n     3\tthree\n" "" "one\ntwo\nthree\n"
+
+# -n ln rn rz
+
+testing "nl -nln" "nl -nln" "1     \tone\n2     \ttwo\n3     \tthree\n" \
+  "" "one\ntwo\nthree\n"
+testing "nl -nln -w" "nl -nln -w 8" \
+  "1       \tone\n2       \ttwo\n3       \tthree\n" "" "one\ntwo\nthree\n"
+
+testing "nl -nrz" "nl -nrz" "000001\tone\n000002\ttwo\n000003\tthree\n" \
+  "" "one\ntwo\nthree\n"
+
+testing "nl -nrz -w" "nl -w3 -nrz" "001\tone\n002\ttwo\n003\tthree\n" \
+  "" "one\ntwo\nthree\n"
+
+
+# For non-matching lines the separator is "suppressed" meaning it...
+# turns into spaces! And the tab turns into one space, and -d boom turns
+# into 4 spaces, but these:
+#   nl -s"$(echo -e 'bo\tom')" -bpand README
+#   nl -w 3 -bpthe README
+# Yeah. And I doubt utf8 fontmetrics are used either.
+
+testing "nl -b t" "nl -b t" "       \n     1\tone\n       \n     2\ttwo\n" \
+  "" "\none\n\ntwo\n"
+testing "nl -b n" "nl -b n" "       one\n       two\n       three\n" \
+  "" "one\ntwo\nthree\n"
+testing "nl -sook -b p" "nl -sook -bpoing" \
+  "         one\n     1ookboing\n     2ooksproingy\n" \
+  "" "one\nboing\nsproingy\n"
+
+testing "nl -v" "nl -v 42" "    42\tone\n    43\ttwo\n    44\tthree\n" \
+  "" "one\ntwo\nthree\n"
+testing "nl -l" "nl -ba -l2 -w2 - input" \
+  " 1\tone\n   \n 2\t\n 3\ttwo\n   \n 4\t\n   \n 5\tthree\n 6\tfour\n   \n 7\t\n   \n 8\tbang\n   \n" \
+  "\n\nbang\n\n" "one\n\n\ntwo\n\n\n\nthree\nfour\n\n"
+testing "nl no space" "nl -w 1 -v 42" "42\tline\n" "" "line\n"
+
+# Should test for -E but no other implementation seems to have it?
+#testing "nl -E" "nl -w2 -sx -Ebp'(one|two)'" " 1x" "one\nand\ntwo\n"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/pgrep.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+
+#cleaning 'yes' processes
+killall yes >/dev/null 2>&1
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Starting processes to test pgrep command
+yes >/dev/null &
+proc=$!
+echo "# Process created with id: $proc"
+sleep 1
+session_id=0
+proc_parent=`cat /proc/${proc}/stat | awk '{ print $4 }'`
+echo "# Parent Process id of $proc is $proc_parent"
+
+# Testcases for pgrep command
+testing "pgrep pattern" "pgrep yes" "$proc\n" "" ""
+testing "pgrep wildCardPattern" "pgrep ^y.*s$" "$proc\n" "" ""
+testing "pgrep -l pattern" "pgrep -l yes" "$proc yes\n" "" ""
+testing "pgrep -f pattern" "pgrep -f yes" "$proc\n" "" ""
+testing "pgrep -n pattern" "pgrep -n yes" "$proc\n" "" ""
+testing "pgrep -o pattern" "pgrep -o yes" "$proc\n" "" ""
+testing "pgrep -s" "pgrep -s $session_id yes" "$proc\n" "" ""
+testing "pgrep -P" "pgrep -P $proc_parent yes" "$proc\n" "" ""
+
+#Clean-up
+killall yes >/dev/null 2>&1
+
+# Testcases for pkill command
+
+yes >/dev/null &
+sleep 1
+testing "pkill pattern" "pkill yes && sleep 1 && (pgrep yes || echo 'yes')" \
+  "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+yes print1 >/dev/null &
+yes print2 >/dev/null &
+sleep 1
+testing "pkill pattern (multiple)" "pkill yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+sleep 1
+testing "pkill -f pattern (one)" "pkill -f yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes print1 >/dev/null &
+sleep 1
+testing "pkill -f pattern args" "pkill -f \"yes print1\" && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+yes print1 >/dev/null &
+yes print2 >/dev/null &
+sleep 1
+testing "pkill -f pattern (multiple)" "pkill -f yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+sleep 1
+testing "pkill -s 0 -f pattern (regexp)" "pkill -s 0 -f ye* && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+proc1=$!
+yes >/dev/null &
+proc2=$!
+sleep 1
+testing "pkill -n pattern" "pkill -n yes && sleep 1 && pgrep yes" \
+  "$proc1\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+proc1=$!
+yes >/dev/null &
+proc2=$!
+sleep 1
+testing "pkill -o pattern" "pkill -o yes && sleep 1 && pgrep yes" \
+  "$proc2\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+sleep 1
+testing "pkill -s (blank) pattern" "pkill -s '' yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+sleep 1
+testing "pkill -s 0 pattern" "pkill -s 0 yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+proc=$!
+proc_p=`cat /proc/${proc}/stat | awk '{ print $4 }'`
+sleep 1
+testing "pkill -P parent_prodId pattern" "pkill -P $proc_p yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
+yes >/dev/null &
+proc=$!
+proc_parent=`cat /proc/${proc}/stat | awk '{ print $4 }'`
+sleep 1
+testing "pkill -9 pattern" "pkill -9 yes && sleep 1 &&
+   (pgrep yes || echo 'yes')" "yes\n" "" ""
+killall yes >/dev/null 2>&1
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/printf.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,29 @@
+#!/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
+
+testing "printf TEXT" "printf toyTestText" "toyTestText" "" ""
+testing "printf MULTILINE_TEXT" \
+  "printf 'Testing\nmultiline\ntext\nfrom\ntoybox\tcommand.\b'" \
+  "Testing\nmultiline\ntext\nfrom\ntoybox\tcommand.\b" "" ""
+testing "printf '%5d%4d' 1 21 321 4321 54321" \
+  "printf '%5d%4d' 1 21 321 4321 54321" "    1  21  321432154321   0" "" ""
+testing "printf '%c %c' 78 79" "printf '%c %c' 78 79" "7 7" "" ""
+testing "printf '%d %d' 78 79" "printf '%d %d' 78 79" "78 79" "" ""
+testing "printf '%f %f' 78 79" "printf '%f %f' 78 79" \
+  "78.000000 79.000000" "" ""
+testing "printf 'f f' 78 79" "printf 'f f' 78 79" "f f" "" ""
+testing "printf '%i %i' 78 79" "printf '%i %i' 78 79" "78 79" "" ""
+testing "printf '%o %o' 78 79" "printf '%o %o' 78 79" "116 117" "" ""
+testing "printf '%u %u' 78 79" "printf '%u %u' 78 79" "78 79" "" ""
+testing "printf '%u %u' -1 -2" "printf '%u %u' -1 -2" \
+  "18446744073709551615 18446744073709551614" "" ""
+testing "printf '%x %X' 78 79" "printf '%x %X' 78 79" "4e 4F" "" ""
+testing "printf '%g %G' 78 79" "printf '%g %G' 78 79" "78 79" "" ""
+testing "printf '%s %s' 78 79" "printf '%s %s' 78 79" "78 79" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/pwd.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+#TODO: Find better tests
+
+testing "pwd" "[ $(stat -c %i "$(pwd)") = $(stat -c %i .) ] && echo yes" \
+	"yes\n" "" ""
+testing "pwd -P" "[ $(stat -c %i "$(pwd -P)") = $(stat -c %i .) ] && echo yes" \
+	"yes\n" "" ""
+
+
+ln -s . sym
+cd sym
+testing "pwd" "[ $(stat -c %i "$(pwd)") = $(stat -c %i "$PWD") ] && echo yes" \
+	"yes\n" "" ""
+testing "pwd -P" "[ $(stat -c %i "$(pwd -P)") = $(stat -c %i "$PWD") ] || echo yes" \
+	"yes\n" "" ""
+cd ..
+rm sym
+
+export PWD=walrus
+testing "pwd (bad PWD)" "[ "$(pwd)" = "$(cd . ; pwd)" ] && echo yes" \
+	"yes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/readlink.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+APWD="$(pwd -P)"
+
+testing "readlink missing" "readlink notfound || echo yes" "yes\n" "" ""
+
+# simple tests on a file
+
+touch file
+testing "readlink file" "readlink file || echo yes" "yes\n" "" ""
+testing "readlink -f dir" "readlink -f ." "$APWD\n" "" ""
+testing "readlink -f missing" "readlink -f notfound" "$APWD/notfound\n" "" ""
+
+ln -sf notfound link
+testing "readlink link" "readlink link" "notfound\n" "" ""
+testing "readlink link->missing" "readlink -f link" "$APWD/notfound\n" "" ""
+ln -sf ../../ link
+testing "readlink stays relative" "readlink link" "../../\n" "" ""
+rm link
+ln -sf file link
+testing "readlink -f link->file" "readlink -f link" "$APWD/file\n" "" ""
+ln -sf . link
+testing "readlink -f link->dir" "readlink -f link" "$APWD\n" "" ""
+ln -snf link link
+testing "readlink link->link (recursive)" "readlink link" "link\n" "" ""
+testing "readlink -f link->link (recursive)" \
+  "readlink -f link 2>/dev/null || echo yes" "yes\n" "" ""
+
+testing "readlink -q notlink" "readlink -q file || echo yes" "yes\n" "" ""
+testing "readlink -q link" "readlink -q link && echo yes" "yes\n" "" ""
+testing "readlink -q notfound" "readlink -q notfound || echo yes" "yes\n" "" ""
+testing "readlink -e found" "readlink -e file" "$APWD/file\n" "" ""
+testing "readlink -e notfound" \
+  "readlink -e notfound 2>/dev/null || echo yes" "yes\n" "" ""
+testing "readlink -nf ." "readlink -nf ." "$APWD" "" ""
+
+mkdir sub &&
+ln -s . here &&
+ln -s ./sub dir &&
+touch sub/bang || exit 1
+testing "readlink -f multi" "readlink -f dir/../here/dir/bang" \
+  "$APWD/sub/bang\n" "" ""
+testing "readlink -f link/missing" "readlink -f dir/boing" \
+  "$APWD/sub/boing\n" "" ""
+testing "readlink -f /dev/null/file" \
+  "readlink -f /dev/null/file 2>/dev/null || echo yes" "yes\n" "" ""
+ln -sf / link || exit 1
+testing "readlink -f link->/" "readlink -e link/dev" "/dev\n" "" ""
+testing "readlink -f /dev/null/.." \
+  "readlink -f link/null/.. 2>/dev/null || echo yes" "yes\n" "" ""
+rm -f link && ln -sf link link || exit 1
+testing "readlink recurse" "readlink link" "link\n" "" ""
+
+rm file link sub/bang dir here
+rmdir sub
+
+# Make sure circular links don't run away.
+
+ln -s link1 link2
+ln -s link2 link1
+testing "readlink follow recursive2" "readlink -f link1 || echo yes" \
+	"yes\n" "" ""
+rm link1 link2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/renice.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,110 @@
+#!/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"
+
+fun_nice_val() 
+{
+  for each_proc in $@
+  do
+    echo `awk '{ print $18 }' /proc/${each_proc}/stat`
+  done
+}
+
+# creating processes as a test data
+yes >/dev/null &
+proc1=$!
+yes >/dev/null &
+proc2=$!
+yes >/dev/null &
+proc3=$!
+yes >/dev/null &
+proc4=$!
+yes >/dev/null &
+proc5=$!
+
+n_val1=`fun_nice_val $proc1`
+n_val2=`fun_nice_val $proc2`
+n_val3=`fun_nice_val $proc3`
+n_val4=`fun_nice_val $proc4`
+n_val5=`fun_nice_val $proc5`
+
+# Redirecting errors to /dev/null
+arg="2>/dev/null"
+
+for n_v in "-1" "1"
+do
+  for n_o in "" " -p"
+  do
+    nice_val1=$((`fun_nice_val $proc1` + $n_v))
+    nice_val2=$((`fun_nice_val $proc2` + $n_v))
+    nice_val3=$((`fun_nice_val $proc3` + $n_v))
+    nice_val4=$((`fun_nice_val $proc4` + $n_v))
+    nice_val5=$((`fun_nice_val $proc5` + $n_v))
+    testing "renice with -n=$n_v and with$n_o multiple_pids" \
+      "renice -n $n_v$n_o $proc1 $proc2 $proc3 $proc4 $proc5 &&
+       fun_nice_val $proc1 $proc2 $proc3 $proc4 $proc5" \
+      "$nice_val1\n$nice_val2\n$nice_val3\n$nice_val4\n$nice_val5\n" "" ""
+  
+    nice_val1=$((`fun_nice_val $proc1` + $n_v))
+    nice_val2=$((`fun_nice_val $proc2` + $n_v))
+    nice_val3=$((`fun_nice_val $proc3` + $n_v))
+    nice_val4=$((`fun_nice_val $proc4` + $n_v))
+    nice_val5=$((`fun_nice_val $proc5` + $n_v))
+    testing "renice with -n=$n_v and with$n_o multiple_pids (some invalid)" \
+      "renice -n $n_v$n_o $proc1 $proc2 88888 99999 $proc3 $proc4 $proc5 $arg ||
+       fun_nice_val $proc1 $proc2 $proc3 $proc4 $proc5" \
+      "$nice_val1\n$nice_val2\n$nice_val3\n$nice_val4\n$nice_val5\n" "" ""
+  done
+done
+
+# Starting Boundary Test Here .. 
+loop_cnt=2
+echo -n "TEST: Boundary value test for Id($proc1)..[old_nice_val/new_nice_val]:"
+cnt=0
+n_val=1
+while [ $cnt -gt -1 ]
+do
+  old_nice_val=`fun_nice_val $proc1`
+  new_nice_val=`renice -n $n_val $proc1 >/dev/null 2>&1 && fun_nice_val $proc1`
+  echo -n "[$old_nice_val/$new_nice_val],"
+  if [ $old_nice_val -eq 39 -a $old_nice_val -eq $new_nice_val ]
+  then
+    echo -n " [Equals 39,doing -1] "
+    n_val="-1"
+  elif [ $old_nice_val -eq 0 -a $old_nice_val -eq $new_nice_val ]
+  then
+    echo -n " [Equals 0,doing +1] "
+    n_val="1"
+  elif [ $new_nice_val -gt 39 -o $new_nice_val -lt 0 ]
+  then
+    echo " [Test Fail] "
+    echo "FAIL: renice with step 1 ($proc1) (boundary value)"
+    cnt="-1"
+  elif [ $new_nice_val -eq $n_val1 -a $new_nice_val -eq $(($old_nice_val+1)) ]
+  then
+    cnt=$(($cnt + 1))
+    if [ $cnt -eq $loop_cnt ]
+    then
+      echo " [Test Pass] "
+      echo "PASS: renice with step 1 ($proc1) (boundary value)"
+      cnt="-1"
+    fi
+  else
+    dif=`echo $(($new_nice_val-$old_nice_val))`
+    dif=`echo ${dif/-}`
+    if [ $dif -ne 1 ]
+    then
+      echo " [Test Fail] "
+      echo "FAIL: renice with step 1 ($proc1) (boundary value)"
+      cnt="-1"
+    fi
+  fi
+done
+# Boundary test End
+
+killall yes >/dev/null 2>&1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/rev.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+echo -e "one" > file1 
+echo -e "two" > file2
+testing "rev" "rev && echo yes" "orez\nyes\n" "" "zero\n"
+testing "rev -" "rev - && echo yes" "orez\nyes\n" "" "zero\n"
+testing "rev file1 file2" "rev file1 file2" "eno\nowt\n" "" ""
+testing "rev - file"      "rev - file1"     "orez\neno\n" "" "zero\n"
+testing "rev file -"      "rev file1 -"     "eno\norez\n" "" "zero\n"
+testing "rev no trailing newline" "rev -" "cba\nfed\n" "" "abc\ndef"
+
+testing "rev file1 notfound file2" \
+        "rev file1 notfound file2 2>stderr && echo ok ; cat stderr; rm stderr" \
+        "eno\nowt\nrev: notfound: No such file or directory\n" "" ""
+
+testing "rev different input sizes"\
+        "rev"\
+        "\n1\n21\n321\n4321\n54321\n4321\n321\n21\n1\n\n"\
+        "" "\n1\n12\n123\n1234\n12345\n1234\n123\n12\n1\n\n"
+
+rm file1 file2
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/rm.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,46 @@
+#!/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"
+
+echo "abcdefghijklmnopqrstuvwxyz" > file.txt
+testing "Remove text-file" "rm file.txt && [ ! -e file.txt ] && echo 'yes'" "yes\n" "" ""
+rm -f file*
+
+mkdir dir
+testing "Remove empty directory" "rm -r dir && [ ! -d dir ] && echo 'yes'" "yes\n" "" ""
+rm -rf dir
+
+echo "abcdefghijklmnopqrstuvwxyz" > file.txt && chmod 000 file.txt
+testing "Remove text file(mode 000)" "rm -f file.txt && [ ! -e file.txt ] && echo 'yes'" \
+  "yes\n" "" ""
+rm -f file*
+
+touch file1.txt file2.txt
+mkdir dir1 dir2
+testing "rm -r (multiple files and dirs)" \
+  "rm -r file1.txt file2.txt dir1 dir2 2>/dev/null &&
+   [ ! -e file1.txt -a ! -e file2.txt -a ! -d dir1 -a ! -d dir2 ] && echo 'yes'" \
+  "yes\n" "" ""
+rm -rf file* dir*
+
+touch file1.txt file2.txt
+mkdir dir1 dir2
+testing "rm -rf (present + missing files and dirs)" \
+  "rm -rf file1.txt file2.txt file3.txt dir1 dir2 dir3 2>/dev/null &&
+  [ ! -e file1.txt -a ! -e file2.txt -a ! -d dir1 -a ! -d dir2 ] && echo 'yes'" \
+  "yes\n" "" ""
+rm -rf file* dir*
+
+# testing with nested dirs.
+mkdir -p dir1/dir2/dir3 dir1/dir2/dir4
+touch dir1/file1.txt dir1/dir2/file2.txt dir1/dir2/dir3/file3.txt
+testing "rm -r nested_dir" "rm -r dir1/dir2/ 2>/dev/null &&
+  [ -d dir1 -a -f dir1/file1.txt -a ! -d dir1/dir2 ] && echo 'yes'" \
+  "yes\n" "" ""
+rm -rf dir*
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/rmdir.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+mkdir one
+testing "rmdir" "rmdir one && [ ! -d one ] && echo yes" "yes\n" "" ""
+
+touch walrus
+testing "rmdir file" \
+	"rmdir walrus 2> /dev/null || [ -f walrus ] && echo yes" "yes\n" "" ""
+
+mkdir one two
+testing "rmdir one two" \
+	"rmdir one two 2> /dev/null && [ ! -d one ] && [ ! -d two ] && echo yes" \
+	"yes\n" "" ""
+
+mkdir one two three
+testing "rmdir one missing two file three" \
+	"rmdir one missing two walrus three 2> /dev/null || [ ! -d three ] && echo yes" \
+	"yes\n" "" ""
+rm walrus
+
+mkdir one
+chmod 000 one
+testing "rmdir mode 000" "rmdir one && [ ! -d one ] && echo yes" "yes\n" "" ""
+
+mkdir temp
+touch temp/thing
+testing "rmdir non-empty" \
+	"rmdir temp 2>/dev/null || [ -d temp ] && echo yes" "yes\n" "" ""
+testing "rmdir -p dir/file" \
+	"rmdir -p temp/thing 2>/dev/null || [ -f temp/thing ] && echo yes" \
+	"yes\n" "" ""
+
+mkdir -p temp/one/two/three
+testing "rmdir -p part of path" \
+	"rmdir -p temp/one/two/three 2>/dev/null || [ -d temp ] && [ ! -e temp/one ] && echo yes" \
+	"yes\n" "" ""
+rm -rf temp
+
+
+mkdir -p one/two/three
+testing "rmdir -p one/two/three" \
+	"rmdir -p one/two/three && [ ! -e one ] && echo yes" "yes\n" "" ""
+
+mkdir -p one/two/three
+testing "rmdir -p one/two/three/" \
+	"rmdir -p one/two/three/ && [ ! -e one ] && echo yes" "yes\n" "" ""
+
+#mkdir -p one/two/three
+#chmod 000 one/two/three one/two one
+#testing "rmdir -p one/two/three" \
+#	"rmdir -p one/two/three && [ ! -e one ] && echo yes" "yes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/seq.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "seq (exit with error)" "seq 2> /dev/null || echo yes" "yes\n" "" ""
+testing "seq (exit with error)" "seq 1 2 3 4 2> /dev/null || echo yes" \
+        "yes\n" "" ""
+testing "seq one argument" "seq 3" "1\n2\n3\n" "" ""
+testing "seq two arguments" "seq 5 7" "5\n6\n7\n" "" ""
+testing "seq two arguments reversed" "seq 7 5" "" "" ""
+testing "seq two arguments equal" "seq 3 3" "3\n" "" ""
+testing "seq two arguments equal, arbitrary negative step" "seq 1 -15 1" \
+        "1\n" "" ""
+testing "seq two arguments equal, arbitrary positive step" "seq 1 +15 1" \
+        "1\n" "" ""
+testing "seq count up by 2" "seq 4 2 8" "4\n6\n8\n" "" ""
+testing "seq count down by 2" "seq 8 -2 4" "8\n6\n4\n" "" ""
+testing "seq count wrong way #1" "seq 4 -2 8" "" "" ""
+testing "seq count wrong way #2" "seq 8 2 4" "" "" ""
+testing "seq count by .3" "seq 3 .3 4" "3\n3.3\n3.6\n3.9\n" "" ""
+testing "seq count by -.9" "seq .7 -.9 -2.2" "0.7\n-0.2\n-1.1\n-2\n" "" ""
+testing "seq count by zero" "seq 4 0 8 | head -n 10" "" "" ""
+testing "seq separator -" "seq -s - 1 3" "1-2-3\n" "" ""
+testing "seq format string" 'seq -f %+01g -10 5 10' "-10\n-5\n+0\n+5\n+10\n" "" ""
+testing "seq separator and format string" "seq -f \%03g -s \; 5 -1 0" "005;004;003;002;001;000\n" "" ""
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/sha1sum.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# These tests are based on RFC3174 which were based on FIPS PUB 180-1
+
+testing "sha1sum TEST1" \
+        "sha1sum" \
+        "a9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
+        "" "abc"
+
+testing "sha1sum TEST2" \
+        "sha1sum" \
+        "84983e441c3bd26ebaae4aa1f95129e5e54670f1  -\n" \
+        "" "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
+
+testing "sha1sum TEST3" \
+        'dd if=/dev/zero bs=1000 count=1000 2>/dev/null | tr \\0 a | sha1sum' \
+        "34aa973cd4c4daa4f61eeb2bdbad27316534016f  -\n" \
+        "" ""
+
+testing "sha1sum TEST4" \
+        'for i in `seq 1 10`; do echo -n 0123456701234567012345670123456701234567012345670123456701234567 ; done | sha1sum' \
+        "dea356a2cddd90c7a7ecedc5ebb563934f460452  -\n" \
+        "" ""
+
+echo -n "abc" > file1
+echo -n "def" > file2
+testing "sha1sum" \
+        "sha1sum" \
+        "a9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
+        "" "abc"
+
+testing "sha1sum -" \
+        "sha1sum -" \
+        "a9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
+        "" "abc"
+
+testing "sha1sum file" \
+        "sha1sum file1" \
+        "a9993e364706816aba3e25717850c26c9cd0d89d  file1\n" \
+        "" ""
+
+testing "sha1sum file1 file2" \
+        "sha1sum file1 file2" \
+        "a9993e364706816aba3e25717850c26c9cd0d89d  file1\n589c22335a381f122d129225f5c0ba3056ed5811  file2\n" \
+        "" ""
+
+testing "sha1sum file1 file2 -" \
+        "sha1sum file1 file2 -" \
+        "a9993e364706816aba3e25717850c26c9cd0d89d  file1\n589c22335a381f122d129225f5c0ba3056ed5811  file2\na9993e364706816aba3e25717850c26c9cd0d89d  -\n" \
+        "" "abc"
+
+rm -f file1 file2
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/sort.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+# SUSv4 compliant sort tests.
+# Copyright 2005, 2012 by Rob Landley <rob@landley.net>
+
+[ -f testing.sh ] && . testing.sh
+
+# The basic tests.  These should work even with the small config.
+
+testing "sort" "sort input" "a\nb\nc\n" "c\na\nb\n" ""
+testing "sort #2" "sort input" "010\n1\n3\n" "3\n1\n010\n" ""
+testing "sort stdin" "sort" "a\nb\nc\n" "" "b\na\nc\n"
+testing "sort numeric" "sort -n input" "1\n3\n010\n" "3\n1\n010\n" ""
+testing "sort reverse" "sort -r input" "wook\nwalrus\npoint\npabst\naargh\n" \
+	"point\nwook\npabst\naargh\nwalrus\n" ""
+
+# These tests require the full option set.
+
+optional SORT_BIG
+# Longish chunk of data re-used by the next few tests.  The expected output
+# varies, but the input (this) is the same.
+
+data="42	1	3	woot
+42	1	010	zoology
+egg	1	2	papyrus
+7	3	42	soup
+999	3	0	algebra
+"
+
+# Sorting with keys
+
+testing "sort one key" "sort -k4,4 input" \
+"999	3	0	algebra
+egg	1	2	papyrus
+7	3	42	soup
+42	1	3	woot
+42	1	010	zoology
+" "$data" ""
+
+# The numeric sort orders field 2, ignores field 3 (because numeric sort stops
+# at the whitespace), then the global fallback sort does an alpha sort on
+# the whole string (starting at the beginning of the line).
+
+testing "sort key range with numeric option" "sort -k2,3n input" \
+"42	1	010	zoology
+42	1	3	woot
+egg	1	2	papyrus
+7	3	42	soup
+999	3	0	algebra
+" "$data" ""
+
+# Numeric sort on field 2 (again, ignore field 3 because it's numeric),
+# then do a _reversed_ alpha sort on the whole line as a tiebreaker.
+
+testing "sort key range with numeric option and global reverse" \
+"sort -k2,3n -r input" \
+"egg	1	2	papyrus
+42	1	3	woot
+42	1	010	zoology
+999	3	0	algebra
+7	3	42	soup
+" "$data" ""
+
+# Reversed numeric sort on field 2 (numeric ignores field 3), then
+# break ties with alpha sort on whole line.
+
+testing "sort key range with multiple options" "sort -k2,3rn input" \
+"7	3	42	soup
+999	3	0	algebra
+42	1	010	zoology
+42	1	3	woot
+egg	1	2	papyrus
+" "$data" ""
+
+testing "sort key doesn't strip leading blanks, disables fallback global sort" \
+"sort -n -k2 -t ' '" " a \n 1 \n 2 \n" "" " 2 \n 1 \n a \n"
+
+# Test case contributed by Joey Hess:
+
+testing "sort key edge case with -t" "sort -n -k4 -t/" \
+"/usr/lib/finish-install.d/1
+/usr/lib/finish-install.d/4
+/usr/lib/prebaseconfig.d/2
+/usr/lib/prebaseconfig.d/6
+" "" "/usr/lib/finish-install.d/1
+/usr/lib/prebaseconfig.d/2
+/usr/lib/finish-install.d/4
+/usr/lib/prebaseconfig.d/6
+"
+
+testing "sort -x" "sort -x" "010\na0\n 0c0\n" "" "a0\n010\n 0c0\n"
+
+optional SORT_FLOAT
+
+# not numbers < NaN < -infinity < numbers < +infinity
+testing "sort -g" "sort -g" \
+  "bork\nNaN\n-inf\n0.4\n1.222\n01.37\n2.1\n+infinity\n" "" \
+  "01.37\n1.222\n2.1\n0.4\nNaN\nbork\n-inf\n+infinity\n"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/split.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "split" "seq 1 12345 | split && ls xa[a-z] | wc -l" "13\n" "" ""
+rm xa[a-z]
+
+testing "split -" "seq 1 12345 | split - && ls xa[a-z] | wc -l" "13\n" "" ""
+rm xa[a-z]
+
+seq 1 12345 > file
+testing "split file" "split file && ls xa[a-z] | wc -l" "13\n" "" ""
+rm xa[a-z]
+
+testing "split -l" "split file -l 10k && wc -l xab" "2105 xab\n" "" ""
+rm xa[ab]
+
+testing "split suffix exhaustion" \
+  "split file -l 10 -a 1 walrus 2>/dev/null || ls walrus* | wc -l" "26\n" "" ""
+rm walrus*
+
+testing "split bytes" \
+  "toybox seq 1 20000 | split -b 100 -a 3 - whang && ls whang* | wc -l && wc -c whangbpw" "1089\n94 whangbpw\n" "" ""
+
+testing "split reassembly" \
+  'diff -u <(ls whang* | sort | xargs cat) <(seq 1 20000) && echo yes' \
+  "yes\n" "" ""
+
+rm file whang*
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/tac.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+
+echo -e "one-A\none-B" > file1 
+echo -e "two-A\ntwo-B" > file2
+testing "tac" "tac && echo yes" "one-B\none-A\nyes\n" "" "one-A\none-B\n"
+testing "tac -" "tac - && echo yes" "one-B\none-A\nyes\n" "" "one-A\none-B\n"
+testing "tac file1 file2" "tac file1 file2" "one-B\none-A\ntwo-B\ntwo-A\n"  "" ""
+testing "tac - file"      "tac - file1"     "zero-B\nzero-A\none-B\none-A\n" "" "zero-A\nzero-B\n"
+testing "tac file -"      "tac file1 -"     "one-B\none-A\nzero-B\nzero-A\n" "" "zero-A\nzero-B\n"
+
+testing "tac file1 notfound file2" \
+        "tac file1 notfound file2 2>stderr && echo ok ; tac stderr; rm stderr" \
+        "one-B\none-A\ntwo-B\ntwo-A\ntac: notfound: No such file or directory\n" "" ""
+
+testing "tac no trailing newline" "tac -" "defabc\n" "" "abc\ndef"
+
+# xputs used by tac does not propagate this error condition properly. 
+#testing "tac > /dev/full" \
+#        "tac - > /dev/full 2>stderr && echo ok; cat stderr; rm stderr" \
+#        "tac: write: No space left on device\n" "" "zero\n"
+
+# 
+
+rm file1 file2
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/tail.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+BIGTEST="one\ntwo\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n"
+echo -ne "$BIGTEST" > file1
+testing "tail" "tail && echo yes" "oneyes\n" "" "one"
+testing "tail file" "tail file1" \
+	"two\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n" "" ""
+testing "tail -n in bounds" "tail -n 3 file1" "nine\nten\neleven\n" "" ""
+testing "tail -n out of bounds" "tail -n 999 file1" "$BIGTEST" "" ""
+testing "tail -n+ in bounds" "tail -n +3 file1" \
+	"three\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n" "" ""
+testing "tail -n+ outof bounds" "tail -n +999 file1" "" "" ""
+testing "tail -c in bounds" "tail -c 27 file1" \
+	"even\neight\nnine\nten\neleven\n" "" ""
+testing "tail -c out of bounds" "tail -c 999 file1" "$BIGTEST" "" ""
+testing "tail -c+ in bounds" "tail -c +27 file1" \
+	"x\nseven\neight\nnine\nten\neleven\n" "" ""
+testing "tail -c+ out of bonds" "tail -c +999 file1" "" "" ""
+rm file1
+
+testing "tail stdin no trailing newline" "tail -n 1 - " "c" "" "a\nb\nc"
+testing "tail file no trailing newline" "tail -n 1 input" "c" "a\nb\nc" ""
+
+optional TAIL_SEEK
+testing "tail noseek -n in bounds" "tail -n 3" "nine\nten\neleven\n" \
+	"" "$BIGTEST"
+testing "tail noseek -n out of bounds" "tail -n 999" "$BIGTEST" "" "$BIGTEST"
+testing "tail noseek -n+ in bounds" "tail -n +3" \
+	"three\nfour\nfive\nsix\nseven\neight\nnine\nten\neleven\n" "" \
+	"$BIGTEST"
+testing "tail noseek -n+ outof bounds" "tail -n +999" "" "" "$BIGTEST"
+testing "tail noseek -c in bounds" "tail -c 27" \
+	"even\neight\nnine\nten\neleven\n" "" "$BIGTEST"
+testing "tail noseek -c out of bounds" "tail -c 999" "$BIGTEST" "" "$BIGTEST"
+testing "tail noseek -c+ in bounds" "tail -c +27" \
+	"x\nseven\neight\nnine\nten\neleven\n" "" "$BIGTEST"
+testing "tail noseek -c+ out of bonds" "tail -c +999" "" "" "$BIGTEST"
+
+makebigfile()
+{
+
+  for j in $(seq 1 100)
+  do
+    printf "%s " $j
+    for i in $(seq 1 100)
+    do
+      printf %s 123456789abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
+    done
+    echo
+  done
+}
+makebigfile > bigfile
+
+testing "tail -c 12345 -n 3 bigfile" "tail -c 12345 -n 3 bigfile | md5sum" \
+  "347bbdcbad8a313f4dc7bd558c5bfcb8  -\n" "" ""
+testing "tail -n 3 -c 12345 bigfile" "tail -n 3 -c 12345 bigfile | md5sum" \
+  "1698825a750288284ec3ba7d8a59f302  -\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/tar.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+#Creating  dir
+mkdir dir/dir1 -p
+echo "This is testdata" > dir/dir1/file
+testing "tar tgz - compession, extraction and data validation" "tar -czf dir.tgz dir/ && [ -e dir.tgz ] && echo 'yes'; rm -rf dir; tar -xf dir.tgz && [ -f dir/dir1/file ] && cat dir/dir1/file; rm -rf dir.tgz" "yes\nThis is testdata\n" "" ""
+
+#Creating  dir
+mkdir dir/dir1 -p
+echo "This is testdata" > dir/dir1/file
+testing "tar tar.gz - compession, extraction and data validation" "tar -czf dir.tar.gz dir/ && [ -e dir.tar.gz ] && echo 'yes'; rm -rf dir; tar -xf dir.tar.gz && [ -f dir/dir1/file ] && cat dir/dir1/file; rm -rf dir.tar.gz" "yes\nThis is testdata\n" "" ""
+
+#Creating  dir
+mkdir dir/dir1 -p
+echo "This is testdata" > dir/dir1/file
+testing "tar verbose compression" "tar -cvzf dir.tgz dir/; rm -rf dir.tgz" "dir/\ndir/dir1/\ndir/dir1/file\n" "" ""
+rm -rf dir/
+
+#creating test file
+dd if=/dev/zero of=testFile ibs=4096 obs=4096 count=1000 2>/dev/null
+testing "tar - compession and extraction of a file" "tar -czf testFile.tgz testFile && [ -e testFile.tgz ] && echo 'yes'; rm -rf testFile; tar -xf testFile.tgz && [ -f testFile ] && echo 'yes'; rm -rf testFile.tgz" "yes\nyes\n" "" ""
+
+#creating empty test file
+touch testFile
+testing "tar - compession and extraction of a empty file" "tar -czf testFile.tgz testFile && [ -e testFile.tgz ] && echo 'yes'; rm -rf testFile; tar -xf testFile.tgz && [ -f testFile ] && echo 'yes'; rm -rf testFile.tgz" "yes\nyes\n" "" ""
+
+#Creating  dir
+mkdir dir/dir1 -p
+touch dir/dir1/file1 dir/dir1/file2 dir/dir1/file3 dir/dir1/file4
+testing "tar -t option" "tar -czf dir.tar.gz dir/; rm -rf dir; tar -tf dir.tar.gz; rm -rf dir.tar.gz" "dir/\ndir/dir1/\ndir/dir1/file2\ndir/dir1/file4\ndir/dir1/file3\ndir/dir1/file1\n" "" ""
+rm -rf dir/
+
+#Creating nested directory 
+mkdir -p dir/dir1 dir/dir2 dir/dir3 dir/dir4
+echo "This is testdata" > dir/dir1/file; echo "Dont exclude me" >  dir/dir3/file1 ; 
+echo "Exclude me" >  dir/dir3/file2 ; echo "YO" > dir/dir4/file1 ; echo "Hello" >dir/dir4/file2; echo "Dont" > dir/dir2/file1
+echo "dir/dir4\ndir/dir3/file2" > exclude_file
+testing "Creating tar with files excluded : -X" "tar -cvzf dir.tgz dir/ -X exclude_file ; rm -rf dir ; tar -tf dir.tgz; rm -rf dir.tgz " "dir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir3/file1\ndir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir3/file1\n" "" ""
+rm -rf exclude_file
+
+#Creating nested directory
+mkdir dir/dir1 -p ;  mkdir dir/dir2 ;  mkdir dir/dir3 ; mkdir dir/dir4
+echo "This is testdata" > dir/dir1/file
+echo "Dont exclude me" >  dir/dir3/file1 ; echo "Exclude me" >  dir/dir3/file2 ; echo "YO" > dir/dir4/file1 ; echo "Hello" >dir/dir4/file2; echo "Dont" > dir/dir2/file1
+testing "tar with pattern --exclude" "tar --exclude=dir/dir3/* -cvzf dir.tgz dir/ ; rm -rf dir ; tar -tf dir.tgz; rm -rf dir.tgz " "dir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir4/\ndir/dir4/file2\ndir/dir4/file1\ndir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir4/\ndir/dir4/file2\ndir/dir4/file1\n" "" ""
+
+#Creating directory to be compressed
+mkdir dir/dir1 -p
+echo "This is testdata" > dir/dir1/file
+mkdir temp
+testing "Extraction with -C Dir" "tar -czf dir.tgz dir/ ;rm -rf dir ;tar -xf dir.tgz -C temp/ ; [ -e temp/dir ] && echo 'yes' ; rm -rf dir dir.tgz" "yes\n" "" ""
+rm -rf temp
+
+#Creating nested directory 
+mkdir dir/dir1 -p ;  mkdir dir/dir2 ;  mkdir dir/dir3 ; mkdir dir/dir4 ; mkdir temp_dir
+echo "dir1/file" > dir/dir1/file ; echo "temp_dir/file" > temp_dir/file 
+echo "dir3/file1" >  dir/dir3/file1 ; echo "dir3/file2" >  dir/dir3/file2 ; echo "YO" > dir/dir4/file1 ; echo "Hello" >dir/dir4/file2; echo "dir2/file1" > dir/dir2/file1
+echo  "temp_dir/file" > exclude_file
+testing "Creating tar extra files/directory included : -T" "tar -czf dir.tgz dir/ -T exclude_file ; rm -rf dir ; tar -tf dir.tgz; rm -rf dir.tgz " "dir/\ndir/dir2/\ndir/dir2/file1\ndir/dir1/\ndir/dir1/file\ndir/dir3/\ndir/dir3/file2\ndir/dir3/file1\ndir/dir4/\ndir/dir4/file2\ndir/dir4/file1\ntemp_dir/file\n" "" ""
+rm -rf exclude_file
+rm -rf temp_dir
+
+#Creating dir
+mkdir dir/dir1 -p 
+echo "Inside dir/dir1" > dir/dir1/file ; echo "Hello Inside dir" > dir/file
+testing "Exctraction on STDOUT : -O" " tar -czf dir.tgz dir/ ; rm -rf dir ; tar -xf dir.tgz -O ; [ -e 'Inside dir/dir1/\nHello Inside dir\n' ] && echo 'yes'; rm -rf dir.tgz "  "" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# TODO: Should also have device and socket files
+
+mkdir d
+touch f
+ln -s /dev/null L
+echo nonempty > s
+mkfifo p
+
+type_test()
+{
+  result=""
+  for i in d f L s p n
+  do
+    if test $* $i
+    then
+      result=$result$i
+    fi
+  done
+  printf "%s" $result
+}
+
+testing "test -b" "type_test -b" "" "" ""
+testing "test -c" "type_test -c" "L" "" ""
+testing "test -d" "type_test -d" "d" "" ""
+testing "test -f" "type_test -f" "fs" "" ""
+testing "test -h" "type_test -h" "L" "" ""
+testing "test -L" "type_test -L" "L" "" ""
+testing "test -s" "type_test -s" "ds" "" ""
+testing "test -S" "type_test -S" "" "" ""
+testing "test -p" "type_test -p" "p" "" ""
+testing "test -e" "type_test -e" "dfLsp" "" ""
+testing "test ! -e" "type_test ! -e" "n" "" ""
+
+rm f L s p
+rmdir d
+
+# TODO: Test rwx gu t
+
+testing "test" "test "" || test a && echo yes" "yes\n" "" ""
+testing "test -n" "test -n "" || test -n a && echo yes" "yes\n" "" ""
+testing "test -z" "test -n a || test -n "" && echo yes" "yes\n" "" ""
+testing "test a = b" "test a = b || test "" = "" && echo yes" "yes\n" "" ""
+testing "test a != b" "test "" != "" || test a = b && echo yes" "yes\n" "" ""
+
+arith_test()
+{
+  test -1 $1 1 && echo l
+  test 0 $1 0 && echo e
+  test -3 $1 -5 && echo g
+}
+
+testing "test -eq" "arith_test -eq" "e\n" "" ""
+testing "test -ne" "arith_test -ne" "l\ng\n" "" ""
+testing "test -gt" "arith_test -gt" "g\n" "" ""
+testing "test -ge" "arith_test -ge" "e\ng\n" "" ""
+testing "test -lt" "arith_test -lt" "l\n" "" ""
+testing "test -le" "arith_test -le" "l\ne\n" "" ""
+
+# test ! = -o a
+# test ! \( = -o a \)
+# test \( ! = \) -o a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/touch.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "touch" "touch walrus && [ -e walrus ] && echo yes" "yes\n" "" ""
+testing "touch 1 2 3" "touch one two three && rm one two three && echo yes" "yes\n" \
+  "" ""
+testing "touch -c" "touch -c walrus && [ -e walrus ] && echo yes" "yes\n" "" ""
+testing "touch -c missing" "touch -c warrus && [ ! -e warrus ] && echo yes" \
+  "yes\n" "" ""
+
+# This isn't testing fraction of a second because I dunno how to read it back
+
+testing "touch -d" \
+  "touch -d 2009-02-13T23:31:30.12Z walrus && date -r walrus +%s.%N" "1234567890\n" \
+  "" ""
+#testing "touch -t" "touch -t 200902132331.42
+#testing "touch -r"
+#testing "touch -a"
+#testing "touch -m"
+#testing "touch -am"
+rm walrus
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/useradd.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,90 @@
+#!/bin/bash
+
+# Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2013 Robin Mittal <robinmittal.it@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+# 70 characters long string; hereafter, we will use it as per our need.
+_s70="abcdefghijklmnopqrstuvwxyz123456789abcdefghijklmnopqrstuvwxyz123456789"
+
+# Redirecting all output to /dev/null for grep, adduser and deluser
+arg="&>/dev/null"
+
+#testing "name" "command" "result" "infile" "stdin"
+
+# Default password for adding user is: 'password'
+pass=`echo -ne 'password\npassword\n'`
+
+testing "adduser user_name (text)" "useradd toyTestUser $arg ||
+   grep '^toyTestUser:' /etc/passwd $arg && test -d /home/toyTestUser &&
+   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+testing "adduser user_name (alphanumeric)" "useradd toy1Test2User3 $arg ||
+   grep '^toy1Test2User3:' /etc/passwd $arg && test -d /home/toy1Test2User3 &&
+   userdel toy1Test2User3 $arg && rm -rf /home/toy1Test2User3 && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+testing "adduser user_name (numeric)" "useradd 987654321 $arg ||
+   grep '^987654321:' /etc/passwd $arg && test -d /home/987654321 &&
+   userdel 987654321 $arg && rm -rf /home/987654321 && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+testing "adduser user_name (with ./-/_)" "useradd toy.1Test-2User_3 $arg ||
+   grep '^toy.1Test-2User_3:' /etc/passwd $arg &&
+   test -d /home/toy.1Test-2User_3 && userdel toy.1Test-2User_3 $arg &&
+   rm -rf /home/toy.1Test-2User_3 && echo 'yes'" "yes\n" "" "$pass"
+
+testing "adduser user_name (long string)" "useradd $_s70 $arg ||
+   grep '^$_s70:' /etc/passwd $arg && test -d /home/$_s70 &&
+   userdel $_s70 $arg && rm -rf /home/$_s70 && echo 'yes'" "yes\n" "" "$pass"
+
+testing "adduser user_name with dir" "useradd -h $PWD/dir toyTestUser $arg ||
+   grep '^toyTestUser:.*dir' /etc/passwd $arg && test -d $PWD/dir &&
+   userdel toyTestUser $arg && rm -rf $PWD/dir && echo 'yes'" "yes\n" "" "$pass"
+
+gecos="aaa,bbb,ccc,ddd,eee"
+testing "adduser user_name with gecos" "useradd -g '$gecos' toyTestUser $arg ||
+   grep '^toyTestUser:.*$gecos' /etc/passwd $arg && test -d /home/toyTestUser &&
+   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+shl="/bin/sh"
+testing "adduser user_name with shell" "useradd -s $shl toyTestUser $arg ||
+   grep '^toyTestUser:.*$shl$' /etc/passwd $arg && test -d /home/toyTestUser &&
+   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+g_name="root"
+g_id=`grep $g_name /etc/group | cut -d : -f 3`
+testing "adduser user_name with group" "useradd -G $g_name toyTestUser $arg ||
+   grep '^toyTestUser:.*:.*:$g_id:.*' /etc/passwd $arg &&
+   test -d /home/toyTestUser && userdel toyTestUser $arg &&
+   rm -rf /home/toyTestUser && echo 'yes'" "yes\n" "" "$pass"
+
+testing "adduser user_name (system user)" "useradd -S toyTestUser $arg ||
+   grep '^toyTestUser:.*:.*:.*' /etc/passwd $arg &&
+   test ! -e /home/toyTestUser && userdel toyTestUser $arg && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+testing "adduser user_name with -D" "useradd -D toyTestUser $arg ||
+   grep '^toyTestUser:.*:.*:.*' /etc/passwd $arg && test -d /home/toyTestUser &&
+   userdel toyTestUser $arg && rm -rf /home/toyTestUser && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+testing "adduser user_name with -H" "useradd -H toyTestUser $arg ||
+   grep '^toyTestUser:.*:.*:.*' /etc/passwd $arg &&
+   test ! -e /home/toyTestUser && userdel toyTestUser $arg && echo 'yes'" \
+  "yes\n" "" "$pass"
+
+testing "adduser user_name with dir and -H" \
+  "useradd -H -h $PWD/dir toyTestUser $arg ||
+   grep '^toyTestUser:.*dir' /etc/passwd $arg && test ! -e $PWD/dir &&
+   userdel toyTestUser $arg && echo 'yes'" "yes\n" "" "$pass"
+
+testing "adduser user_name with user_id" "useradd -u 49999 toyTestUser $arg ||
+   grep '^toyTestUser:x:49999:.*' /etc/passwd $arg &&
+   test -d /home/toyTestUser && userdel toyTestUser $arg &&
+   rm -rf /home/toyTestUser && echo 'yes'" "yes\n" "" "$pass"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/uudecode.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "uudecode uu empty file" "uudecode -o /dev/stdout && echo yes" \
+	"yes\n" "" "begin 744 test\n\`\nend\n"
+testing "uudecode uu 1-char" "uudecode -o /dev/stdout" "a" "" \
+	"begin 744 test\n!80  \n\`\nend\n"
+testing "uudecode uu 2-char" "uudecode -o /dev/stdout" "ab" "" \
+	"begin 744 test\n\"86( \n\`\nend\n"
+testing "uudecode uu 3-char" "uudecode -o /dev/stdout" "abc" "" \
+	"begin 744 test\n#86)C\n\`\nend\n" 
+
+testing "uudecode b64 empty file" "uudecode -o /dev/stdout && echo yes" \
+        "yes\n" "" "begin-base64 744 test\n====\n" 
+testing "uudecode b64 1-char" "uudecode -o /dev/stdout" "a" "" \
+	"begin-base64 744 test\nYQ==\n====\n"
+testing "uudecode b64 2-char" "uudecode -o /dev/stdout" "ab" "" \
+	"begin-base64 744 test\nYWI=\n====\n"
+testing "uudecode b64 3-char" "uudecode -o /dev/stdout" "abc" "" \
+	"begin-base64 744 test\nYWJj\n====\n"
+
+testing "uudecode filename" "uudecode && echo -ne 'abc' | cmp uudecode-fn-test /dev/stdin && echo -ne yes && rm uudecode-fn-test" \
+	"yes" "" "begin-base64 744 uudecode-fn-test\nYWJj\n====\n"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/uuencode.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "uuencode not enough args [fail]" "uuencode 2>/dev/null" "" "" ""
+
+testing "uuencode uu empty file" "uuencode test" \
+	"begin 744 test\nend\n" "" "" 
+testing "uuencode uu 1-char" "uuencode test" \
+	"begin 744 test\n!80\`\`\nend\n" "" "a" 
+testing "uuencode uu 2-char" "uuencode test" \
+	"begin 744 test\n\"86(\`\nend\n" "" "ab" 
+testing "uuencode uu 3-char" "uuencode test" \
+	"begin 744 test\n#86)C\nend\n" "" "abc" 
+
+testing "uuencode b64 empty file" "uuencode -m test" \
+	"begin-base64 744 test\n====\n" "" "" 
+testing "uuencode b64 1-char" "uuencode -m test" \
+	"begin-base64 744 test\nYQ==\n====\n" "" "a" 
+testing "uuencode b64 2-char" "uuencode -m test" \
+	"begin-base64 744 test\nYWI=\n====\n" "" "ab" 
+testing "uuencode b64 3-char" "uuencode -m test" \
+	"begin-base64 744 test\nYWJj\n====\n" "" "abc" 
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/wc.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+cat >file1 <<EOF
+some words	. 
+
+some
+lines
+EOF
+
+testing "wc" "wc >/dev/null && echo yes" "yes\n" "" ""
+testing "wc empty file" "wc" "0 0 0\n" "" ""
+testing "wc standard input" "wc" "1 3 5\n" "" "a b\nc"
+testing "wc -c" "wc -c file1" "26 file1\n" "" ""
+testing "wc -l" "wc -l file1" "4 file1\n" "" ""
+testing "wc -w" "wc -w file1" "5 file1\n" "" ""
+testing "wc format" "wc file1" "4 5 26 file1\n" "" ""
+testing "wc multiple files" "wc input - file1" \
+        "1 2 3 input\n0 2 3 -\n4 5 26 file1\n5 9 32 total\n" "a\nb" "a b"
+
+optional TOYBOX_I18N
+
+#Tests for wc -m
+if printf "%s" "$LANG" | grep -q UTF-8
+then
+
+printf " " > file1
+for i in $(seq 1 8192)
+do
+  printf "ü" >> file1
+done
+testing "wc -m" "wc -m file1" "8193 file1\n" "" ""
+printf " " > file1
+for i in $(seq 1 8192)
+do
+  printf "ü" >> file1
+done
+testing "wc -m (invalid chars)" "wc -m file1" "8193 file1\n" "" ""
+testing "wc -mlw" "wc -mlw input" "1 2 11 input\n" "hello, 世界!\n" ""
+
+else
+printf "skipping tests for wc -m"
+fi
+
+rm file1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/xargs.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+
+testing "xargs" "xargs && echo yes" "hello\nyes\n" "" "hello"
+testing "xargs spaces" "xargs" \
+	"one two three four\n" "" "one two\tthree  \nfour\n\n"
+
+testing "xargs -n 0" "xargs -n 0 2>/dev/null || echo ok" "ok\n" \
+	"" "one \ntwo\n three"
+testing "xargs -n 2" "xargs -n 2" "one two\nthree\n" "" "one \ntwo\n three"
+testing "xargs -n exact match" "xargs -n 3" "one two three\n" "" "one two three"
+testing "xargs2" "xargs -n2" "one two\nthree four\nfive\n" "" \
+	"one two three four five"
+testing "xargs -s too long" "xargs -s 9 echo 2>/dev/null || echo ok" \
+	"one\ntwo\nok\n" "" "one two three"
+testing "xargs -s 13" "xargs -s 13 echo" "one two\nthree\n" "" "one \ntwo\n three"
+testing "xargs -s 12" "xargs -s 12 echo" "one\ntwo\nthree\n" "" "one \ntwo\n three"
+
+touch one two three
+testing "xargs command -opt" "xargs -n2 ls -1" "one\ntwo\nthree\n" "" \
+	"one two three"
+rm one two three
+
+exit
+
+testing "xargs -n exact match"
+testing "xargs -s exact match"
+testing "xargs -s 0"
+testing "xargs -s impossible"
+
+# xargs command_not_found - returns 127
+# xargs false - returns 1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/xzcat.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+echo "hello" > file
+tar -cJf file.xz file
+# Get system xzcat
+xzcatExe=`which xzcat`
+$xzcatExe file.xz > xzcatOut
+testing "xzcat - decompresses a single file" "xzcat file.xz > Tempfile && echo "yes"; diff Tempfile xzcatOut && echo "yes"; rm -rf file* xzcatOut Tempfile" "yes\nyes\n" "" ""
+
+#testing "name" "command" "result" "infile" "stdin"
+echo "hello" > file1
+echo "hi" > file2
+echo "Hi, Good morning !! I am a xzcat tester" > file3
+tar -cJf file1.xz file1
+tar -cJf file2.xz file2
+tar -cJf file3.xz file3
+# Get system xzcat
+xzcatExe=`which xzcat`
+$xzcatExe file1.xz file2.xz file3.xz > xzcatOut
+testing "xzcat - decompresses multiple files" "xzcat file1.xz file2.xz file3.xz > Tempfile && echo "yes" ; diff Tempfile xzcatOut && echo "yes"; rm -rf file* xzcatOut Tempfile " "yes\nyes\n" "" ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/zcat.test	Sat Sep 20 13:09:14 2014 -0500
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# Copyright 2014 Divya Kothari <divya.s.kothari@gmail.com>
+# Copyright 2014 Naha Maggu <maggu.neha@gmail.com>
+
+[ -f testing.sh ] && . testing.sh
+
+#testing "name" "command" "result" "infile" "stdin"
+echo "hello" > file
+tar -czf file.gz file
+# Get system zcat
+zcatExe=`which zcat`
+$zcatExe file.gz > zcatOut
+testing "zcat - decompresses a single file" "zcat file.gz > Tempfile && echo "yes"; diff Tempfile zcatOut && echo "yes"; rm -rf file* zcatOut Tempfile" "yes\nyes\n" "" ""
+
+#testing "name" "command" "result" "infile" "stdin"
+echo "hello" > file1
+echo "hi" > file2
+echo "Hi, Good morning !! I am a bzcat tester" > file3
+tar -czf file1.gz file1
+tar -czf file2.gz file2
+tar -czf file3.gz file3
+# Get system zcat
+zcatExe=`which zcat`
+$zcatExe file1.gz file2.gz file3.gz > zcatOut
+testing "zcat - decompresses multiple files" "zcat file1.gz file2.gz file3.gz > Tempfile && echo "yes" ; diff Tempfile zcatOut && echo "yes"; rm -rf file* zcatOut Tempfile " "yes\nyes\n" "" ""