]> CyberLeo.Net >> Repos - FreeBSD/releng/10.3.git/blob - usr.sbin/pw/tests/pw_userdel.sh
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1
[FreeBSD/releng/10.3.git] / usr.sbin / pw / tests / pw_userdel.sh
1 # $FreeBSD$
2
3 # Import helper functions
4 . $(atf_get_srcdir)/helper_functions.shin
5
6
7 # Test that a user can be deleted when another user is part of this
8 # user's default group and does not go into an infinate loop.
9 # PR: 191427
10 atf_test_case rmuser_seperate_group cleanup
11 rmuser_seperate_group_head() {
12         atf_set "timeout" "30"
13 }
14 rmuser_seperate_group_body() {
15         populate_etc_skel
16         ${PW} useradd test || atf_fail "Creating test user"
17         ${PW} groupmod test -M 'test,root' || \
18                 atf_fail "Modifying the group"
19         ${PW} userdel test || atf_fail "Delete the test user"
20 }
21
22
23 atf_test_case user_do_not_try_to_delete_root_if_user_unknown
24 user_do_not_try_to_delete_root_if_user_unknown_head() {
25         atf_set "descr" \
26                 "Make sure not to try to remove root if deleting an unknown user"
27 }
28 user_do_not_try_to_delete_root_if_user_unknown_body() {
29         populate_etc_skel
30         atf_check -e inline:"pw: Bad id 'plop': invalid\n" -s exit:64 -x \
31                 ${PW} userdel -u plop
32 }
33
34 atf_test_case delete_files
35 delete_files_body() {
36         populate_root_etc_skel
37
38         mkdir -p ${HOME}/skel
39         touch ${HOME}/skel/a
40         mkdir -p ${HOME}/home
41         mkdir -p ${HOME}/var/mail
42         echo "foo wedontcare" > ${HOME}/etc/opiekeys
43         atf_check -s exit:0 ${RPW} useradd foo -k /skel -m
44         test -d ${HOME}/home || atf_fail "Fail to create home directory"
45         test -f ${HOME}/var/mail/foo || atf_fail "Mail file not created"
46         atf_check -s exit:0 ${RPW} userdel foo -r
47         atf_check -s exit:0 -o inline:"#oo wedontcare\n" cat ${HOME}/etc/opiekeys
48         if test -f ${HOME}/var/mail/foo; then
49                 atf_fail "Mail file not removed"
50         fi
51 }
52
53 atf_test_case delete_numeric_name
54 delete_numeric_name_body() {
55         populate_etc_skel
56
57         atf_check ${PW} useradd -n foo -u 4001
58         atf_check -e inline:"pw: no such user \`4001'\n" -s exit:67 \
59                 ${PW} userdel -n 4001
60 }
61
62 atf_init_test_cases() {
63         atf_add_test_case rmuser_seperate_group
64         atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown
65         atf_add_test_case delete_files
66         atf_add_test_case delete_numeric_name
67 }