summaryrefslogtreecommitdiffstats
path: root/pw/tests
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-07-11 22:35:07 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-07-11 22:35:07 +0000
commit8a863a79c9448856a8a2c5bfb323f7d6a67b05af (patch)
treed34a3a7d54d443d99ef63238838a02de0e03fe73 /pw/tests
parent649b38fd408c5f016d293e4ef66ee4c52cebac8e (diff)
downloadpw-darwin-8a863a79c9448856a8a2c5bfb323f7d6a67b05af.tar.gz
pw-darwin-8a863a79c9448856a8a2c5bfb323f7d6a67b05af.tar.zst
pw-darwin-8a863a79c9448856a8a2c5bfb323f7d6a67b05af.zip
Rework groupmod modification:
Use gr_add(3) when possible to avoid code duplication. Use a simpler logic to delete members of a group
Diffstat (limited to 'pw/tests')
-rwxr-xr-xpw/tests/pw_groupmod.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/pw/tests/pw_groupmod.sh b/pw/tests/pw_groupmod.sh
index 9ea8a6d..5806925 100755
--- a/pw/tests/pw_groupmod.sh
+++ b/pw/tests/pw_groupmod.sh
@@ -81,6 +81,32 @@ groupmod_rename_body() {
grep "^bar:.*" ${HOME}/group
}
+atf_test_case groupmod_members
+groupmod_members_body() {
+ populate_etc_skel
+
+ for i in user1 user2 user3 user4; do
+ atf_check -s exit:0 ${PW} useradd $i
+ done
+
+ atf_check -s exit:0 ${PW} groupadd foo -M "user1, user2"
+ atf_check -o inline:"foo:*:1005:user1,user2\n" -s exit:0 \
+ ${PW} groupshow foo
+ atf_check -s exit:0 ${PW} groupmod foo -m "user3, user4"
+ atf_check -o inline:"foo:*:1005:user1,user2,user3,user4\n" -s exit:0 \
+ ${PW} groupshow foo
+ atf_check -s exit:0 ${PW} groupmod foo -M "user1, user4"
+ atf_check -o inline:"foo:*:1005:user1,user4\n" -s exit:0 \
+ ${PW} groupshow foo
+ # what about duplicates
+ atf_check -s exit:0 ${PW} groupmod foo -m "user1, user2, user3, user4"
+ atf_check -o inline:"foo:*:1005:user1,user4,user2,user3\n" -s exit:0 \
+ ${PW} groupshow foo
+ atf_check -s exit:0 ${PW} groupmod foo -d "user1, user3"
+ atf_check -o inline:"foo:*:1005:user4,user2\n" -s exit:0 \
+ ${PW} groupshow foo
+}
+
atf_init_test_cases() {
atf_add_test_case groupmod_user
atf_add_test_case groupmod_invalid_user
@@ -88,4 +114,5 @@ atf_init_test_cases() {
atf_add_test_case usermod_bug_185666
atf_add_test_case do_not_duplicate_group_on_gid_change
atf_add_test_case groupmod_rename
+ atf_add_test_case groupmod_members
}