t_nullmnt.sh revision 1.9
1# find where everything lives 2 3curdir=$(pwd) 4helper=$(atf_get_srcdir)/h_nullmnt 5 6# helper function to check for kernel support 7have_nullfs_support() 8{ 9 for t in $( sysctl -n vfs.generic.fstypes ) 10 do 11 case "$t" in 12 null) return 0;; 13 esac 14 done 15 16 return 1 17} 18 19# common test body 20# $1 = directory of file to monitor 21# $2 = directory of file to update/modify 22 23nullmnt_common() 24{ 25 if ! have_nullfs_support; then 26 atf_skip "nullfs not supported" 27 fi 28 29 mkdir ${curdir}/lower_dir 30 mkdir ${curdir}/upper_dir 31 mount -t null ${curdir}/lower_dir ${curdir}/upper_dir || \ 32 atf_fail "could not mount nullfs" 33 rm -f ${curdir}/lower_dir/afile 34 touch ${curdir}/lower_dir/afile 35 36 atf_check -e ignore -o ignore -s exit:0 \ 37 ${helper} ${curdir}/${1}/afile ${curdir}/${2}/afile 38} 39 40nullmnt_common_cleanup() 41{ 42 curdir=$(pwd) 43 umount ${curdir}/upper_dir 44 rm -rf ${curdir}/lower_dir ${curdir}/upper_dir 45} 46 47atf_test_case nullmnt_upper_lower cleanup 48nullmnt_upper_lower_head() 49{ 50 atf_set "descr" "ensure upper fs events seen on lower fs" 51 atf_set "require.user" "root" 52} 53nullmnt_upper_lower_body() 54{ 55 nullmnt_common lower_dir upper_dir 56} 57nullmnt_upper_lower_cleanup() 58{ 59 nullmnt_common_cleanup 60} 61 62atf_test_case nullmnt_upper_upper cleanup 63nullmnt_upper_upper_head() 64{ 65 atf_set "descr" "ensure upper fs events seen on upper fs" 66 atf_set "require.user" "root" 67} 68nullmnt_upper_upper_body() 69{ 70 nullmnt_common upper_dir upper_dir 71} 72nullmnt_upper_upper_cleanup() 73{ 74 nullmnt_common_cleanup 75} 76atf_test_case nullmnt_lower_upper cleanup 77nullmnt_lower_upper_head() 78{ 79 atf_set "descr" "ensure lower fs events seen on upper fs" 80 atf_set "require.user" "root" 81} 82nullmnt_lower_upper_body() 83{ 84 nullmnt_common upper_dir lower_dir 85} 86nullmnt_lower_upper_cleanup() 87{ 88 nullmnt_common_cleanup 89} 90 91atf_test_case nullmnt_lower_lower cleanup 92nullmnt_lower_lower_head() 93{ 94 atf_set "descr" "ensure lower fs events seen on lower fs" 95 atf_set "require.user" "root" 96} 97nullmnt_lower_lower_body() 98{ 99 nullmnt_common lower_dir lower_dir 100} 101nullmnt_lower_lower_cleanup() 102{ 103 nullmnt_common_cleanup 104} 105 106atf_init_test_cases() 107{ 108 atf_add_test_case nullmnt_upper_upper 109 atf_add_test_case nullmnt_upper_lower 110 atf_add_test_case nullmnt_lower_upper 111 atf_add_test_case nullmnt_lower_lower 112} 113