Last active
May 2, 2017 05:01
-
-
Save jamesalbert/7d809b78ce4c4421db9594cdba0af048 to your computer and use it in GitHub Desktop.
test hw3 part 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bats | |
if [ -z $TRASH ]; then | |
echo '$TRASH must be defined' | |
exit 1 | |
fi | |
trashdir=$TRASH | |
function finish { | |
trash > /dev/null | |
rm -rf testdir* testfile* | |
} | |
trap finish EXIT | |
create_trash () { | |
echo "creating 1000 files in $1" | |
for i in `seq 1 1000` | |
do | |
dd if=/dev/zero of="$1"/testfile_"$i"_byte.trash bs=1 count=1 > /dev/null 2>&1 | |
done | |
} | |
@test "srm shuffled files and directories mixed" { | |
rm -rf $trashdir/* | |
for i in `seq 1 1000` | |
do | |
mkdir testdir"$i" | |
done | |
create_trash . | |
trash=(testdir* testfile*) | |
echo "srm `shuf -e ${trash[@]} | tr '\n' ' '`" | sh | |
echo "$(ls -l $trashdir | wc -l)" | |
[ $(ls -l $trashdir | wc -l) -eq 2001 ] | |
} | |
@test "lsrm shuffled files and directories mixed" { | |
[ $(lsrm | wc -l) -eq 2001 ] | |
} | |
@test "durm shuffled files and directories mixed" { | |
echo `durm` | grep "4156 kilobytes" | grep "4000 kilobytes" | |
[ "$?" -eq 0 ] | |
} | |
@test "unrm shuffled files and directories mixed" { | |
trash=($(find $trashdir/testdir* $trashdir/testfile* -printf "%f\n")) | |
echo "unrm `shuf -e ${trash[@]} | tr '\n' ' '`" | sh | |
[ "$?" -eq 0 ] | |
[ $(lsrm | wc -l) -eq 1 ] | |
echo "stat --printf='' $(echo testfile_{`seq 1 1000 | tr '\n' ', ' | sed 's/.$//'`}_byte.trash) 2>/dev/null" | sh | |
[ "$?" -eq 0 ] | |
echo "stat --printf='' $(echo testdir{`seq 1 1000 | tr '\n' ', ' | sed 's/.$//'`}) 2>/dev/null" | sh | |
[ "$?" -eq 0 ] | |
} | |
@test "trash shuffled files and directories mixed" { | |
trash=(testdir* testfile*) | |
echo "srm `shuf -e ${trash[@]} | tr '\n' ' '`" | sh | |
trash | |
[ $(lsrm | wc -l) -eq 1 ] | |
} | |
@test "srm a single file" { | |
echo "hello" > testfile | |
srm testfile | |
[ $(ls -l $trashdir | wc -l) -eq 2 ] | |
} | |
@test "lsrm a single file" { | |
[ $(lsrm | wc -l) -eq 2 ] | |
} | |
@test "durm a single file" { | |
echo `durm` | |
echo `durm` | grep "0 kilobytes" | grep "156 kilobytes" | |
[ "$?" -eq 0 ] | |
} | |
@test "unrm a single file" { | |
unrm testfile | |
[ "$?" -eq 0 ] | |
[ $(lsrm | wc -l) -eq 1 ] | |
[ -f testfile ] | |
} | |
@test "trash a single file" { | |
srm testfile | |
trash | |
[ $(lsrm | wc -l) -eq 1 ] | |
[ ! -f testfile ] | |
} | |
@test "srm a single directory" { | |
mkdir testdir | |
create_trash testdir | |
srm testdir | |
[ -d $trashdir/testdir ] | |
[ $(ls -l $trashdir/testdir | wc -l) -eq 1001 ] | |
} | |
@test "lsrm a single directory" { | |
[ $(lsrm | wc -l) -eq 2 ] | |
} | |
@test "durm a single directory" { | |
echo `durm` | |
echo `durm` | grep "80 kilobytes" | grep "236 kilobytes" | |
[ "$?" -eq 0 ] | |
} | |
@test "unrm a single directory" { | |
unrm testdir | |
[ "$?" -eq 0 ] | |
[ $(lsrm | wc -l) -eq 1 ] | |
[ -d testdir ] | |
} | |
@test "trash a single directory" { | |
srm testdir | |
trash | |
[ $(lsrm | wc -l) -eq 1 ] | |
[ ! -d testdir ] | |
} | |
@test "srm multiple files" { | |
create_trash . | |
srm testfile* | |
[ $(ls -l $trashdir | wc -l) -eq 1001 ] | |
} | |
@test "lsrm multiple files" { | |
[ $(lsrm | wc -l) -eq 1001 ] | |
} | |
@test "durm multiple files" { | |
echo `durm` | |
echo `durm` | grep "0 kilobytes" | grep "156 kilobytes" | |
[ "$?" -eq 0 ] | |
} | |
@test "unrm multiple files" { | |
unrm testfile_{1,500,995}_byte.trash | |
[ "$?" -eq 0 ] | |
[ $(lsrm | wc -l) -eq 998 ] | |
[ -f testfile_1_byte.trash ] | |
[ -f testfile_500_byte.trash ] | |
[ -f testfile_995_byte.trash ] | |
} | |
@test "trash multiple files" { | |
srm testfile_{1,500,995}_byte.trash | |
trash | |
[ $(lsrm | wc -l) -eq 1 ] | |
} | |
@test "srm multiple directories" { | |
mkdir testdir testdir2 | |
create_trash testdir | |
create_trash testdir2 | |
srm testdir testdir2 | |
[ $(ls -l $trashdir/testdir | wc -l) -eq 1001 ] | |
[ $(ls -l $trashdir/testdir | wc -l) -eq 1001 ] | |
} | |
@test "lsrm multiple directories" { | |
[ $(lsrm | wc -l) -eq 3 ] | |
} | |
@test "durm multiple directories" { | |
echo `durm` | |
echo `durm` | grep "160 kilobytes" | grep "316 kilobytes" | |
[ "$?" -eq 0 ] | |
} | |
@test "unrm multiple directories" { | |
unrm testdir testdir2 | |
[ "$?" -eq 0 ] | |
[ $(lsrm | wc -l) -eq 1 ] | |
[ -d testdir ] | |
[ -d testdir2 ] | |
} | |
@test "trash multiple directories" { | |
srm testdir* | |
trash | |
[ $(lsrm | wc -l) -eq 1 ] | |
[ ! -d testdir ] | |
[ ! -d testdir2 ] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment