Files
contrib
doc
etc
lib
libmisc
man
po
src
tests
chage
chroot
chsh
cktools
common
convtools
cptools
crypt
debian
expiry
failures
chage
chgpasswd
chpasswd-PAM
chsh
cppw
01_cppw_open_passwd_in_failure
02_cppw_open_passwd_backup_failure
03_cppw_rename_passwd_failure
config
data
config.txt
cppw.test
gpasswd
groupadd
groupdel
groupmems
groupmod
grpck
grpconv
grpunconv
newusers
pwck
pwconv
pwunconv
useradd
userdel
usermod
grouptools
log
login
newusers
passwd
split_groups
su
subids
usertools
README
bug332198-test.exp
bug334803-test.exp
cleanup.sh
coverage.sh
run_all
run_all.coverage
.gitignore
.travis.yml
COPYING
ChangeLog
Makefile.am
NEWS
README
TODO
acinclude.m4
autogen.sh
configure.ac
shadow.spec.in
shadow/tests/failures/cppw/03_cppw_rename_passwd_failure/cppw.test
Serge Hallyn b999d48941 Add tests from the old svn tree
We're losing the svn history (which we could probably keep if we tried
hard enough) but don't consider that worthwhile.

Note these tests are destructive, so run them only in a throwaway
environment like a chroot, container, or vm.

The tests/run.all script should be the one which launches all the tests.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2014-09-17 14:42:55 -05:00

55 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
set -e
cd $(dirname $0)
. ../../../common/config.sh
. ../../../common/log.sh
log_start "$0" "cppw report failures to write the passwd file"
save_config
# restore the files on exit
trap 'log_status "$0" "FAILURE"; restore_config' 0
change_config
echo -n "Copy data/passwd (cppw data/passwd)..."
LD_PRELOAD=../../../common/rename_failure.so FAILURE_PATH=/etc/passwd cppw data/passwd 2>tmp/cppw.err && exit 1 || {
status=$?
}
echo "OK"
echo -n "Check returned status ($status)..."
test "$status" = "1"
echo "OK"
echo "cppw reported:"
echo "======================================================================="
cat tmp/cppw.err
echo "======================================================================="
echo -n "Check that there were a failure message..."
diff -au data/cppw.err tmp/cppw.err
echo "error message OK."
rm -f tmp/cppw.err
echo -n "Check the passwd file..."
../../../common/compare_file.pl config/etc/passwd /etc/passwd
echo "OK"
echo -n "Check the group file..."
../../../common/compare_file.pl config/etc/group /etc/group
echo "OK"
echo -n "Check the shadow file..."
../../../common/compare_file.pl config/etc/shadow /etc/shadow
echo "OK"
echo -n "Check the gshadow file..."
../../../common/compare_file.pl config/etc/gshadow /etc/gshadow
echo "OK"
log_status "$0" "SUCCESS"
restore_config
trap '' 0