#! /usr/bin/env atf-sh . $(atf_get_srcdir)/test_environment.sh tests_init \ autoremove \ autoremove_quiet \ autoremove_dryrun autoremove_prep() { touch file1 touch file2 atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg pkg1 test 1 cat << EOF >> pkg1.ucl files: { ${TMPDIR}/file1: "", ${TMPDIR}/file2: "", } scripts: { post-deinstall: "exit 1" } EOF atf_check -s exit:0 sh ${RESOURCEDIR}/test_subr.sh new_pkg dep1 master 1 cat << EOF >> dep1.ucl deps: { test { origin: test, version: 1 } } EOF atf_check \ -o match:".*Installing.*\.\.\.$" \ -e empty \ -s exit:0 \ pkg register -A -M pkg1.ucl atf_check \ -o match:".*Installing.*\.\.\.$" \ -e empty \ -s exit:0 \ pkg register -M dep1.ucl atf_check \ -o match:".*Deinstalling.*\.\.\.$" \ -e empty \ -s exit:0 \ pkg delete -y master } autoremove_body() { autoremove_prep atf_check \ -o match:"Deinstalling test-1\.\.\." \ -e inline:"${PROGNAME}: POST-DEINSTALL script failed\n" \ -s exit:0 \ pkg autoremove -y atf_check \ -o empty \ -e empty \ -s exit:0 \ pkg info test ! -f ${TMPDIR}/file1 -o ! -f ${TMPDIR}/file2 || atf_fail "Files are still present" } autoremove_no_scripts_body() { autoremove_prep atf_check \ -o match:"Deinstalling test-1\.\.\." \ -e empty \ -s exit:0 \ pkg autoremove -yDq atf_check \ -o empty \ -e empty \ -s exit:0 \ pkg info test ! -f ${TMPDIR}/file1 -o ! -f ${TMPDIR}/file2 || atf_fail "Files are still present" } autoremove_quiet_body() { autoremove_prep atf_check \ -o empty \ -e inline:"${PROGNAME}: POST-DEINSTALL script failed\n" \ -s exit:0 \ pkg autoremove -yq atf_check \ -o empty \ -e empty \ -s exit:0 \ pkg info test ! -f ${TMPDIR}/file1 -o ! -f ${TMPDIR}/file2 || atf_fail "Files are still present" } autoremove_dryrun_body() { autoremove_prep atf_check \ -o match:"^Installed packages to be REMOVED:$" \ -o match:"^ test: 1$" \ -e empty \ -s exit:0 \ pkg autoremove -yn atf_check \ -o match:"^test-1 a test$" \ -e empty \ -s exit:0 \ pkg info test -f ${TMPDIR}/file1 -o -f ${TMPDIR}/file2 || atf_fail "Files are missing" }