5 # Check behavior of chown with both user and group quota enabled,
6 # and changing both user and group together via chown(2).
8 #-----------------------------------------------------------------------
9 # Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
11 # This program is free software; you can redistribute it and/or modify it
12 # under the terms of version 2 of the GNU General Public License as
13 # published by the Free Software Foundation.
15 # This program is distributed in the hope that it would be useful, but
16 # WITHOUT ANY WARRANTY; without even the implied warranty of
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 # Further, this software is distributed without any warranty that it is
20 # free of the rightful claim of any third person regarding infringement
21 # or the like. Any license provided herein, whether implied or
22 # otherwise, applies only to this software file. Patent licenses, if
23 # any, provided herein do not apply to combinations of this program with
24 # other software, or any other product whatsoever.
26 # You should have received a copy of the GNU General Public License along
27 # with this program; if not, write the Free Software Foundation, Inc., 59
28 # Temple Place - Suite 330, Boston MA 02111-1307, USA.
30 # Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
31 # Mountain View, CA 94043, or:
35 # For further information regarding this notice, see:
37 # http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
38 #-----------------------------------------------------------------------
44 echo "QA output created by $seq"
48 status=1 # failure is the default!
50 # get standard environment, filters and checks
57 umount $SCRATCH_MNT 2>/dev/null
60 trap "_cleanup; exit \$status" 0 1 2 3 15
61 cp /dev/null $seq.full
62 chmod ugo+rwx $seq.full
72 s/Device: *[0-9][0-9]*,[0-9][0-9]*/Device: <DEVICE>/;
73 s/Inode: *[0-9][0-9]*/Inode: <INODE>/;
74 s,$SCRATCH_MNT,<MOUNT>,;
80 mkfs -t xfs -f $SCRATCH_DEV >/dev/null 2>&1
84 touch $SCRATCH_MNT/testfile
85 if src/feature -c $SCRATCH_MNT/testfile; then
86 _notrun "Installed fileutils doesn't support 32 bit uids/gids"
89 chown 12345 $SCRATCH_MNT/testfile
90 chgrp 54321 $SCRATCH_MNT/testfile
91 src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
93 chown 34567 $SCRATCH_MNT/testfile
94 chgrp 76543 $SCRATCH_MNT/testfile
95 src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
97 chown 56789 $SCRATCH_MNT/testfile
98 chgrp 98765 $SCRATCH_MNT/testfile
99 src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
101 # finally give back to original owners
102 chown 12345 $SCRATCH_MNT/testfile
103 chgrp 54321 $SCRATCH_MNT/testfile
104 src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
107 umount $SCRATCH_MNT 2>/dev/null
110 # real QA test starts here
111 mkfs -t xfs -f $SCRATCH_DEV >/dev/null 2>&1
112 MOUNT_OPTIONS="-o usrquota,grpquota"; export MOUNT_OPTIONS
114 if src/feature -G $SCRATCH_DEV ; then
117 _notrun "No quota support at mount time"
119 umount $SCRATCH_MNT 2>/dev/null
121 MOUNT_OPTIONS=""; export MOUNT_OPTIONS
122 echo "*** Default mount options"
125 MOUNT_OPTIONS="-o usrquota"; export MOUNT_OPTIONS
126 echo "*** User quota mount option"
129 MOUNT_OPTIONS="-o grpquota"; export MOUNT_OPTIONS
130 echo "*** Group quota mount option"
133 MOUNT_OPTIONS="-o usrquota,grpquota"; export MOUNT_OPTIONS
134 echo "*** User and Group quota mount options"