diff options
Diffstat (limited to 'pw/tests')
| -rw-r--r-- | pw/tests/Makefile | 12 | ||||
| -rwxr-xr-x | pw/tests/pw_groupadd.sh | 26 | ||||
| -rwxr-xr-x | pw/tests/pw_groupdel.sh | 2 | ||||
| -rwxr-xr-x | pw/tests/pw_useradd.sh | 99 | ||||
| -rwxr-xr-x | pw/tests/pw_userdel.sh | 12 | ||||
| -rwxr-xr-x | pw/tests/pw_usermod.sh | 58 |
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 } |
