summaryrefslogtreecommitdiffstats
path: root/pw/tests
diff options
context:
space:
mode:
Diffstat (limited to 'pw/tests')
-rw-r--r--pw/tests/Makefile12
-rwxr-xr-xpw/tests/pw_groupadd.sh26
-rwxr-xr-xpw/tests/pw_groupdel.sh2
-rwxr-xr-xpw/tests/pw_useradd.sh99
-rwxr-xr-xpw/tests/pw_userdel.sh12
-rwxr-xr-xpw/tests/pw_usermod.sh58
6 files changed, 31 insertions, 178 deletions
diff --git a/pw/tests/Makefile b/pw/tests/Makefile
index a1605aa..193b8ab 100644
--- a/pw/tests/Makefile
+++ b/pw/tests/Makefile
@@ -1,11 +1,13 @@
# $FreeBSD$
+TESTSRC= ${.CURDIR}/../../../contrib/netbsd-tests/usr.sbin/useradd
+.PATH: ${TESTSRC}
+
TESTSDIR= ${TESTSBASE}/usr.sbin/pw
ATF_TESTS_SH= pw_etcdir \
pw_lock \
pw_config \
- pw_groupadd \
pw_groupdel \
pw_groupmod \
pw_useradd \
@@ -21,4 +23,12 @@ FILES= group helper_functions.shin master.passwd pw.conf \
pw-modified.conf
FILESDIR= ${TESTSDIR}
+ATF_TESTS_SH+= pw_test
+# - user{add,del} does not exist on FreeBSD; use pw user{add,del} instead
+# - The command passes on FreeBSD
+ATF_TESTS_SH_SED_pw_test= -e 's/useradd /pw useradd /'
+ATF_TESTS_SH_SED_pw_test+= -e 's/userdel /pw userdel /'
+ATF_TESTS_SH_SED_pw_test+= -e '/atf_expect_fail "PR bin\/39546"/d'
+ATF_TESTS_SH_SRC_pw_test= t_useradd.sh
+
.include <bsd.test.mk>
diff --git a/pw/tests/pw_groupadd.sh b/pw/tests/pw_groupadd.sh
deleted file mode 100755
index 5fa7bef..0000000
--- a/pw/tests/pw_groupadd.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-# $FreeBSD$
-
-# Import helper functions
-. $(atf_get_srcdir)/helper_functions.shin
-
-atf_test_case group_add_gid_too_large
-group_add_gid_too_large_body() {
- populate_etc_skel
- atf_check -s exit:64 -e inline:"pw: Bad id '9999999999999': too large\n" \
- ${PW} groupadd -n test1 -g 9999999999999
-}
-
-atf_test_case group_add_already_exists
-group_add_already_exists_body() {
- populate_etc_skel
-
- atf_check -s exit:0 ${PW} groupadd foo
- atf_check -s exit:65 \
- -e inline:"pw: group name \`foo' already exists\n" \
- ${PW} groupadd foo
-}
-
-atf_init_test_cases() {
- atf_add_test_case group_add_gid_too_large
- atf_add_test_case group_add_already_exists
-}
diff --git a/pw/tests/pw_groupdel.sh b/pw/tests/pw_groupdel.sh
index 88cc0e0..75b063a 100755
--- a/pw/tests/pw_groupdel.sh
+++ b/pw/tests/pw_groupdel.sh
@@ -13,7 +13,7 @@ group_do_not_delete_wheel_if_group_unknown_head() {
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} groupshow wheel
- atf_check -e inline:"pw: Bad id 'I_do_not_exist': invalid\n" -s exit:64 -x \
+ atf_check -e inline:"pw: -g expects a number\n" -s exit:64 -x \
${PW} groupdel -g I_do_not_exist
atf_check -s exit:0 -o inline:"wheel:*:0:root\n" -x ${PW} groupshow wheel
}
diff --git a/pw/tests/pw_useradd.sh b/pw/tests/pw_useradd.sh
index cb62944..880dab5 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-2037
- atf_check -o inline:"foo:*:1001:1001::0:2121120000:User &:/home/foo:/bin/sh\n" \
+ ${PW} useradd foo -e 20-03-2043
+ atf_check -o inline:"foo:*:1001:1001::0:2310422400: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-37
- atf_check -o inline:"foo:*:1001:1001::0:2121120000:User &:/home/foo:/bin/sh\n" \
+ ${PW} useradd foo -e 20-03-43
+ atf_check -o inline:"foo:*:1001:1001::0:2310422400: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-2037
- atf_check -o inline:"foo:*:1001:1001::0:2121120000:User &:/home/foo:/bin/sh\n" \
+ ${PW} useradd foo -e 20-Mar-2043
+ atf_check -o inline:"foo:*:1001:1001::0:2310422400: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-2037
+ ${PW} useradd foo -e 20-Foo-2043
atf_check -e inline:"pw: Invalid date\n" -s exit:1 \
- ${PW} useradd foo -e 20-13-2037
- atf_check -s exit:0 ${PW} useradd foo -e "12:00 20-03-2037"
+ ${PW} useradd foo -e 20-13-2043
+ atf_check -s exit:0 ${PW} useradd foo -e "12:00 20-03-2043"
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-2037"
- atf_check -s exit:0 ${PW} useradd foo -e "20-03-2037 12:00"
+ ${PW} useradd foo -e "12 20-03-2043"
+ atf_check -s exit:0 ${PW} useradd foo -e "20-03-2043 12:00"
atf_check -s exit:0 ${PW} userdel foo
}
@@ -245,25 +245,14 @@ 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
- [ ! -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_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_test_case user_add_skel
@@ -300,58 +289,6 @@ user_add_uid0_body() {
-s exit:0 ${PW} usershow foo
}
-atf_test_case user_add_uid_too_large
-user_add_uid_too_large_body() {
- populate_etc_skel
- atf_check -s exit:64 -e inline:"pw: Bad id '9999999999999': too large\n" \
- ${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
@@ -374,12 +311,6 @@ 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
}
diff --git a/pw/tests/pw_userdel.sh b/pw/tests/pw_userdel.sh
index f608029..5ba87c2 100755
--- a/pw/tests/pw_userdel.sh
+++ b/pw/tests/pw_userdel.sh
@@ -27,7 +27,7 @@ user_do_not_try_to_delete_root_if_user_unknown_head() {
}
user_do_not_try_to_delete_root_if_user_unknown_body() {
populate_etc_skel
- atf_check -e inline:"pw: Bad id 'plop': invalid\n" -s exit:64 -x \
+ atf_check -e inline:"pw: -u expects a number\n" -s exit:64 -x \
${PW} userdel -u plop
}
@@ -50,18 +50,8 @@ delete_files_body() {
fi
}
-atf_test_case delete_numeric_name
-delete_numeric_name_body() {
- populate_etc_skel
-
- atf_check ${PW} useradd -n foo -u 4001
- atf_check -e inline:"pw: no such user \`4001'\n" -s exit:67 \
- ${PW} userdel -n 4001
-}
-
atf_init_test_cases() {
atf_add_test_case rmuser_seperate_group
atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown
atf_add_test_case delete_files
- atf_add_test_case delete_numeric_name
}
diff --git a/pw/tests/pw_usermod.sh b/pw/tests/pw_usermod.sh
index 236fd27..006bb2c 100755
--- a/pw/tests/pw_usermod.sh
+++ b/pw/tests/pw_usermod.sh
@@ -100,36 +100,6 @@ user_mod_name_noupdate_body() {
grep "^foo:.*" $HOME/master.passwd
}
-atf_test_case user_mod_rename_multigroups
-user_mod_rename_multigroups_body() {
- populate_etc_skel
-
- atf_check -s exit:0 ${PW} groupadd test1
- atf_check -s exit:0 ${PW} groupadd test2
- atf_check -s exit:0 ${PW} useradd foo -G test1,test2
- atf_check -o match:"foo" -s exit:0 ${PW} groupshow test1
- atf_check -o match:"foo" -s exit:0 ${PW} groupshow test2
- atf_check -s exit:0 ${PW} usermod foo -l bar
- atf_check -o match:"bar" -s exit:0 ${PW} groupshow test1
- atf_check -o match:"bar" -s exit:0 ${PW} groupshow test2
-}
-
-atf_test_case user_mod_nogroups
-user_mod_nogroups_body() {
- populate_etc_skel
-
- atf_check -s exit:0 ${PW} groupadd test1
- atf_check -s exit:0 ${PW} groupadd test2
- atf_check -s exit:0 ${PW} groupadd test3
- atf_check -s exit:0 ${PW} groupadd test4
- atf_check -s exit:0 ${PW} useradd foo -G test1,test2
- atf_check -o match:"foo" -s exit:0 ${PW} groupshow test1
- atf_check -o match:"foo" -s exit:0 ${PW} groupshow test2
- atf_check -s exit:0 ${PW} usermod foo -G test3,test4
- atf_check -s exit:0 -o inline:"test3\ntest4\n" \
- awk -F\: '$4 == "foo" { print $1 }' ${HOME}/group
-}
-
atf_test_case user_mod_rename
user_mod_rename_body() {
populate_etc_skel
@@ -164,7 +134,7 @@ user_mod_h_body() {
EOF
atf_check -s exit:0 -o match:"^foo:\*:.*" \
grep "^foo" ${HOME}/master.passwd
- atf_check -e inline:"pw: Bad file descriptor 'a': invalid\n" \
+ atf_check -e inline:"pw: '-h' expects a file descriptor or '-'\n" \
-s exit:64 ${PW} usermod foo -h a <<- EOF
$(echo a)
EOF
@@ -180,29 +150,10 @@ user_mod_H_body() {
EOF
atf_check -s exit:0 -o match:"^foo:a:.*" \
grep "^foo" ${HOME}/master.passwd
- atf_check -s exit:64 -e inline:"pw: -H expects a file descriptor\n" \
+ atf_check -s exit:64 -e inline:"pw: '-H' expects a file descriptor\n" \
${PW} usermod foo -H -
}
-atf_test_case user_mod_renamehome
-user_mod_renamehome_body() {
- populate_root_etc_skel
-
- mkdir -p ${HOME}/home
- atf_check -s exit:0 ${RPW} useradd foo -m
- test -d ${HOME}/home/foo || atf_fail "Directory not created"
- atf_check -s exit:0 ${RPW} usermod foo -l bar -d /home/bar -m
- test -d ${HOME}/home/bar || atf_fail "Directory not created"
-}
-
-atf_test_case user_mod_uid
-user_mod_uid_body() {
- populate_etc_skel
-
- atf_check -s exit:0 ${PW} useradd foo
- atf_check -s exit:0 ${PW} usermod foo -u 5000
-}
-
atf_init_test_cases() {
atf_add_test_case user_mod
atf_add_test_case user_mod_noupdate
@@ -210,13 +161,10 @@ atf_init_test_cases() {
atf_add_test_case user_mod_comments_noupdate
atf_add_test_case user_mod_comments_invalid
atf_add_test_case user_mod_comments_invalid_noupdate
- atf_add_test_case user_mod_nogroups
atf_add_test_case user_mod_rename
atf_add_test_case user_mod_name_noupdate
+ atf_add_test_case user_mod_rename
atf_add_test_case user_mod_rename_too_long
- atf_add_test_case user_mod_rename_multigroups
atf_add_test_case user_mod_h
atf_add_test_case user_mod_H
- atf_add_test_case user_mod_renamehome
- atf_add_test_case user_mod_uid
}