diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-12-22 20:13:01 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-12-22 20:13:01 +0000 |
commit | 8554baf7ac033902b04bb63facf2f0718a1b4f8b (patch) | |
tree | 562c9680f3cb4276f9b2a1e3ba4e4037b3defde4 | |
parent | redo test output to get info on a per-test basis (diff) | |
download | portage-utils-8554baf7ac033902b04bb63facf2f0718a1b4f8b.tar.gz portage-utils-8554baf7ac033902b04bb63facf2f0718a1b4f8b.tar.bz2 portage-utils-8554baf7ac033902b04bb63facf2f0718a1b4f8b.zip |
start a testsuite for profile/config parsing
-rw-r--r-- | tests/Makefile | 2 | ||||
-rwxr-xr-x | tests/profile/dotest | 50 | ||||
-rw-r--r-- | tests/profile/profile1/etc/parent.conf | 1 | ||||
-rw-r--r-- | tests/profile/profile1/etc/portage/make.conf | 12 | ||||
-rw-r--r-- | tests/profile/profile1/etc/portage/subdir/file.conf | 1 | ||||
-rw-r--r-- | tests/profile/profile1/etc/portage/this.level.conf | 1 |
6 files changed, 66 insertions, 1 deletions
diff --git a/tests/Makefile b/tests/Makefile index 9a2ac376..4972bb6e 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,7 +1,7 @@ TESTS = \ reinitialize atom_compare atom_explode mkdir \ qfile qlist qtbz2 quse qxpak \ - install source + install profilesource all: check diff --git a/tests/profile/dotest b/tests/profile/dotest new file mode 100755 index 00000000..65149286 --- /dev/null +++ b/tests/profile/dotest @@ -0,0 +1,50 @@ +#!/bin/bash + +. ../init.sh + +qenv() { + # get q to dump its processed env so we can check + DEBUG= q 2>&1 >/dev/null +} + +tenv() { + local profile=$1 var=$2 exp=$3 + + export PORTAGE_CONFIGROOT=${as}/profile${profile} + local e=$(qenv) + + res=$(echo "${e}" | sed -n "/^${var} = /{s:^${var} = ::;p}") + + [[ ${res} == "${exp}" ]] + if ! tend $? "(${profile}) ${var} = ${exp}" ; then + echo "we got: {${res}}" + echo "full env:" + echo "${e}" | while read line ; do + printf '\t{%s}\n' "${line}" + done + fi +} + +# clear out env vars that would affect our tests +unset $(qenv | awk '{print $1}') + +# test vars that should default to known values. +# cannot test too many more as portage's default +# make.globals will kick in. +tenv inv ROOT / +tenv inv ARCH +tenv inv PORTAGE_BINHOST + +# this validates simple stuff +tenv 1 ARCH x86 +tenv 1 INSTALL_MASK imask + +# this validates -* behavior +tenv 1 CONFIG_PROTECT + +# this indirectly validates relative sourcing +tenv 1 FEATURES feat +tenv 1 CONFIG_PROTECT_MASK asdf +tenv 1 ACCEPT_LICENSE lic + +end diff --git a/tests/profile/profile1/etc/parent.conf b/tests/profile/profile1/etc/parent.conf new file mode 100644 index 00000000..3cd1b46f --- /dev/null +++ b/tests/profile/profile1/etc/parent.conf @@ -0,0 +1 @@ +CONFIG_PROTECT_MASK="-* asdf" diff --git a/tests/profile/profile1/etc/portage/make.conf b/tests/profile/profile1/etc/portage/make.conf new file mode 100644 index 00000000..247a4ef0 --- /dev/null +++ b/tests/profile/profile1/etc/portage/make.conf @@ -0,0 +1,12 @@ +ARCH=x86 + +#395629 +CONFIG_PROTECT=-* + +source this.level.conf + +source ../parent.conf + +source subdir/file.conf + +INSTALL_MASK=" imask " diff --git a/tests/profile/profile1/etc/portage/subdir/file.conf b/tests/profile/profile1/etc/portage/subdir/file.conf new file mode 100644 index 00000000..fb25c8d2 --- /dev/null +++ b/tests/profile/profile1/etc/portage/subdir/file.conf @@ -0,0 +1 @@ +ACCEPT_LICENSE='lic' diff --git a/tests/profile/profile1/etc/portage/this.level.conf b/tests/profile/profile1/etc/portage/this.level.conf new file mode 100644 index 00000000..d45d6a7f --- /dev/null +++ b/tests/profile/profile1/etc/portage/this.level.conf @@ -0,0 +1 @@ +FEATURES="-* feat" |