diff options
author | Enji Cooper <ngie@FreeBSD.org> | 2014-12-10 06:43:16 +0000 |
---|---|---|
committer | Enji Cooper <ngie@FreeBSD.org> | 2014-12-10 06:43:16 +0000 |
commit | e55e3502008b47514b4e52bfe0416ac4625a128e (patch) | |
tree | 1ab069d8f9454b1d813752344a49e4f339875234 | |
parent | 164700bfc553029e369b0aeca106acffc404bece (diff) | |
parent | b4ea158866fbdc9a9c5b75c0f10ca72ccb0733f4 (diff) | |
download | pw-darwin-e55e3502008b47514b4e52bfe0416ac4625a128e.tar.gz pw-darwin-e55e3502008b47514b4e52bfe0416ac4625a128e.tar.zst pw-darwin-e55e3502008b47514b4e52bfe0416ac4625a128e.zip |
MFhead @ r275663
-rw-r--r-- | pw/tests/Makefile | 13 | ||||
-rwxr-xr-x | pw/tests/pw_groupdel.sh | 24 | ||||
-rwxr-xr-x | pw/tests/pw_groupmod.sh (renamed from pw/tests/pw_modify.sh) | 0 | ||||
-rwxr-xr-x | pw/tests/pw_useradd.sh | 40 | ||||
-rwxr-xr-x | pw/tests/pw_userdel.sh (renamed from pw/tests/pw_delete.sh) | 20 | ||||
-rwxr-xr-x | pw/tests/pw_usermod.sh | 56 |
6 files changed, 135 insertions, 18 deletions
diff --git a/pw/tests/Makefile b/pw/tests/Makefile index 6bc9433..1283ff2 100644 --- a/pw/tests/Makefile +++ b/pw/tests/Makefile @@ -5,10 +5,17 @@ TESTSRC= ${.CURDIR}/../../../contrib/netbsd-tests/usr.sbin/useradd TESTSDIR= ${TESTSBASE}/usr.sbin/pw -ATF_TESTS_SH= pw_delete pw_lock pw_modify pw_etcdir +ATF_TESTS_SH= pw_etcdir \ + pw_lock \ + pw_groupdel \ + pw_groupmod \ + pw_useradd \ + pw_userdel \ + pw_usermod -TEST_METADATA.pw_delete+= required_user="root" -TEST_METADATA.pw_modify+= required_user="root" +.for tp in ${ATF_TESTS_SH} +TEST_METADATA.${tp}+= required_user="root" +.endfor FILES= group helper_functions.shin master.passwd FILESDIR= ${TESTSDIR} diff --git a/pw/tests/pw_groupdel.sh b/pw/tests/pw_groupdel.sh new file mode 100755 index 0000000..75b063a --- /dev/null +++ b/pw/tests/pw_groupdel.sh @@ -0,0 +1,24 @@ +# $FreeBSD$ + +# Import helper functions +. $(atf_get_srcdir)/helper_functions.shin + + +# Test to make sure we do not accidentially delete wheel when trying to delete +# an unknown group +atf_test_case group_do_not_delete_wheel_if_group_unknown +group_do_not_delete_wheel_if_group_unknown_head() { + atf_set "descr" "Make sure we do not consider gid 0 an unknown group" +} +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: -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 +} + + +atf_init_test_cases() { + atf_add_test_case group_do_not_delete_wheel_if_group_unknown +} diff --git a/pw/tests/pw_modify.sh b/pw/tests/pw_groupmod.sh index ad7ad0a..ad7ad0a 100755 --- a/pw/tests/pw_modify.sh +++ b/pw/tests/pw_groupmod.sh diff --git a/pw/tests/pw_useradd.sh b/pw/tests/pw_useradd.sh new file mode 100755 index 0000000..fb2e33f --- /dev/null +++ b/pw/tests/pw_useradd.sh @@ -0,0 +1,40 @@ +# $FreeBSD$ + +# Import helper functions +. $(atf_get_srcdir)/helper_functions.shin + +# Test add user +atf_test_case user_add +user_add_body() { + populate_etc_skel + + atf_check -s exit:0 ${PW} useradd test + atf_check -s exit:0 -o match:"^test:.*" \ + grep "^test:.*" $HOME/master.passwd +} + + +atf_test_case user_add_comments +user_add_comments_body() { + populate_etc_skel + + atf_check -s exit:0 ${PW} useradd test -c "Test User,work,123,456" + atf_check -s exit:0 -o match:"^test:.*:Test User,work,123,456:" \ + grep "^test:.*:Test User,work,123,456:" $HOME/master.passwd +} + +atf_test_case user_add_comments_invalid +user_add_comments_invalid_body() { + populate_etc_skel + + atf_check -s exit:65 -e match:"invalid character" \ + ${PW} useradd test -c "Test User,work,123:456,456" + atf_check -s exit:1 -o empty \ + grep "^test:.*:Test User,work,123:456,456:" $HOME/master.passwd +} + +atf_init_test_cases() { + atf_add_test_case user_add + atf_add_test_case user_add_comments + atf_add_test_case user_add_comments_invalid +} diff --git a/pw/tests/pw_delete.sh b/pw/tests/pw_userdel.sh index 832ec93..71a7033 100755 --- a/pw/tests/pw_delete.sh +++ b/pw/tests/pw_userdel.sh @@ -3,6 +3,7 @@ # Import helper functions . $(atf_get_srcdir)/helper_functions.shin + # Test that a user can be deleted when another user is part of this # user's default group and does not go into an infinate loop. # PR: 191427 @@ -18,30 +19,19 @@ rmuser_seperate_group_body() { ${PW} userdel test || atf_fail "Delete the test user" } -atf_test_case group_do_not_delete_wheel_if_group_unknown -group_do_not_delete_wheel_if_group_unknown_head() { - atf_set "descr" "Make sure we do not consider gid 0 an unknown group" -} - -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: -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 -} atf_test_case user_do_not_try_to_delete_root_if_user_unknown user_do_not_try_to_delete_root_if_user_unknown_head() { - atf_set "descr" "Make sure not to try to remove root if deleting an unknown user" + atf_set "descr" \ + "Make sure not to try to remove root if deleting an unknown user" } - user_do_not_try_to_delete_root_if_user_unknown_body() { populate_etc_skel - atf_check -e inline:"pw: -u expects a number\n" -s exit:64 -x ${PW} userdel -u plop + atf_check -e inline:"pw: -u expects a number\n" -s exit:64 -x \ + ${PW} userdel -u plop } atf_init_test_cases() { atf_add_test_case rmuser_seperate_group - atf_add_test_case group_do_not_delete_wheel_if_group_unknown atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown } diff --git a/pw/tests/pw_usermod.sh b/pw/tests/pw_usermod.sh new file mode 100755 index 0000000..f5bac78 --- /dev/null +++ b/pw/tests/pw_usermod.sh @@ -0,0 +1,56 @@ +# $FreeBSD$ + +# Import helper functions +. $(atf_get_srcdir)/helper_functions.shin + +# Test modifying a user +atf_test_case user_mod +user_mod_body() { + populate_etc_skel + + atf_check -s exit:67 -e match:"no such user" ${PW} usermod test + atf_check -s exit:0 ${PW} useradd test + atf_check -s exit:0 ${PW} usermod test + atf_check -s exit:0 -o match:"^test:.*" \ + grep "^test:.*" $HOME/master.passwd +} + +# Test modifying a user with comments +atf_test_case user_mod_comments +user_mod_comments_body() { + populate_etc_skel + + atf_check -s exit:0 ${PW} useradd test -c "Test User,home,123,456" + atf_check -s exit:0 ${PW} usermod test -c "Test User,work,123,456" + atf_check -s exit:0 -o match:"^test:.*:Test User,work,123,456:" \ + grep "^test:.*:Test User,work,123,456:" $HOME/master.passwd +} + +# Test modifying a user with invalid comments +atf_test_case user_mod_comments_invalid +user_mod_comments_invalid_body() { + populate_etc_skel + + atf_check -s exit:0 ${PW} useradd test + atf_check -s exit:65 -e match:"invalid character" \ + ${PW} usermod test -c "Test User,work,123:456,456" + atf_check -s exit:1 -o empty \ + grep "^test:.*:Test User,work,123:456,456:" $HOME/master.passwd +} + +# Test modifying a user name with -l +atf_test_case user_mod_name +user_mod_name_body() { + populate_etc_skel + + atf_check -s exit:0 ${PW} useradd foo + atf_check -s exit:0 ${PW} usermod foo -l "bar" + atf_check -s exit:0 -o match:"^bar:.*" \ + grep "^bar:.*" $HOME/master.passwd +} +atf_init_test_cases() { + atf_add_test_case user_mod + atf_add_test_case user_mod_comments + atf_add_test_case user_mod_comments_invalid + atf_add_test_case user_mod_name +} |