pw_groupmod_test.sh revision 316257
1132720Skan# $FreeBSD: stable/10/usr.sbin/pw/tests/pw_groupmod_test.sh 316257 2017-03-30 06:20:58Z ngie $ 2132720Skan 3169691Skan# Import helper functions 4132720Skan. $(atf_get_srcdir)/helper_functions.shin 5132720Skan 6132720Skan 7132720Skan# Test adding & removing a user from a group 8132720Skanatf_test_case groupmod_user 9132720Skangroupmod_user_body() { 10132720Skan populate_etc_skel 11132720Skan atf_check -s exit:0 ${PW} addgroup test 12132720Skan atf_check -s exit:0 ${PW} groupmod test -m root 13132720Skan atf_check -s exit:0 -o match:"^test:\*:1001:root$" \ 14132720Skan grep "^test:\*:.*:root$" $HOME/group 15132720Skan atf_check -s exit:0 ${PW} groupmod test -d root 16132720Skan atf_check -s exit:0 -o match:"^test:\*:1001:$" \ 17132720Skan grep "^test:\*:.*:$" $HOME/group 18132720Skan} 19169691Skan 20132720Skan 21132720Skan# Test adding and removing a user that does not exist 22132720Skanatf_test_case groupmod_invalid_user 23132720Skangroupmod_invalid_user_body() { 24132720Skan populate_etc_skel 25132720Skan atf_check -s exit:0 ${PW} addgroup test 26132720Skan atf_check -s exit:67 -e match:"does not exist" ${PW} groupmod test -m foo 27132720Skan atf_check -s exit:0 ${PW} groupmod test -d foo 28132720Skan} 29132720Skan 30132720Skanatf_test_case groupmod_bug_193704 31169691Skangroupmod_bug_193704_head() { 32169691Skan atf_set "descr" "Regression test for the #193704 bug" 33169691Skan} 34169691Skangroupmod_bug_193704_body() { 35132720Skan populate_etc_skel 36132720Skan atf_check -s exit:0 -x ${PW} groupadd test 37132720Skan atf_check -s exit:0 -x ${PW} groupmod test -l newgroupname 38132720Skan atf_check -s exit:65 -e match:"^pw: unknown group" -x ${PW} groupshow test 39132720Skan} 40132720Skan 41132720Skanatf_test_case usermod_bug_185666 42169691Skanusermod_bug_185666_head() { 43132720Skan atf_set "descr" "Regression test for the #185666 bug" 44169691Skan} 45169691Skan 46132720Skanusermod_bug_185666_body() { 47132720Skan populate_etc_skel 48132720Skan atf_check -s exit:0 -x ${PW} useradd testuser 49132720Skan atf_check -s exit:0 -x ${PW} groupadd testgroup 50132720Skan atf_check -s exit:0 -x ${PW} groupadd testgroup2 51132720Skan atf_check -s exit:0 -x ${PW} usermod testuser -G testgroup 52132720Skan atf_check -o inline:"testuser:*:1001:\n" -x ${PW} groupshow testuser 53132720Skan atf_check -o inline:"testgroup:*:1002:testuser\n" -x ${PW} groupshow testgroup 54132720Skan atf_check -o inline:"testgroup2:*:1003:\n" -x ${PW} groupshow testgroup2 55132720Skan atf_check -s exit:0 -x ${PW} usermod testuser -G testgroup2 56132720Skan atf_check -o inline:"testuser:*:1001:\n" -x ${PW} groupshow testuser 57132720Skan atf_check -o inline:"testgroup:*:1002:\n" -x ${PW} groupshow testgroup 58132720Skan atf_check -o inline:"testgroup2:*:1003:testuser\n" -x ${PW} groupshow testgroup2 59132720Skan} 60132720Skan 61132720Skanatf_test_case do_not_duplicate_group_on_gid_change 62169691Skando_not_duplicate_group_on_gid_change_head() { 63169691Skan atf_set "descr" "Do not duplicate group on gid change" 64132720Skan} 65132720Skan 66132720Skando_not_duplicate_group_on_gid_change_body() { 67132720Skan populate_etc_skel 68132720Skan atf_check -s exit:0 -x ${PW} groupadd testgroup 69132720Skan atf_check -s exit:0 -x ${PW} groupmod testgroup -g 12345 70132720Skan # use grep to see if the entry has not be duplicated 71132720Skan atf_check -o inline:"testgroup:*:12345:\n" -s exit:0 -x grep "^testgroup" ${HOME}/group 72169691Skan} 73169691Skan 74132720Skanatf_test_case groupmod_rename 75132720Skangroupmod_rename_body() { 76132720Skan populate_etc_skel 77132720Skan 78132720Skan atf_check -s exit:0 ${PW} groupadd foo 79132720Skan atf_check -s exit:0 ${PW} groupmod foo -l bar 80132720Skan atf_check -s exit:0 -o match:"^bar:.*" \ 81132720Skan grep "^bar:.*" ${HOME}/group 82132720Skan} 83132720Skan 84132720Skanatf_test_case groupmod_members 85132720Skangroupmod_members_body() { 86132720Skan populate_etc_skel 87132720Skan 88132720Skan for i in user1 user2 user3 user4; do 89132720Skan atf_check -s exit:0 ${PW} useradd $i 90132720Skan done 91132720Skan 92132720Skan atf_check -s exit:0 ${PW} groupadd foo -M "user1, user2" 93132720Skan atf_check -o inline:"foo:*:1005:user1,user2\n" -s exit:0 \ 94132720Skan ${PW} groupshow foo 95132720Skan atf_check -s exit:0 ${PW} groupmod foo -m "user3, user4" 96132720Skan atf_check -o inline:"foo:*:1005:user1,user2,user3,user4\n" -s exit:0 \ 97132720Skan ${PW} groupshow foo 98132720Skan atf_check -s exit:0 ${PW} groupmod foo -M "user1, user4" 99132720Skan atf_check -o inline:"foo:*:1005:user1,user4\n" -s exit:0 \ 100132720Skan ${PW} groupshow foo 101132720Skan # what about duplicates 102132720Skan atf_check -s exit:0 ${PW} groupmod foo -m "user1, user2, user3, user4" 103132720Skan atf_check -o inline:"foo:*:1005:user1,user4,user2,user3\n" -s exit:0 \ 104132720Skan ${PW} groupshow foo 105132720Skan atf_check -s exit:0 ${PW} groupmod foo -d "user1, user3" 106132720Skan atf_check -o inline:"foo:*:1005:user4,user2\n" -s exit:0 \ 107132720Skan ${PW} groupshow foo 108132720Skan} 109132720Skan 110132720Skanatf_init_test_cases() { 111132720Skan atf_add_test_case groupmod_user 112132720Skan atf_add_test_case groupmod_invalid_user 113132720Skan atf_add_test_case groupmod_bug_193704 114132720Skan atf_add_test_case usermod_bug_185666 115132720Skan atf_add_test_case do_not_duplicate_group_on_gid_change 116132720Skan atf_add_test_case groupmod_rename 117132720Skan atf_add_test_case groupmod_members 118132720Skan} 119132720Skan