summaryrefslogtreecommitdiffstats
path: root/pw/tests/pw_useradd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pw/tests/pw_useradd.sh')
-rwxr-xr-xpw/tests/pw_useradd.sh91
1 files changed, 76 insertions, 15 deletions
diff --git a/pw/tests/pw_useradd.sh b/pw/tests/pw_useradd.sh
index 7306387..cb62944 100755
--- a/pw/tests/pw_useradd.sh
+++ b/pw/tests/pw_useradd.sh
@@ -181,29 +181,29 @@ user_add_expiration_body() {
populate_etc_skel
atf_check -s exit:0 \
- ${PW} useradd foo -e 20-03-2043
- atf_check -o inline:"foo:*:1001:1001::0:2310422400:User &:/home/foo:/bin/sh\n" \
+ ${PW} useradd foo -e 20-03-2037
+ atf_check -o inline:"foo:*:1001:1001::0:2121120000:User &:/home/foo:/bin/sh\n" \
-s exit:0 grep "^foo" ${HOME}/master.passwd
atf_check -s exit:0 ${PW} userdel foo
atf_check -s exit:0 \
- ${PW} useradd foo -e 20-03-43
- atf_check -o inline:"foo:*:1001:1001::0:2310422400:User &:/home/foo:/bin/sh\n" \
+ ${PW} useradd foo -e 20-03-37
+ atf_check -o inline:"foo:*:1001:1001::0:2121120000:User &:/home/foo:/bin/sh\n" \
-s exit:0 grep "^foo" ${HOME}/master.passwd
atf_check -s exit:0 ${PW} userdel foo
atf_check -s exit:0 \
- ${PW} useradd foo -e 20-Mar-2043
- atf_check -o inline:"foo:*:1001:1001::0:2310422400:User &:/home/foo:/bin/sh\n" \
+ ${PW} useradd foo -e 20-Mar-2037
+ atf_check -o inline:"foo:*:1001:1001::0:2121120000:User &:/home/foo:/bin/sh\n" \
-s exit:0 grep "^foo" ${HOME}/master.passwd
atf_check -s exit:0 ${PW} userdel foo
atf_check -e inline:"pw: Invalid date\n" -s exit:1 \
- ${PW} useradd foo -e 20-Foo-2043
+ ${PW} useradd foo -e 20-Foo-2037
atf_check -e inline:"pw: Invalid date\n" -s exit:1 \
- ${PW} useradd foo -e 20-13-2043
- atf_check -s exit:0 ${PW} useradd foo -e "12:00 20-03-2043"
+ ${PW} useradd foo -e 20-13-2037
+ atf_check -s exit:0 ${PW} useradd foo -e "12:00 20-03-2037"
atf_check -s exit:0 ${PW} userdel foo
atf_check -e inline:"pw: Invalid date\n" -s exit:1 \
- ${PW} useradd foo -e "12 20-03-2043"
- atf_check -s exit:0 ${PW} useradd foo -e "20-03-2043 12:00"
+ ${PW} useradd foo -e "12 20-03-2037"
+ atf_check -s exit:0 ${PW} useradd foo -e "20-03-2037 12:00"
atf_check -s exit:0 ${PW} userdel foo
}
@@ -245,14 +245,25 @@ user_add_R_body() {
populate_root_etc_skel
atf_check -s exit:0 ${RPW} useradd foo
- mkdir -p ${HOME}/home
atf_check -s exit:0 ${RPW} useradd bar -m
+ test -d ${HOME}/home || atf_fail "Home parent directory not created"
test -d ${HOME}/home/bar || atf_fail "Directory not created"
atf_check -s exit:0 ${RPW} userdel bar
test -d ${HOME}/home/bar || atf_fail "Directory removed"
-# atf_check -s exit:0 ${RPW} useradd bar
-# atf_check -s exit:0 ${RPW} userdel bar -r
-# test -d ${HOME}/home/bar && atf_fail "Directory not removed"
+ atf_check -s exit:0 ${RPW} useradd bar
+ atf_check -s exit:0 ${RPW} userdel bar -r
+ [ ! -d ${HOME}/home/bar ] || atf_fail "Directory not removed"
+}
+
+atf_test_case user_add_R_symlink
+user_add_R_symlink_body() {
+ populate_root_etc_skel
+
+ mkdir ${HOME}/usr
+ atf_check -s exit:0 ${RPW} useradd foo -m
+ test -d ${HOME}/usr/home || atf_fail "Home parent directory not created"
+ test -h ${HOME}/home || atf_fail "/home directory is not a symlink"
+ atf_check -s exit:0 -o inline:"usr/home\n" readlink ${HOME}/home
}
atf_test_case user_add_skel
@@ -296,6 +307,51 @@ user_add_uid_too_large_body() {
${PW} useradd -n test1 -u 9999999999999
}
+atf_test_case user_add_bad_shell
+user_add_bad_shell_body() {
+ populate_etc_skel
+
+ atf_check -s exit:0 ${PW} useradd foo -s sh
+ atf_check -s exit:78 -e ignore ${PW} useradd bar -s badshell
+}
+
+atf_test_case user_add_already_exists
+user_add_already_exists_body() {
+ populate_etc_skel
+
+ atf_check -s exit:0 ${PW} useradd foo
+ atf_check -s exit:65 \
+ -e inline:"pw: login name \`foo' already exists\n" \
+ ${PW} useradd foo
+}
+
+atf_test_case user_add_w_yes
+user_add_w_yes_body() {
+ populate_etc_skel
+ atf_check -s exit:0 ${PW} useradd foo -w yes
+ atf_check -s exit:0 \
+ -o match:'^foo:\$.*' \
+ grep "^foo" ${HOME}/master.passwd
+ atf_check -s exit:0 ${PW} usermod foo -w yes
+ atf_check -s exit:0 \
+ -o match:'^foo:\$.*' \
+ grep "^foo" ${HOME}/master.passwd
+}
+
+atf_test_case user_add_with_pw_conf
+user_add_with_pw_conf_body()
+{
+ populate_etc_skel
+ atf_check -s exit:0 \
+ ${PW} useradd -D -C ${HOME}/pw.conf \
+ -u 2000,32767 -i 2000,32767
+ atf_check -s exit:0 \
+ -o inline:"minuid = 2000\nmaxuid = 32767\nmingid = 2000\nmaxgid = 32767\n" \
+ grep "^m.*id =" ${HOME}/pw.conf
+ atf_check -s exit:0 \
+ ${PW} useradd foo -C ${HOME}/pw.conf
+}
+
atf_init_test_cases() {
atf_add_test_case user_add
atf_add_test_case user_add_noupdate
@@ -318,7 +374,12 @@ atf_init_test_cases() {
atf_add_test_case user_add_invalid_group_entry
atf_add_test_case user_add_password_from_h
atf_add_test_case user_add_R
+ atf_add_test_case user_add_R_symlink
atf_add_test_case user_add_skel
atf_add_test_case user_add_uid0
atf_add_test_case user_add_uid_too_large
+ atf_add_test_case user_add_bad_shell
+ atf_add_test_case user_add_already_exists
+ atf_add_test_case user_add_w_yes
+ atf_add_test_case user_add_with_pw_conf
}