]>
git.saurik.com Git - apt.git/blob - test/integration/test-failing-maintainer-scripts
   4 TESTDIR
="$(readlink -f "$(dirname "$0")")" 
   8 configarchitecture 'native' 
  11 # create a bunch of failures 
  13         setupsimplenativepackage "failure
-$1" 'native' '1.0' 'unstable' 'Depends: dependee' 
  14         BUILDDIR="incoming
/failure
-$1-1.0
" 
  16 exit 29' > "${BUILDDIR}/debian
/$1" 
  17         buildpackage "$BUILDDIR" 'unstable' 'main' 'native' 
  21 buildsimplenativepackage 'dependee' 'native' '1.0' 'unstable' 
  22 createfailure 'preinst' 
  23 createfailure 'postinst' 
  25 createfailure 'postrm' 
  29 # setup some pre- and post- invokes to check the output isn't garbled later 
  30 APTHOOK="${TMPWORKINGDIRECTORY}/rootdir
/usr
/bin
/apthook
" 
  34 echo "$1: ENd
"' > "$APTHOOK" 
  36 echo "DPKG
::Pre
-Invoke:: \"${APTHOOK} PRE
\"; 
  37 DPKG
::Post
-Invoke:: \"${APTHOOK} POST
\";" > rootdir/etc/apt/apt.conf.d/99apthooks 
  40         local PROGRESS='rootdir/tmp/progress.log' 
  42         testfailure "$@
" -o APT::Status-Fd=3 
  43         msgtest 'Test for failure message of maintainerscript in' 'console log' 
  44         local TEST='rootdir/tmp/testfailure.output' 
  45         if grep -q 'exit status 29' "$TEST"; then 
  51         msgtest 'Test for proper execution of invoke scripts in' 'console log' 
  52         if grep -q '^PRE: START$' "$TEST" && 
  53                 grep -q '^PRE: MaiN$' "$TEST" && 
  54                 grep -q '^PRE: ENd$' "$TEST" && 
  55                 grep -q '^POST: START$' "$TEST" && 
  56                 grep -q '^POST: MaiN$' "$TEST" && 
  57                 grep -q '^POST: ENd$' "$TEST"; then 
  63         msgtest 'Test for failure message of maintainerscript in' 'progress log' 
  64         if grep -q '^pmerror:.\+exit status 29$' "$PROGRESS"; then 
  70         testmarkedauto 'dependee' 
  73 cp -a rootdir/var/lib/dpkg/status rootdir/var/lib/dpkg/status.backup 
  74 testmyfailure aptget install failure-preinst -y 
  75 cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status 
  76 testmyfailure aptget install failure-postinst -y 
  77 cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status 
  78 testsuccess aptget install failure-prerm -y 
  79 testdpkginstalled failure-prerm 
  80 testmyfailure aptget purge failure-prerm -y 
  81 cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status 
  82 testsuccess aptget install failure-postrm -y 
  83 testdpkginstalled failure-postrm 
  84 testmyfailure aptget purge failure-postrm -y 
  86 # FIXME: test with output going to a PTY as it usually does 
  88         cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status 
  89         apt install dependee -y || true 
  90         apt install failure-postinst -y || true