inherit savedconfig
-sc() { EBUILD_PHASE=install save_config "$@" ; }
-rc() { EBUILD_PHASE=prepare restore_config "$@" ; }
-
-tbegin "simple save_config"
-sc $0 >/dev/null
-ret=$?
-[[ -f ${ED}/etc/portage/savedconfig/${CATEGORY}/${PF} ]]
-tend $(( ret + $? ))
-rm -rf "${ED}/etc"
-
-tbegin "multi save_config"
-sc *.sh >/dev/null
-ret=$?
-[[ -d ${ED}/etc/portage/savedconfig/${CATEGORY}/${PF} ]]
-tend $(( ret + $? ))
-rm -rf "${ED}/etc"
-
-tbegin "dir save_config"
-sc CVS >/dev/null
-ret=$?
-[[ -d ${ED}/etc/portage/savedconfig/${CATEGORY}/${PF} ]]
-tend $(( ret + $? ))
-rm -rf "${ED}/etc"
+quiet() {
+ local out ret
+ out=$("$@" 2>&1)
+ ret=$?
+ [[ ${ret} -eq 0 ]] || echo "${out}"
+ return ${ret}
+}
+sc() { EBUILD_PHASE=install quiet save_config "$@" ; }
+rc() { EBUILD_PHASE=prepare quiet restore_config "$@" ; }
+
+cleanup() { rm -rf "${ED}"/* "${T}"/* "${WORKDIR}"/* ; }
+test-it() {
+ local ret=0
+ tbegin "$@"
+ mkdir -p "${ED}"/etc/portage/savedconfig
+ : $(( ret |= $? ))
+ pushd "${WORKDIR}" >/dev/null
+ : $(( ret |= $? ))
+ test
+ : $(( ret |= $? ))
+ popd >/dev/null
+ : $(( ret |= $? ))
+ tend ${ret}
+ cleanup
+}
+
+test() {
+ touch f || return 1
+ sc f || return 1
+ [[ -f ${ED}/etc/portage/savedconfig/${CATEGORY}/${PF} ]]
+}
+test-it "simple save_config"
+
+test() {
+ touch a b c || return 1
+ sc a b c || return 1
+ [[ -d ${ED}/etc/portage/savedconfig/${CATEGORY}/${PF} ]]
+}
+test-it "multi save_config"
+
+test() {
+ mkdir dir || return 1
+ touch dir/{a,b,c} || return 1
+ sc dir || return 1
+ [[ -d ${ED}/etc/portage/savedconfig/${CATEGORY}/${PF} ]]
+}
+test-it "dir save_config"
+
+PORTAGE_CONFIGROOT=${D}
+
+test() {
+ echo "ggg" > f || return 1
+ rc f || return 1
+ [[ $(<f) == "ggg" ]]
+}
+test-it "simple restore_config"
+
+test() {
+ echo "ggg" > f || return 1
+ rc f || return 1
+ [[ $(<f) == "ggg" ]] || return 1
+ sc f || return 1
+
+ echo "hhh" > f || return 1
+ rc f || return 1
+ [[ $(<f) == "ggg" ]]
+}
+test-it "simple restore+save config"
texit
source ../${e}.eclass
done
}
+EXPORT_FUNCTIONS() { :; }
debug-print() {
[[ ${#} -eq 0 ]] && return
done
return 1
}
+use() { has "$1" ${IUSE} ; }
die() {
echo "die: $*" 1>&2
}
tmpdir="${PWD}/tmp"
-D="${tmpdir}/$0/${RANDOM}"
+pkg_root="${tmpdir}/$0/${RANDOM}"
+T="${pkg_root}/temp"
+D="${pkg_root}/image"
+WORKDIR="${pkg_root}/work"
ED=${D}
-mkdir -p "${D}"
+mkdir -p "${D}" "${T}" "${WORKDIR}"
dodir() {
mkdir -p "${@/#/${ED}/}"
elog() { einfo "$@" ; }
+IUSE=""
CATEGORY="dev-eclass"
PN="tests"
PV="0"