Divya Kothari | a0f56be | 2014-06-26 07:25:20 -0500 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com> |
| 4 | # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com> |
| 5 | |
| 6 | [ -f testing.sh ] && . testing.sh |
| 7 | |
| 8 | #testing "name" "command" "result" "infile" "stdin" |
| 9 | |
| 10 | touch file |
| 11 | testing "Move old_file to new_file" "mv file file1 && [ ! -e file -a -f file1 ] && |
| 12 | echo 'yes'" "yes\n" "" "" |
| 13 | rm -f file* |
| 14 | |
| 15 | touch file |
| 16 | mkdir dir |
| 17 | testing "Move file to a dir" "mv file dir && [ ! -e file -a -f dir/file ] && |
| 18 | echo 'yes'" "yes\n" "" "" |
| 19 | rm -rf file* dir* |
| 20 | |
| 21 | mkdir dir |
| 22 | testing "Move old_dir to new_dir" "mv dir dir1 && [ ! -e dir -a -d dir1 ] && |
| 23 | echo 'yes'" "yes\n" "" "" |
| 24 | rm -rf dir* |
| 25 | |
| 26 | mkdir dir1 dir2 |
| 27 | touch file1 file2 dir1/file3 |
| 28 | ln -s file1 link1 |
| 29 | testing "Move multiple files/dir to a dir" "mv file1 file2 link1 dir1 dir2 && |
| 30 | [ ! -e file1 -a ! -e file2 -a ! -e link1 -a ! -e dir1 ] && |
| 31 | [ -f dir2/file1 -a -f dir2/file2 -a -L dir2/link1 -a -d dir2/dir1 ] && |
| 32 | [ -f dir2/dir1/file3 ] && readlink dir2/link1" "file1\n" "" "" |
| 33 | rm -rf file* link* dir* |
| 34 | |
| 35 | touch file1 |
| 36 | testing "Move a empty file to new_file" "mv file1 file2 && |
| 37 | [ ! -e file1 -a -f file2 ] && stat -c %s file2" "0\n" "" "" |
| 38 | rm -rf file* |
| 39 | |
| 40 | mkdir dir1 |
| 41 | testing "Move enpty dir to new_dir" "mv dir1 dir2 && |
| 42 | [ ! -d dir1 -a -d dir2 ] && echo 'yes'" "yes\n" "" "" |
| 43 | rm -rf dir* |
| 44 | |
| 45 | dd if=/dev/zero of=file1 seek=10k count=1 >/dev/null 2>&1 |
| 46 | testing "Move file new_file (random file)" "mv file1 file2 && |
| 47 | [ ! -e file1 -a -f file2 ] && stat -c %s file2" "5243392\n" "" "" |
| 48 | rm -f file* |
| 49 | |
| 50 | touch file1 |
| 51 | ln -s file1 link1 |
| 52 | testing "Move link new_link (softlink)" "mv link1 link2 && |
| 53 | [ ! -e link1 -a -L link2 ] && readlink link2" "file1\n" "" "" |
| 54 | unlink tLink2 &>/dev/null |
| 55 | rm -f file* link* |
| 56 | |
| 57 | touch file1 |
| 58 | ln file1 link1 |
| 59 | testing "Move link new_link (hardlink)" "mv link1 link2 && |
| 60 | [ ! -e link1 -a -f link2 -a file1 -ef link2 ] && echo 'yes'" "yes\n" "" "" |
| 61 | unlink link2 &>/dev/null |
| 62 | rm -f file* link* |
| 63 | |
| 64 | touch file1 |
| 65 | chmod a-r file1 |
| 66 | testing "Move file new_file (unreadable)" "mv file1 file2 && |
| 67 | [ ! -e file1 -a -f file2 ] && echo 'yes'" "yes\n" "" "" |
| 68 | rm -f file* |
| 69 | |
| 70 | touch file1 |
| 71 | ln file1 link1 |
| 72 | mkdir dir1 |
| 73 | testing "Move file link dir (hardlink)" "mv file1 link1 dir1 && |
| 74 | [ ! -e file1 -a ! -e link1 -a -f dir1/file1 -a -f dir1/link1 ] && |
| 75 | [ dir1/file1 -ef dir1/link1 ] && echo 'yes'" "yes\n" "" "" |
| 76 | rm -rf file* link* dir* |
| 77 | |
| 78 | mkdir -p dir1/dir2 dir3 |
| 79 | touch dir1/dir2/file1 dir1/dir2/file2 |
| 80 | testing "Move dir1/dir2 dir3/new_dir" "mv dir1/dir2 dir3/dir4 && |
| 81 | [ ! -e dir1/dir2 -a -d dir3/dir4 -a -f dir3/dir4/file1 ] && |
| 82 | [ -f dir3/dir4/file2 ] && echo 'yes'" "yes\n" "" "" |
| 83 | rm -rf file* dir* |
| 84 | |
| 85 | mkdir dir1 dir2 |
| 86 | testing "Move dir new_dir (already exist)" "mv dir1 dir2 && |
| 87 | [ ! -e dir1 -a -d dir2/dir1 ] && echo 'yes'" "yes\n" "" "" |
| 88 | rm -rf dir* |
| 89 | |
| 90 | touch file1 file2 |
| 91 | testing "Move -f file new_file (exist)" "mv -f file1 file2 && |
| 92 | [ ! -e file1 -a -e file2 ] && echo 'yes'" "yes\n" "" "" |
| 93 | rm -f file* |
| 94 | |
| 95 | touch file1 file2 |
| 96 | testing "Move -n file new_file (exist)" "mv -n file1 file2 && |
| 97 | [ -e file1 -a -e file2 ] && echo 'yes'" "yes\n" "" "" |
| 98 | rm -f file* |