poldek: poldek/tests/README (NEW), poldek/tests/build-test-rpm.sh, ...
mis
mis at pld-linux.org
Wed Jan 23 23:55:13 CET 2008
Author: mis Date: Wed Jan 23 22:55:13 2008 GMT
Module: poldek Tag: HEAD
---- Log message:
- more depsolver tests
---- Files affected:
poldek/poldek/tests:
README (NONE -> 1.1) (NEW), build-test-rpm.sh (1.8 -> 1.9)
poldek/poldek/tests/sh:
07-depsolver (1.1 -> 1.2)
---- Diffs:
================================================================
Index: poldek/poldek/tests/README
diff -u /dev/null poldek/poldek/tests/README:1.1
--- /dev/null Wed Jan 23 23:55:13 2008
+++ poldek/poldek/tests/README Wed Jan 23 23:55:08 2008
@@ -0,0 +1,18 @@
+poldek test suite
+
+To run all tests:
+
+$ make check # runs all tests made with check library
+$ make sheck # runs all tests written in shell (sh/ subdir)
+
+
+sh/ test scripts may be executed separately:
+
+$ ./sh/07-depsolver -h
+
+Particular tests may be choosen:
+
+$ ./sh/07-depsolver -v --runtest testSuggests
+
+
+
================================================================
Index: poldek/poldek/tests/build-test-rpm.sh
diff -u poldek/poldek/tests/build-test-rpm.sh:1.8 poldek/poldek/tests/build-test-rpm.sh:1.9
--- poldek/poldek/tests/build-test-rpm.sh:1.8 Wed Jul 11 00:49:38 2007
+++ poldek/poldek/tests/build-test-rpm.sh Wed Jan 23 23:55:08 2008
@@ -8,6 +8,7 @@
requires=
provides=
suggests=
+obsoletes=
conflicts=
files=
arch="noarch"
@@ -37,6 +38,9 @@
-s)
shift; suggests="$suggests ${1},"; shift ;;
+ -o)
+ shift; obsoletes="$obsoletes ${1},"; shift ;;
+
-c)
shift; conflicts="$conflicts ${1},"; shift ;;
@@ -87,6 +91,7 @@
[ -n "$provides" ] && echo "Provides: $provides" >> $SPEC
[ -n "$requires" ] && echo "Requires: $requires" >> $SPEC
[ -n "$suggests" ] && echo "Suggests: $suggests" >> $SPEC
+[ -n "$obsoletes" ] && echo "Obsoletes: $obsoletes" >> $SPEC
[ -n "$conflicts" ] && echo "Conflicts: $conflicts" >> $SPEC
echo -e "%description\nPackage build by $COMMAND\n" >> $SPEC
================================================================
Index: poldek/poldek/tests/sh/07-depsolver
diff -u poldek/poldek/tests/sh/07-depsolver:1.1 poldek/poldek/tests/sh/07-depsolver:1.2
--- poldek/poldek/tests/sh/07-depsolver:1.1 Mon Jan 21 15:49:49 2008
+++ poldek/poldek/tests/sh/07-depsolver Wed Jan 23 23:55:08 2008
@@ -5,6 +5,8 @@
. ./sh/lib/repo-setup
ORIGREPO=
+DESTINATION_REPO=
+DEPENDENCY_SOLVER=3
tearDown() {
#[ -n "$REPO" ] && rm -f $REPO/*.*
@@ -13,16 +15,25 @@
setUp() {
[ -z "$ORIGREPO" ] && ORIGREPO=$REPO
[ -z "$ORIGREPO" ] && fail "empty REPO env variable"
- REPO="$ORIGREPO/$SU_FUNC"
- rm -rf $REPO
+ rm -rf $ORIGREPO/*
+
+ REPO="$ORIGREPO/src"
+ DESTINATION_REPO="$ORIGREPO/dest";
+
+ rm -rf $REPO $DESTINATION_REPO
+
mkdir -p $REPO || fail "mkdir $REPO failed"
+ mkdir -p $DESTINATION_REPO || fail "mkdir $DESTINATION_REPO failed"
+ # provide /bin/sh auto requirement
+ build_installed sh -p /bin/sh
}
PACKAGE_DIR="$REPO"
DEFAULT_VER="1-1"
-build() {
+do_build_package() {
+ destdir=$1; shift
name=$1; shift
version=""
@@ -40,19 +51,33 @@
params=""
[ $# -gt 0 ] && params="$@";
- #eval ./build-test-rpm.sh -d $REPO -n $name -v $version $params
- eval ./build-test-rpm.sh -d $REPO -n $name -v $version $params >/dev/null 2>&1 || fail "build package $name failed"
+ #eval ./build-test-rpm.sh -d $destdir -n $name -v $version $params
+ eval ./build-test-rpm.sh -d $destdir -n $name -v $version $params >/dev/null 2>&1 || fail "build package $name failed"
}
-# install "a" package, check result against expected arg
-try_install_a() {
- expected="$1"
+build() {
+ do_build_package $REPO $@
+}
+build_installed() {
+ do_build_package $DESTINATION_REPO $@
+}
+
+# install "a" package, check result against expected arg
+try_install() {
+ package="$1"; shift
+ expected="$1"; shift
+ poldek_options=""
+ [ $# -gt 0 ] && poldek_options="$@";
regexp=$(echo $expected | sed 's/,/|/g')
n_expected=$(echo $expected | sed 's|,|\n|g' | wc -l)
- cmd="$POLDEK_NOCONF -Odependency_solver=3 --st dir -s $REPO -uvt a"
+ cmd="$POLDEK_NOCONF -Odependency_solver=3 --noask $poldek_options"
+ cmd="$cmd --st dir -s $REPO --dt dir --destination $DESTINATION_REPO"
+ cmd="$cmd -uvt $package"
+
if is_verbose_mode; then
+ echo $cmd
$cmd || fail "'poldek -uvt a' failed"
else
$cmd >/dev/null 2>&1 || fail "'poldek -uvt a' failed"
@@ -65,9 +90,12 @@
assertEquals "not all or non expected packages installed (expected $expected)" "$n" "$n_expected"
}
+try_install_a() {
+ try_install "a" $@
+}
+
# 'c' has unmet requirement
-testChooseTheRightAlternative_1()
-{
+testChooseTheRightAlternative_1() {
build a -r "CAP"
build c -p "CAP" -r "unmetreq"
build d -p "CAP"
@@ -75,8 +103,7 @@
}
# 'd' should be choosen instead of non-resolvable 'c'
-testChooseTheRightAlternative_2()
-{
+testChooseTheRightAlternative_2() {
build a -r "b"
build b -r "CAP"
build c -p "CAP" -r "unmetreq"
@@ -84,8 +111,20 @@
try_install_a "a,b,d"
}
-# first, but wrong resolved set is: a,b,c,e,g
+# as above, but 'c' has more (solvable) requirements
testChooseTheRightAlternative_3() {
+ build a -r "b"
+ build b -r "CAP"
+ build c -p "CAP" -r "foo" -r "bar" -r "unmetreq" -r "zfoo"
+ build d -p "CAP"
+ build foo
+ build bar
+ build zfoo
+ try_install_a "a,b,d"
+}
+
+# first, but wrong resolved set is: a,b,c,e,g
+testChooseTheRightAlternative_4() {
build a -r "b"
build b -r "CAP"
@@ -101,6 +140,7 @@
try_install_a "a,b,d,f,h"
}
+
# package 'x' provides all 'a' requirements
testChooseMoreAccuratePackage() {
build a -r "b" -r "c" -r "d" -r "x"
@@ -129,4 +169,66 @@
try_install_a "a,b\-1"
}
+testSuggests() {
+ build_installed suggested
+ build a -s "suggested" -s "b" -s "c"
+ build b
+ build c
+ POLDEK_TESTING_WITH_SUGGESTS="all" # choose all suggested packages
+ export POLDEK_TESTING_WITH_SUGGESTS
+ try_install_a "a,b,c"
+
+ POLDEK_TESTING_WITH_SUGGESTS="2" # choose b only (1st installable suggested package)
+ try_install_a "a,b"
+ POLDEK_TESTING_WITH_SUGGESTS=
+}
+
+testUpgradeSet() {
+ prev_i=
+ for i in b c d e f a; do
+ build_installed $i 1-1
+ if [ -z "$prev_i" ]; then
+ build_installed $i 1-1
+ build $i 2-2
+ else
+ build_installed $i 1-1 -r "'$prev_i = 1-1'"
+ build $i 2-2 -r "'$prev_i = 2-2'"
+ fi
+ prev_i=$i
+ done
+
+ try_install_a "a,b,c,d,e,f"
+}
+
+# all 'a*' must be upgraded at once
+testUpgradeGreedy() {
+ for i in "1-1" "2-2"; do
+ build a $i
+ build a-devel $i -r "'a = $i'"
+ build a-static $i -r "'a-devel = $i'"
+ done
+ mv $REPO/a*1-1*.rpm $DESTINATION_REPO || fail "mv failed"
+ try_install a "a,a-devel,a-static"
+ try_install a-devel "a,a-devel,a-static"
+ try_install a-static "a,a-devel,a-static"
+}
+
+# bar obsoletes foo
+testUpgradeObsolete() {
+ build_installed a 1-1
+ build_installed a-devel 1-1 -r "'a = 1-1'"
+ build_installed a-static 1-1 -r "'a-devel = 1-1'"
+ build_installed foo 1-1 -r "'a = 1-1'" -p "FOO" -o "FOO"
+
+ build a 2-2
+ build a-devel 2-2 -r "'a = 2-2'"
+ build a-static 2-2 -r "'a-devel = 2-2'"
+ build afoo 1-1 -p "FOO" -o "FOO" -o foo
+ build bar 1-1 -o "foo"
+
+ try_install a "a,a-devel,a-static,bar"
+
+ #try_install bar "a,a-devel,a-static,bar"
+}
+
. ./sh/lib/shunit2
\ No newline at end of file
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/tests/build-test-rpm.sh?r1=1.8&r2=1.9&f=u
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/poldek/poldek/tests/sh/07-depsolver?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list