0a7888b1fa
Closes #154 Currently this has three functions: one which returns the list of subuid ranges for a user, one returning the subgids, and one which frees the ranges lists. I might be mistaken about what -disable-man means; some of the code suggests it means just don't re-generate them, but not totally ignore them. But that doesn't seem to really work, so let's just ignore man/ when -disable-man. Remove --disable-shared. I'm not sure why it was there, but it stems from long, long ago, and I suspect it comes from some ancient toolchain bug. Create a tests/run_some, a shorter version of run_all. I'll slowly add tests to this as I verify they work, then I can work on fixing the once which don't. Also, don't touch man/ if not -enable-man. Changelog: Apr 22: change the subid list api as recomended by Dan Walsh. Apr 23: implement get_subid_owner Apr 24: implement range add/release Apr 25: finish tests and rebase May 10: make @owner const Signed-off-by: Serge Hallyn <serge@hallyn.com>
137 lines
4.0 KiB
Bash
Executable File
137 lines
4.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
export LC_ALL=C
|
|
unset LANG
|
|
unset LANGUAGE
|
|
. common/config.sh
|
|
|
|
USE_PAM="yes"
|
|
FAILURE_TESTS="yes"
|
|
|
|
succeeded=0
|
|
failed=0
|
|
failed_tests=""
|
|
|
|
run_test()
|
|
{
|
|
[ -f RUN_TEST.STOP ] && exit 1
|
|
|
|
if $1 > $1.log
|
|
then
|
|
succeeded=$((succeeded+1))
|
|
echo -n "+"
|
|
else
|
|
failed=$((failed+1))
|
|
failed_tests="$failed_tests $1"
|
|
echo -n "-"
|
|
fi
|
|
cat $1.log >> testsuite.log
|
|
[ -f /etc/passwd.lock ] && echo $1 /etc/passwd.lock || true
|
|
[ -f /etc/group.lock ] && echo $1 /etc/group.lock || true
|
|
[ -f /etc/shadow.lock ] && echo $1 /etc/shadow.lock || true
|
|
[ -f /etc/gshadow.lock ] && echo $1 /etc/gshadow.lock || true
|
|
if [ "$(stat -c"%G" /etc/shadow)" != "shadow" ]
|
|
then
|
|
echo $1
|
|
ls -l /etc/shadow
|
|
chgrp shadow /etc/shadow
|
|
fi
|
|
if [ -d /nonexistent ]
|
|
then
|
|
echo $1 /nonexistent
|
|
rmdir /nonexistent
|
|
fi
|
|
}
|
|
|
|
echo "+: test passed"
|
|
echo "-: test failed"
|
|
|
|
# Empty the complete log.
|
|
> testsuite.log
|
|
|
|
find ${build_path} -name "*.gcda" -delete
|
|
run_test ./su/01/su_root.test
|
|
run_test ./su/01/su_user.test
|
|
find ${build_path} -name "*.gcda" -exec chmod a+rw {} \;
|
|
run_test ./su/02/env_FOO-options_--login
|
|
run_test ./su/02/env_FOO-options_--login_bash
|
|
run_test ./su/02/env_FOO-options_--preserve-environment
|
|
run_test ./su/02/env_FOO-options_--preserve-environment_bash
|
|
run_test ./su/02/env_FOO-options_-
|
|
run_test ./su/02/env_FOO-options_-_bash
|
|
run_test ./su/02/env_FOO-options_-l-m
|
|
run_test ./su/02/env_FOO-options_-l-m_bash
|
|
run_test ./su/02/env_FOO-options_-l
|
|
run_test ./su/02/env_FOO-options_-l_bash
|
|
run_test ./su/02/env_FOO-options_-m_bash
|
|
run_test ./su/02/env_FOO-options_-m
|
|
run_test ./su/02/env_FOO-options_-p
|
|
run_test ./su/02/env_FOO-options_-p_bash
|
|
run_test ./su/02/env_FOO-options__bash
|
|
run_test ./su/02/env_FOO-options_
|
|
run_test ./su/02/env_FOO-options_-p-
|
|
run_test ./su/02/env_FOO-options_-p-_bash
|
|
run_test ./su/02/env_special-options_-l-p
|
|
run_test ./su/02/env_special-options_-l
|
|
run_test ./su/02/env_special-options_-l-p_bash
|
|
run_test ./su/02/env_special-options_-l_bash
|
|
run_test ./su/02/env_special-options_-p
|
|
run_test ./su/02/env_special-options_-p_bash
|
|
run_test ./su/02/env_special-options_
|
|
run_test ./su/02/env_special-options__bash
|
|
run_test ./su/02/env_special_root-options_-l-p
|
|
run_test ./su/02/env_special_root-options_-l-p_bash
|
|
run_test ./su/02/env_special_root-options_-l
|
|
run_test ./su/02/env_special_root-options_-l_bash
|
|
run_test ./su/02/env_special_root-options_-p
|
|
run_test ./su/02/env_special_root-options_-p_bash
|
|
run_test ./su/02/env_special_root-options_
|
|
run_test ./su/02/env_special_root-options__bash
|
|
run_test ./su/03/su_run_command01.test
|
|
run_test ./su/03/su_run_command02.test
|
|
run_test ./su/03/su_run_command03.test
|
|
run_test ./su/03/su_run_command04.test
|
|
run_test ./su/03/su_run_command05.test
|
|
run_test ./su/03/su_run_command06.test
|
|
run_test ./su/03/su_run_command07.test
|
|
run_test ./su/03/su_run_command08.test
|
|
run_test ./su/03/su_run_command09.test
|
|
run_test ./su/03/su_run_command10.test
|
|
run_test ./su/03/su_run_command11.test
|
|
run_test ./su/03/su_run_command12.test
|
|
run_test ./su/03/su_run_command13.test
|
|
run_test ./su/03/su_run_command14.test
|
|
run_test ./su/03/su_run_command15.test
|
|
run_test ./su/03/su_run_command16.test
|
|
run_test ./su/03/su_run_command17.test
|
|
run_test ./su/04/su_wrong_user.test
|
|
run_test ./su/04/su_user_wrong_passwd.test
|
|
run_test ./su/04/su_user_wrong_passwd_syslog.test
|
|
run_test ./su/05/su_user_wrong_passwd_syslog.test
|
|
run_test ./su/06/su_user_syslog.test
|
|
run_test ./su/07/su_user_syslog.test
|
|
run_test ./su/08/env_special-options_
|
|
run_test ./su/08/env_special_root-options_
|
|
run_test ./su/09/env_special-options_
|
|
run_test ./su/09/env_special_root-options_
|
|
run_test ./su/10_su_sulog_success/su.test
|
|
run_test ./su/11_su_sulog_failure/su.test
|
|
run_test ./su/12_su_child_failure/su.test
|
|
run_test ./su/13_su_child_success/su.test
|
|
run_test ./libsubid/01_list_ranges/list_ranges.test
|
|
run_test ./libsubid/02_get_subid_owners/get_subid_owners.test
|
|
run_test ./libsubid/03_add_remove/add_remove_subids.test
|
|
|
|
echo
|
|
echo "$succeeded test(s) passed"
|
|
echo "$failed test(s) failed"
|
|
echo "log written in 'testsuite.log'"
|
|
if [ "$failed" != "0" ]
|
|
then
|
|
echo "the following tests failed:"
|
|
echo $failed_tests
|
|
fi
|
|
|