# HG changeset patch # User Divya Kothari # Date 1409769152 18000 # Node ID 5d51c5d6df72982e621593e32642f0a5e466665f # Parent 70f5188b48488e2dc15a7c3f777515576c5d1c93 chmod testsuite and link testsuite. Chmod ? In this testsuite after change file mode bits, we are comparing file mode with expected ones. One additional "." is coming with modes (actual result). That?s why test cases are getting failed. This patch will remove additional "." from actual result. Link ? Added more test cases. diff -r 70f5188b4848 -r 5d51c5d6df72 scripts/test/chmod.test --- a/scripts/test/chmod.test Mon Sep 01 12:47:32 2014 -0500 +++ b/scripts/test/chmod.test Wed Sep 03 13:32:32 2014 -0500 @@ -40,7 +40,7 @@ fi DASHES=$(num2perm $u$g$o) testing "chmod $u$g$o $type" "chmod $u$g$o $type && - ls -ld $type | cut -d' ' -f 1" "$DASH$DASHES\n" "" "" + ls -ld $type | cut -d' ' -f 1 | cut -d. -f 1" "$DASH$DASHES\n" "" "" done done done @@ -48,197 +48,197 @@ 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" "drwxr-x---\n-rwxr-x---\n" "" "" + 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" "drw-rw-rw-\n-rw-rw-rw-\n" "" "" + 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" "drwxrw-r-x\n-rwxrw-r-x\n" "" "" + 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" "dr--r-xr-x\n-r--r--r--\n" "" "" + 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" "d-w-r-xr-x\n--w-r--r--\n" "" "" + 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" "d--xr-xr-x\n---xr--r--\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xr-x\n-rwxr--r--\n" "" "" + 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" "d-wxr-xr-x\n--w-r--r--\n" "" "" + 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" "dr-xr-xr-x\n-r--r--r--\n" "" "" + 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" "drw-r-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr--r-x\n-rw-r--r--\n" "" "" + 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" "drwx-w-r-x\n-rw--w-r--\n" "" "" + 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" "drwx--xr-x\n-rw---xr--\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxrwxr-x\n-rw-rw-r--\n" "" "" + 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" "drwxr-xr-x\n-rw-r-xr--\n" "" "" + 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" "drwx--xr-x\n-rw----r--\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr--r-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xr--\n-rw-r--r--\n" "" "" + 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" "drwxr-x-w-\n-rw-r---w-\n" "" "" + 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" "drwxr-x--x\n-rw-r----x\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xrwx\n-rw-r--rw-\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r-x\n" "" "" + 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" "drwxr-x--x\n-rw-r-----\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xr--\n-rw-r--r--\n" "" "" + 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" "dr--r--r--\n-r--r--r--\n" "" "" + 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" "d-w--w--w-\n--w--w--w-\n" "" "" + 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" "d--x--x--x\n---x--x--x\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxrwxrwx\n-rw-rw-rw-\n" "" "" + 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" "drwxr-xr-x\n-rwxr-xr-x\n" "" "" + 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" "d-wx--x--x\n--w-------\n" "" "" + 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" "dr-xr-xr-x\n-r--r--r--\n" "" "" + 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" "drw-r--r--\n-rw-r--r--\n" "" "" + 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" "dr--r--r--\n-r--r--r--\n" "" "" + 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" "d-w-------\n--w-------\n" "" "" + 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" "d--x--x--x\n---x--x--x\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xr-x\n-rw-r--r--\n" "" "" + 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" "drwxr-xr-x\n-rwxr-xr-x\n" "" "" + 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" "d-wx--x--x\n--w-------\n" "" "" + 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" "dr-xr-xr-x\n-r--r--r--\n" "" "" + 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" "drw-r--r--\n-rw-r--r--\n" "" "" + 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 diff -r 70f5188b4848 -r 5d51c5d6df72 scripts/test/link.test --- a/scripts/test/link.test Mon Sep 01 12:47:32 2014 -0500 +++ b/scripts/test/link.test Wed Sep 03 13:32:32 2014 -0500 @@ -1,8 +1,26 @@ #!/bin/bash -[ -e testing.sh ] && . testing.sh +# Copyright 2014 Divya Kothari +# Copyright 2014 Naha Maggu + +[ -f testing.sh ] && . testing.sh + +#testing "name" "command" "result" "infile" "stdin" echo "" >foo -testing "link has same inode" "link foo bar && stat -c '%DI%i bar'" "stat -c '%DI%i' 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" "" ""