summaryrefslogtreecommitdiffstats
path: root/pw/tests/pw_modify.sh
blob: 5888111933eaa49e42b1b3b8af78ea7a7caf15c3 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# $FreeBSD$

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


# Test adding & removing a user from a group
atf_test_case groupmod_user
groupmod_user_body() {
	populate_etc_skel
	atf_check -s exit:0 pw -V ${HOME} addgroup test
	atf_check -s exit:0 pw -V ${HOME} groupmod test -m root
	atf_check -s exit:0 -o match:"^test:\*:1001:root$" \
		grep "^test:\*:.*:root$" $HOME/group
	atf_check -s exit:0 pw -V ${HOME} groupmod test -d root
	atf_check -s exit:0 -o match:"^test:\*:1001:$" \
		grep "^test:\*:.*:$" $HOME/group
}


# Test adding and removing a user that does not exist
atf_test_case groupmod_invalid_user
groupmod_invalid_user_body() {
	populate_etc_skel
	atf_check -s exit:0 pw -V ${HOME} addgroup test
	atf_check -s exit:67 -e match:"does not exist" pw -V ${HOME} groupmod test -m foo
	atf_check -s exit:0  pw -V ${HOME} groupmod test -d foo
}

atf_test_case groupmod_bug_193704
groupmod_bug_193704_head() {
	atf_set "descr" "Regression test for the #193704 bug"
}
groupmod_bug_193704_body() {
	populate_etc_skel
	atf_check -s exit:0 -x pw -V ${HOME} groupadd test
	atf_check -s exit:0 -x pw -V ${HOME} groupmod test -l newgroupname
	atf_check -s exit:65 -e match:"^pw: unknown group" -x pw -V ${HOME} groupshow test
}

atf_test_case usermod_bug_185666
usermod_bug_185666_head() {
	atf_set "descr" "Regression test for the #185666 bug"
}

usermod_bug_185666_body() {
	populate_etc_skel
	atf_check -s exit:0 -x pw -V ${HOME} useradd testuser
	atf_check -s exit:0 -x pw -V ${HOME} groupadd testgroup
	atf_check -s exit:0 -x pw -V ${HOME} groupadd testgroup2
	atf_check -s exit:0 -x pw -V ${HOME} usermod testuser -G testgroup
	atf_check -o inline:"testuser:*:1001:\n" -x pw -V${HOME} groupshow testuser
	atf_check -o inline:"testgroup:*:1002:testuser\n" -x pw -V ${HOME} groupshow testgroup
	atf_check -o inline:"testgroup2:*:1003:\n" -x pw -V${HOME} groupshow testgroup2
	atf_check -s exit:0 -x pw -V ${HOME} usermod testuser -G testgroup2
	atf_check -o inline:"testuser:*:1001:\n" -x pw -V ${HOME} groupshow testuser
	atf_check -o inline:"testgroup:*:1002:\n" -x pw -V ${HOME} groupshow testgroup
	atf_check -o inline:"testgroup2:*:1003:testuser\n" -x pw -V ${HOME} groupshow testgroup2
}

atf_init_test_cases() {
	atf_add_test_case groupmod_user
	atf_add_test_case groupmod_invalid_user
	atf_add_test_case groupmod_bug_193704
	atf_add_test_case usermod_bug_185666
}