Whamcloud - gitweb
tests: skip m_rootdir_acl on GNU Hurd
[tools/e2fsprogs.git] / tests / m_rootdir_acl / script
1 test_description="create fs image from dir using inline_data and acls"
2 if ! test -x $DEBUGFS_EXE; then
3         echo "$test_name: $test_description: skipped (no debugfs)"
4         return 0
5 fi
6
7 if ! setfacl --help > /dev/null 2>&1 ; then
8         echo "$test_name: $test_description: skipped (no setfacl)"
9         return 0
10 fi
11
12 os=$(uname -s)
13 if [ "$os" = "GNU" ]; then
14         # requires Posix ACL support
15         echo "$test_name: $test_description: skipped for $os"
16         return 0
17 fi
18
19 MKFS_DIR=$TMPFILE.dir
20 OUT=$test_name.log
21 EXP=$test_dir/expect
22
23 rm -rf $MKFS_DIR
24 mkdir -p $MKFS_DIR
25 touch $MKFS_DIR/emptyfile
26 dd if=/dev/zero bs=1024 count=32 2> /dev/null | tr '\0' 'a' > $MKFS_DIR/bigfile
27 echo "M" | dd of=$MKFS_DIR/sparsefile bs=1 count=1 seek=1024 2> /dev/null
28 echo "M" | dd of=$MKFS_DIR/sparsefile bs=1 count=1 seek=524288 conv=notrunc 2> /dev/null
29 echo "M" | dd of=$MKFS_DIR/sparsefile bs=1 count=1 seek=1048576 conv=notrunc 2> /dev/null
30 echo "M" | dd of=$MKFS_DIR/sparsefile bs=1 count=1 seek=536870912 conv=notrunc 2> /dev/null
31 echo "M" | dd of=$MKFS_DIR/sparsefile bs=1 count=1 seek=1073741824 conv=notrunc 2> /dev/null
32 dd if=/dev/zero of=$MKFS_DIR/bigzerofile bs=1 count=1 seek=1073741824 2> /dev/null
33 ln $MKFS_DIR/bigzerofile $MKFS_DIR/bigzerofile_hardlink
34 ln -s /silly_bs_link $MKFS_DIR/silly_bs_link
35 mkdir $MKFS_DIR/emptydir
36 mkdir $MKFS_DIR/dir
37 echo "Test me" > $MKFS_DIR/dir/file
38 mkdir $MKFS_DIR/acl_dir
39 echo "Test me 2" > $MKFS_DIR/acl_dir/file
40
41 setfacl --restore=- <<EOF
42 # file: $MKFS_DIR/acl_dir
43 user::rwx
44 group::r-x
45 group:42:r-x
46 mask::r-x
47 other::r-x
48 default:user::rwx
49 default:group::r-x
50 default:group:4:r-x
51 default:mask::r-x
52 default:other::r-x
53 EOF
54 setfacl --restore=- <<EOF
55 # file: $MKFS_DIR/acl_dir/file
56 user::rwx
57 group::r-x
58 group:42:r-x
59 mask::r-x
60 other::r-x
61 EOF
62
63 $MKE2FS -q -F -o Linux -T ext4 -O metadata_csum,inline_data,64bit -E lazy_itable_init=1 -b 1024 -d $MKFS_DIR $TMPFILE 16384 > $OUT 2>&1
64
65 $DUMPE2FS $TMPFILE >> $OUT 2>&1
66 cat > $TMPFILE.cmd << ENDL
67 stat /emptyfile
68 stat /bigfile
69 stat /sparsefile
70 stat /bigzerofile
71 stat /fifo
72 stat /emptydir
73 stat /dir
74 stat /dir/file
75 stat /acl_dir
76 stat /acl_dir/file
77 ENDL
78 $DEBUGFS -f $TMPFILE.cmd $TMPFILE 2>&1 | egrep "(stat|Size:|Type:)" >> $OUT
79
80 cat > $TMPFILE.cmd << ENDL
81 ea_list dir/file
82 ea_list acl_dir
83 ea_list acl_dir/file
84 ENDL
85 $DEBUGFS -f $TMPFILE.cmd $TMPFILE >> $OUT 2>&1
86
87 $FSCK -f -n $TMPFILE >> $OUT 2>&1
88
89 sed -f $cmd_dir/filter.sed -f $test_dir/output.sed -e "s;$TMPFILE;test.img;" < $OUT > $OUT.tmp
90 mv $OUT.tmp $OUT
91
92 # Do the verification
93 cmp -s $OUT $EXP
94 status=$?
95
96 if [ "$status" = 0 ] ; then
97         echo "$test_name: $test_description: ok"
98         touch $test_name.ok
99 else
100         echo "$test_name: $test_description: failed"
101         diff $DIFF_OPTS $EXP $OUT > $test_name.failed
102 fi
103
104 rm -rf $TMPFILE.cmd $MKFS_DIR
105 unset MKFS_DIR OUT EXP