Divya Kothari | ef0ed68 | 2014-07-04 21:20:02 -0500 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com> |
| 4 | # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com> |
| 5 | |
| 6 | [ -f testing.sh ] && . testing.sh |
| 7 | |
| 8 | #testing "name" "command" "result" "infile" "stdin" |
| 9 | |
| 10 | root_fs=`df | grep "\/$" | awk '{print $1}'` |
| 11 | root_fs_type=`file -sL $root_fs | awk '{print $5}'` |
| 12 | |
| 13 | tmp_b_fs="tmp_b_fs" |
| 14 | tmp_b_fs_type="ext3" |
| 15 | |
| 16 | reCreateTmpFs() { |
| 17 | rm -rf $tmp_b_fs |
| 18 | mknod $tmp_b_fs b 1 0 |
| 19 | mkfs.ext3 $tmp_b_fs >/dev/null 2>&1 |
| 20 | } |
| 21 | reCreateTmpFs |
| 22 | |
| 23 | testing "mount $root_fs /mnt" \ |
| 24 | "mount $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 25 | sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" "" |
| 26 | testing "mount $tmp_b_fs /mnt" \ |
| 27 | "mount $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 28 | sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" "" |
| 29 | reCreateTmpFs |
| 30 | |
| 31 | chmod 444 /mnt |
| 32 | testing "mount $root_fs /mnt (read_only dir)" \ |
| 33 | "mount $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 34 | sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" "" |
| 35 | testing "mount $tmp_b_fs /mnt (read_only dir)" \ |
| 36 | "mount $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 37 | sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" "" |
| 38 | reCreateTmpFs |
| 39 | chmod 755 /mnt |
| 40 | testing "mount -w $root_fs /mnt (write_only mode)" \ |
| 41 | "mount -w $root_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 42 | sleep 1 && umount /mnt && test -e /testDir && rmdir /testDir" "" "" "" |
| 43 | testing "mount -w $tmp_b_fs /mnt (write_only mode)" \ |
| 44 | "mount -w $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 45 | sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" "" |
| 46 | reCreateTmpFs |
| 47 | testing "mount -rw $tmp_b_fs /mnt (read_write mode)" \ |
| 48 | 'mount -rw $tmp_b_fs /mnt >/dev/null && mkdir /mnt/testDir && \ |
| 49 | sleep 1 && ! test -e /mnt/testDir && umount /mnt' "" "" "" |
| 50 | reCreateTmpFs |
| 51 | testing "mount $tmp_b_fs /mnt -t fs_type" \ |
| 52 | "mount $tmp_b_fs /mnt -t $tmp_b_fs_type >/dev/null 2>&1 && |
| 53 | mkdir /mnt/testDir && sleep 1 && umount /mnt && |
| 54 | ! test -e /mnt/testDir" "" "" "" |
| 55 | reCreateTmpFs |
| 56 | mkdir -p testDir1/testDir2 testDir |
| 57 | echo "abcdefghijklmnopqrstuvwxyz" > testDir1/testDir2/testFile |
| 58 | testing "mount -o bind dir1 dir2" \ |
| 59 | 'mount -o bind testDir1 testDir >/dev/null 2>&1 && \ |
| 60 | cat testDir/testDir2/testFile && sleep 1 && umount testDir' \ |
| 61 | "abcdefghijklmnopqrstuvwxyz\n" "" "" |
| 62 | testing "mount -o rbind dir1 dir2" \ |
| 63 | 'mount -o rbind testDir1 testDir >/dev/null 2>&1 && \ |
| 64 | cat testDir/testDir2/testFile && sleep 1 && umount testDir' \ |
| 65 | "abcdefghijklmnopqrstuvwxyz\n" "" "" |
| 66 | testing "mount -o loop $tmp_b_fs /mnt" \ |
| 67 | "mount -o loop $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDirp && |
| 68 | sleep 1 && umount -d /mnt && ! test -e /mnt/testDirp" "" "" "" |
| 69 | reCreateTmpFs |
| 70 | |
| 71 | mkdir testDir2 |
| 72 | testing "mount -o move mount_1 mount_2" \ |
| 73 | "mount $tmp_b_fs testDir1 && mkdir testDir1/testDirr && |
| 74 | mount -o move testDir1 testDir2 && test -r testDir2/testDirr && |
| 75 | sleep 1 && umount testDir2" "" "" "" |
| 76 | reCreateTmpFs |
| 77 | testing "mount -o rw $tmp_b_fs /mnt" \ |
| 78 | "mount -o rw $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir && |
| 79 | sleep 1 && umount /mnt && ! test -e /mnt/testDir" "" "" "" |
| 80 | reCreateTmpFs |
| 81 | testing "mount -o ro $tmp_b_fs /mnt" \ |
| 82 | "mount -o ro $tmp_b_fs /mnt >/dev/null 2>&1 && |
| 83 | mkdir /mnt/testDir 2>/dev/null || sleep 1 && umount /mnt" "" "" "" |
| 84 | reCreateTmpFs |
| 85 | |
| 86 | umount testDir1 |
| 87 | rm -f $tmp_b_fs |