summaryrefslogtreecommitdiffstats
path: root/pw/tests/pw_delete.sh
blob: 02a9adebe4feaeb7e17c9ae4ded6f64b49cc2299 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# $FreeBSD$

# Import helper functions
. $(atf_get_srcdir)/helper_functions.shin

# Test that a user can be deleted when another user is part of this
# user's default group and does not go into an infinate loop.
# PR: 191427
atf_test_case rmuser_seperate_group cleanup
rmuser_seperate_group_head() {
	atf_set "timeout" "30"
}
rmuser_seperate_group_body() {
	populate_etc_skel
	pw -V ${HOME} useradd test || atf_fail "Creating test user"
	pw -V ${HOME} groupmod test -M 'test,root' || \
		atf_fail "Modifying the group"
	pw -V ${HOME} userdel test || atf_fail "Delete the test user"
}

atf_test_case group_do_not_delete_wheel_if_group_unknown
group_do_not_delete_wheel_if_group_unknown_head() {
	atf_set "descr" "Make sure we do not consider gid 0 an unknown group"
}

group_do_not_delete_wheel_if_group_unknown_body() {
	populate_etc_skel
	atf_check -s exit:0 -o inline:"wheel:*:0:root\n" -x pw -V ${HOME} groupshow wheel
	atf_check -e inline:"pw: -g expects a number\n" -s exit:64 -x pw -V ${HOME} groupdel -g I_do_not_exist
	atf_check -s exit:0 -o inline:"wheel:*:0:root\n" -x pw -V ${HOME} groupshow wheel
}

atf_test_case user_do_not_try_to_delete_root_if_user_unknown
user_do_not_try_to_delete_root_if_user_unknown_head() {
	atf_set "descr" "Make sure not to try to remove root if deleting an unknown user"
}

user_do_not_try_to_delete_root_if_user_unknown_body() {
	populate_etc_skel
	atf_check -e inline:"pw: -u expects a number\n" -s exit:64 -x pw -V ${HOME} userdel -u plop
}

atf_init_test_cases() {
	atf_add_test_case rmuser_seperate_group
	atf_add_test_case group_do_not_delete_wheel_if_group_unknown
	atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown
}