pw_groupmod.sh revision 285411
1272578Sbrd# $FreeBSD: head/usr.sbin/pw/tests/pw_groupmod.sh 285411 2015-07-11 22:35:07Z bapt $ 2272578Sbrd 3272578Sbrd# Import helper functions 4272578Sbrd. $(atf_get_srcdir)/helper_functions.shin 5272578Sbrd 6272578Sbrd 7272578Sbrd# Test adding & removing a user from a group 8272578Sbrdatf_test_case groupmod_user 9272578Sbrdgroupmod_user_body() { 10272578Sbrd populate_etc_skel 11274727Sbrd atf_check -s exit:0 ${PW} addgroup test 12274727Sbrd atf_check -s exit:0 ${PW} groupmod test -m root 13272578Sbrd atf_check -s exit:0 -o match:"^test:\*:1001:root$" \ 14272578Sbrd grep "^test:\*:.*:root$" $HOME/group 15274727Sbrd atf_check -s exit:0 ${PW} groupmod test -d root 16272578Sbrd atf_check -s exit:0 -o match:"^test:\*:1001:$" \ 17272578Sbrd grep "^test:\*:.*:$" $HOME/group 18272578Sbrd} 19272578Sbrd 20272578Sbrd 21272578Sbrd# Test adding and removing a user that does not exist 22272578Sbrdatf_test_case groupmod_invalid_user 23272578Sbrdgroupmod_invalid_user_body() { 24272578Sbrd populate_etc_skel 25274727Sbrd atf_check -s exit:0 ${PW} addgroup test 26274727Sbrd atf_check -s exit:67 -e match:"does not exist" ${PW} groupmod test -m foo 27274727Sbrd atf_check -s exit:0 ${PW} groupmod test -d foo 28272578Sbrd} 29272578Sbrd 30273772Sbaptatf_test_case groupmod_bug_193704 31273772Sbaptgroupmod_bug_193704_head() { 32273772Sbapt atf_set "descr" "Regression test for the #193704 bug" 33273772Sbapt} 34273772Sbaptgroupmod_bug_193704_body() { 35273772Sbapt populate_etc_skel 36274727Sbrd atf_check -s exit:0 -x ${PW} groupadd test 37274727Sbrd atf_check -s exit:0 -x ${PW} groupmod test -l newgroupname 38274727Sbrd atf_check -s exit:65 -e match:"^pw: unknown group" -x ${PW} groupshow test 39273772Sbapt} 40272578Sbrd 41273779Sbaptatf_test_case usermod_bug_185666 42273779Sbaptusermod_bug_185666_head() { 43273779Sbapt atf_set "descr" "Regression test for the #185666 bug" 44273779Sbapt} 45273779Sbapt 46273779Sbaptusermod_bug_185666_body() { 47273779Sbapt populate_etc_skel 48274727Sbrd atf_check -s exit:0 -x ${PW} useradd testuser 49274727Sbrd atf_check -s exit:0 -x ${PW} groupadd testgroup 50274727Sbrd atf_check -s exit:0 -x ${PW} groupadd testgroup2 51274727Sbrd atf_check -s exit:0 -x ${PW} usermod testuser -G testgroup 52274727Sbrd atf_check -o inline:"testuser:*:1001:\n" -x ${PW} groupshow testuser 53274727Sbrd atf_check -o inline:"testgroup:*:1002:testuser\n" -x ${PW} groupshow testgroup 54274727Sbrd atf_check -o inline:"testgroup2:*:1003:\n" -x ${PW} groupshow testgroup2 55274727Sbrd atf_check -s exit:0 -x ${PW} usermod testuser -G testgroup2 56274727Sbrd atf_check -o inline:"testuser:*:1001:\n" -x ${PW} groupshow testuser 57274727Sbrd atf_check -o inline:"testgroup:*:1002:\n" -x ${PW} groupshow testgroup 58274727Sbrd atf_check -o inline:"testgroup2:*:1003:testuser\n" -x ${PW} groupshow testgroup2 59273779Sbapt} 60273779Sbapt 61273791Sbaptatf_test_case do_not_duplicate_group_on_gid_change 62273791Sbaptdo_not_duplicate_group_on_gid_change_head() { 63273791Sbapt atf_set "descr" "Do not duplicate group on gid change" 64273791Sbapt} 65273791Sbapt 66273791Sbaptdo_not_duplicate_group_on_gid_change_body() { 67273791Sbapt populate_etc_skel 68274727Sbrd atf_check -s exit:0 -x ${PW} groupadd testgroup 69274727Sbrd atf_check -s exit:0 -x ${PW} groupmod testgroup -g 12345 70273791Sbapt # use grep to see if the entry has not be duplicated 71273791Sbapt atf_check -o inline:"testgroup:*:12345:\n" -s exit:0 -x grep "^testgroup" ${HOME}/group 72273791Sbapt} 73273791Sbapt 74284129Sbaptatf_test_case groupmod_rename 75284129Sbaptgroupmod_rename_body() { 76284129Sbapt populate_etc_skel 77284129Sbapt 78284129Sbapt atf_check -s exit:0 ${PW} groupadd foo 79284129Sbapt atf_check -s exit:0 ${PW} groupmod foo -l bar 80284129Sbapt atf_check -s exit:0 -o match:"^bar:.*" \ 81284129Sbapt grep "^bar:.*" ${HOME}/group 82284129Sbapt} 83284129Sbapt 84285411Sbaptatf_test_case groupmod_members 85285411Sbaptgroupmod_members_body() { 86285411Sbapt populate_etc_skel 87285411Sbapt 88285411Sbapt for i in user1 user2 user3 user4; do 89285411Sbapt atf_check -s exit:0 ${PW} useradd $i 90285411Sbapt done 91285411Sbapt 92285411Sbapt atf_check -s exit:0 ${PW} groupadd foo -M "user1, user2" 93285411Sbapt atf_check -o inline:"foo:*:1005:user1,user2\n" -s exit:0 \ 94285411Sbapt ${PW} groupshow foo 95285411Sbapt atf_check -s exit:0 ${PW} groupmod foo -m "user3, user4" 96285411Sbapt atf_check -o inline:"foo:*:1005:user1,user2,user3,user4\n" -s exit:0 \ 97285411Sbapt ${PW} groupshow foo 98285411Sbapt atf_check -s exit:0 ${PW} groupmod foo -M "user1, user4" 99285411Sbapt atf_check -o inline:"foo:*:1005:user1,user4\n" -s exit:0 \ 100285411Sbapt ${PW} groupshow foo 101285411Sbapt # what about duplicates 102285411Sbapt atf_check -s exit:0 ${PW} groupmod foo -m "user1, user2, user3, user4" 103285411Sbapt atf_check -o inline:"foo:*:1005:user1,user4,user2,user3\n" -s exit:0 \ 104285411Sbapt ${PW} groupshow foo 105285411Sbapt atf_check -s exit:0 ${PW} groupmod foo -d "user1, user3" 106285411Sbapt atf_check -o inline:"foo:*:1005:user4,user2\n" -s exit:0 \ 107285411Sbapt ${PW} groupshow foo 108285411Sbapt} 109285411Sbapt 110272578Sbrdatf_init_test_cases() { 111272578Sbrd atf_add_test_case groupmod_user 112272578Sbrd atf_add_test_case groupmod_invalid_user 113273772Sbapt atf_add_test_case groupmod_bug_193704 114273779Sbapt atf_add_test_case usermod_bug_185666 115273791Sbapt atf_add_test_case do_not_duplicate_group_on_gid_change 116284129Sbapt atf_add_test_case groupmod_rename 117285411Sbapt atf_add_test_case groupmod_members 118272578Sbrd} 119