aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/quot/tests/quot_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/quot/tests/quot_test.sh')
-rw-r--r--usr.sbin/quot/tests/quot_test.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/usr.sbin/quot/tests/quot_test.sh b/usr.sbin/quot/tests/quot_test.sh
index 21088d162a53..c5e6717adca1 100644
--- a/usr.sbin/quot/tests/quot_test.sh
+++ b/usr.sbin/quot/tests/quot_test.sh
@@ -15,6 +15,8 @@ quot_setup()
atf_check mount /dev/$dev "$mnt"
echo "/dev/$dev: ($mnt)" >expect
printf "%5d\t%5d\t%-8s\n" 8 2 "#0" >>expect
+ printf "%s\n" "/dev/$dev" >ninput
+ echo "/dev/$dev: ($mnt)" >nexpect
}
# Create a directory owned by a given UID
@@ -23,12 +25,25 @@ quot_adduid()
local uid=$1
atf_check install -d -o $uid -g 0 mnt/$uid
printf "%5d\t%5d\t%-8s\n" 4 1 "#$uid" >>expect
+ ls -di mnt/$uid >>ninput
+ printf "%s\t%s\n" "#$uid" mnt/$uid >>nexpect
}
# Perform the tests
quot_test()
{
local dev=$(cat dev)
+ # Deliberately add invalid lines to our -n input before the
+ # valid ones to verify that quot does not abort on first
+ # error. Note that quot deliberately ignores initial lines
+ # that don't start with a number, and that after encountering
+ # at least one line that does start with a number, quot would
+ # previously terminate on encountering one that doesn't (now
+ # it simply ignores them). This also tests that we don't
+ # require whitespace between the inode number and the comment.
+ echo "0zero" >>ninput
+ echo "invalid" >>ninput
+ echo "-1minusone" >>ninput
# Create inodes owned by a large number of users to exercise
# hash collisions and rehashing. The code uses an open hash
# table that starts out with only 8 entries and doubles every
@@ -50,6 +65,10 @@ quot_test()
atf_check mount -ur /dev/$dev
atf_check -o file:expect quot -fkN /dev/$dev
atf_check -o file:expect quot -fkN $(realpath mnt)
+ # Test -n option
+ atf_check -o file:nexpect \
+ -e inline:"quot: invalid inode 0\nquot: invalid inode -1\n" \
+ quot -Nn /dev/$dev <ninput
}
# Unmount and release the memory disk