]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - usr.sbin/pw/tests/pw_groupmod.sh
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / usr.sbin / pw / tests / pw_groupmod.sh
1 # $FreeBSD$
2
3 # Import helper functions
4 . $(atf_get_srcdir)/helper_functions.shin
5
6
7 # Test adding & removing a user from a group
8 atf_test_case groupmod_user
9 groupmod_user_body() {
10         populate_etc_skel
11         atf_check -s exit:0 ${PW} addgroup test
12         atf_check -s exit:0 ${PW} groupmod test -m root
13         atf_check -s exit:0 -o match:"^test:\*:1001:root$" \
14                 grep "^test:\*:.*:root$" $HOME/group
15         atf_check -s exit:0 ${PW} groupmod test -d root
16         atf_check -s exit:0 -o match:"^test:\*:1001:$" \
17                 grep "^test:\*:.*:$" $HOME/group
18 }
19
20
21 # Test adding and removing a user that does not exist
22 atf_test_case groupmod_invalid_user
23 groupmod_invalid_user_body() {
24         populate_etc_skel
25         atf_check -s exit:0 ${PW} addgroup test
26         atf_check -s exit:67 -e match:"does not exist" ${PW} groupmod test -m foo
27         atf_check -s exit:0  ${PW} groupmod test -d foo
28 }
29
30 atf_test_case groupmod_bug_193704
31 groupmod_bug_193704_head() {
32         atf_set "descr" "Regression test for the #193704 bug"
33 }
34 groupmod_bug_193704_body() {
35         populate_etc_skel
36         atf_check -s exit:0 -x ${PW} groupadd test
37         atf_check -s exit:0 -x ${PW} groupmod test -l newgroupname
38         atf_check -s exit:65 -e match:"^pw: unknown group" -x ${PW} groupshow test
39 }
40
41 atf_test_case usermod_bug_185666
42 usermod_bug_185666_head() {
43         atf_set "descr" "Regression test for the #185666 bug"
44 }
45
46 usermod_bug_185666_body() {
47         populate_etc_skel
48         atf_check -s exit:0 -x ${PW} useradd testuser
49         atf_check -s exit:0 -x ${PW} groupadd testgroup
50         atf_check -s exit:0 -x ${PW} groupadd testgroup2
51         atf_check -s exit:0 -x ${PW} usermod testuser -G testgroup
52         atf_check -o inline:"testuser:*:1001:\n" -x ${PW} groupshow testuser
53         atf_check -o inline:"testgroup:*:1002:testuser\n" -x ${PW} groupshow testgroup
54         atf_check -o inline:"testgroup2:*:1003:\n" -x ${PW} groupshow testgroup2
55         atf_check -s exit:0 -x ${PW} usermod testuser -G testgroup2
56         atf_check -o inline:"testuser:*:1001:\n" -x ${PW} groupshow testuser
57         atf_check -o inline:"testgroup:*:1002:\n" -x ${PW} groupshow testgroup
58         atf_check -o inline:"testgroup2:*:1003:testuser\n" -x ${PW} groupshow testgroup2
59 }
60
61 atf_test_case do_not_duplicate_group_on_gid_change
62 do_not_duplicate_group_on_gid_change_head() {
63         atf_set "descr" "Do not duplicate group on gid change"
64 }
65
66 do_not_duplicate_group_on_gid_change_body() {
67         populate_etc_skel
68         atf_check -s exit:0 -x ${PW} groupadd testgroup
69         atf_check -s exit:0 -x ${PW} groupmod testgroup -g 12345
70         # use grep to see if the entry has not be duplicated
71         atf_check -o inline:"testgroup:*:12345:\n" -s exit:0 -x grep "^testgroup" ${HOME}/group
72 }
73
74 atf_test_case groupmod_rename
75 groupmod_rename_body() {
76         populate_etc_skel
77
78         atf_check -s exit:0 ${PW} groupadd foo
79         atf_check -s exit:0 ${PW} groupmod foo -l bar
80         atf_check -s exit:0 -o match:"^bar:.*" \
81                 grep "^bar:.*" ${HOME}/group
82 }
83
84 atf_init_test_cases() {
85         atf_add_test_case groupmod_user
86         atf_add_test_case groupmod_invalid_user
87         atf_add_test_case groupmod_bug_193704
88         atf_add_test_case usermod_bug_185666
89         atf_add_test_case do_not_duplicate_group_on_gid_change
90         atf_add_test_case groupmod_rename
91 }