summaryrefslogtreecommitdiff
path: root/eclass/tests/savedconfig.sh
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /eclass/tests/savedconfig.sh
reinit the tree, so we can have metadata
Diffstat (limited to 'eclass/tests/savedconfig.sh')
-rwxr-xr-xeclass/tests/savedconfig.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/eclass/tests/savedconfig.sh b/eclass/tests/savedconfig.sh
new file mode 100755
index 000000000000..19da181d8404
--- /dev/null
+++ b/eclass/tests/savedconfig.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+source tests-common.sh
+
+inherit savedconfig
+
+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