xref: /freebsd/usr.sbin/pw/tests/pw_usernext_test.sh (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*458cbf0aSEnji Cooper
2*458cbf0aSEnji Cooper# Import helper functions
3*458cbf0aSEnji Cooper. $(atf_get_srcdir)/helper_functions.shin
4*458cbf0aSEnji Cooper
5*458cbf0aSEnji Cooper# Test usernext after adding a random number of new users.
6*458cbf0aSEnji Cooperatf_test_case usernext
7*458cbf0aSEnji Cooperusernext_body() {
8*458cbf0aSEnji Cooper	populate_etc_skel
9*458cbf0aSEnji Cooper
10*458cbf0aSEnji Cooper	CURRENT=`${PW} usernext | sed -e 's/:.*//'`
11*458cbf0aSEnji Cooper	RANDOM=`jot -r 1 1 150`
12*458cbf0aSEnji Cooper	MAX=`expr ${CURRENT} + ${RANDOM}`
13*458cbf0aSEnji Cooper	while [ "${CURRENT}" -lt "${MAX}" ]
14*458cbf0aSEnji Cooper	do
15*458cbf0aSEnji Cooper		atf_check -s exit:0 ${PW} useradd test${CURRENT}
16*458cbf0aSEnji Cooper		CURRENT=`expr ${CURRENT} + 1`
17*458cbf0aSEnji Cooper	done
18*458cbf0aSEnji Cooper	atf_check -s exit:0 -o match:"${CURRENT}:${CURRENT}" \
19*458cbf0aSEnji Cooper		${PW} usernext
20*458cbf0aSEnji Cooper}
21*458cbf0aSEnji Cooper
22*458cbf0aSEnji Cooper# Test usernext when multiple users are added to the same group so
23*458cbf0aSEnji Cooper# that group id doesn't increment at the same pace as new users.
24*458cbf0aSEnji Cooperatf_test_case usernext_assigned_group
25*458cbf0aSEnji Cooperusernext_assigned_group_body() {
26*458cbf0aSEnji Cooper	populate_etc_skel
27*458cbf0aSEnji Cooper
28*458cbf0aSEnji Cooper	CURRENT=`${PW} usernext | sed -e 's/:.*//'`
29*458cbf0aSEnji Cooper	CURRENTGID=`${PW} groupnext`
30*458cbf0aSEnji Cooper	RANDOM=`jot -r 1 1 150`
31*458cbf0aSEnji Cooper	MAX=`expr ${CURRENT} + ${RANDOM}`
32*458cbf0aSEnji Cooper	while [ "${CURRENT}" -lt "${MAX}" ]
33*458cbf0aSEnji Cooper	do
34*458cbf0aSEnji Cooper		atf_check -s exit:0 ${PW} useradd -n test${CURRENT} -g 0
35*458cbf0aSEnji Cooper		CURRENT=`expr ${CURRENT} + 1`
36*458cbf0aSEnji Cooper	done
37*458cbf0aSEnji Cooper	atf_check -s exit:0 -o match:"${CURRENT}:${CURRENTGID}" \
38*458cbf0aSEnji Cooper		${PW} usernext
39*458cbf0aSEnji Cooper}
40*458cbf0aSEnji Cooper
41*458cbf0aSEnji Cooperatf_init_test_cases() {
42*458cbf0aSEnji Cooper	atf_add_test_case usernext
43*458cbf0aSEnji Cooper	atf_add_test_case usernext_assigned_group
44*458cbf0aSEnji Cooper}
45