X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tests%2Ftests.sh;h=76597eb6d621ab0215d2d21ef5e5c53b6a449cf7;hb=ecdd3ec8d7247cb92defb0f071114eb295611196;hp=4d16c2258c5c278fca462d2fb37210689970966b;hpb=cc2a316078510d6adaf84a6ea66ad09d4fb483fb;p=wannabuild.git diff --git a/tests/tests.sh b/tests/tests.sh index 4d16c22..76597eb 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -36,6 +36,18 @@ function assert_grep { fi } +function assert_grep_not { + cat > $testdir/assert_grep + if grep -q "$1" $testdir/assert_grep + then + echo "Could find unexpected \"$1\" in:" + cat $testdir/assert_grep + # We are in a pipe, i.e. a subshell, so kill the parent + kill -TERM $parent_pid + exit 1 + fi +} + cd "$(dirname $0)"/.. assert "[ -e bin/wanna-build ]" @@ -73,7 +85,7 @@ mkdir $testdir/db/amd64; function wanna-build { # Here we make sure that the "require /etc/wanan-build.conf" does not # have effect, and load our own file instead. - echo "Executing wanna-build" "$@" >&2 + #echo "Executing wanna-build" "$@" >&2 export PERL5LIB=/home/jojo/debian/wanna-build/testsetup/bin perl -e ' package conf; @@ -108,7 +120,6 @@ Version: 1 Architecture: any Section: misc Priority: standard -Build-Depends: compiler Binary: bin-a-indep,bin-a-1 __END__ wanna-build -A amd64 -b amd64/build-db --merge-all $testdir/Packages $testdir/quinn-diff $testdir/Sources @@ -144,7 +155,6 @@ Version: 1 Architecture: any Section: misc Priority: standard -Build-Depends: compiler Binary: bin-a-indep,bin-a-1 __END__ wanna-build -A amd64 -b amd64/build-db --merge-all $testdir/Packages $testdir/quinn-diff $testdir/Sources @@ -173,7 +183,6 @@ Version: 1 Architecture: any Section: misc Priority: standard -Build-Depends: compiler Binary: bin-a-indep,bin-a-1 Package: src-b @@ -187,6 +196,8 @@ __END__ wanna-build -A amd64 -b amd64/build-db --merge-all $testdir/Packages $testdir/quinn-diff $testdir/Sources wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep "bin-a-1 (>= 2)" +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep " State .*: BD-Uninstallable" +wanna-build -A amd64 -b amd64/build-db --list bd-uninstallable | assert_grep "src-b" echo Uploading the new source with an updated binary package cat > $testdir/Packages <<__END__ @@ -201,7 +212,6 @@ Architecture: amd64 Source: src-a __END__ cat > $testdir/quinn-diff <<__END__ -misc/src-a_1.dsc [optional:uncompiled] misc/src-b_1.dsc [optional:uncompiled] __END__ cat > $testdir/Sources <<__END__ @@ -210,7 +220,6 @@ Version: 2 Architecture: any Section: misc Priority: standard -Build-Depends: compiler Binary: bin-a-indep,bin-a-1 Package: src-b @@ -223,6 +232,69 @@ Binary: bin-b __END__ wanna-build -A amd64 -b amd64/build-db --merge-all $testdir/Packages $testdir/quinn-diff $testdir/Sources -wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep "State.*:.*Needs-Build" +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep " State.*:.*Needs-Build" +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep_not "BD-Problem.*:" + +echo "Exporting database" +wanna-build -A amd64 -b amd64/build-db --export $testdir/export1 + +echo "Importing database" +wanna-build -A amd64 -b amd64/build-db --import $testdir/export1 + +echo "Exporting database again" +wanna-build -A amd64 -b amd64/build-db --export $testdir/export2 + +if ! diff -q $testdir/export1 $testdir/export2 +then + echo "Exporting and importing is not idempotent!" + exit 1 +fi + +echo "Marking package as failed, with newlines in the argument" +wanna-build -A amd64 -b amd64/build-db -m "$(echo -e "Package failed\nTo Build\n\nBadly\n \nOuch")" --failed src-b_1 +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep " State.*:.*Failed" + +echo "Exporting database" +wanna-build -A amd64 -b amd64/build-db --export $testdir/export1 + +echo "Importing database" +wanna-build -A amd64 -b amd64/build-db --import $testdir/export1 + +echo "Exporting database again" +wanna-build -A amd64 -b amd64/build-db --export $testdir/export2 + +if ! diff -q $testdir/export1 $testdir/export2 +then + echo "Exporting and importing is not idempotent!" + exit 1 +fi + +echo "Giving back failed package" +wanna-build -A amd64 -b amd64/build-db -o --give-back src-b_1 + +echo "Giving back package agian to clear BD-Uninstallable" +wanna-build -A amd64 -b amd64/build-db -o --give-back src-b_1 + +echo "Taking the build" +wanna-build -A amd64 -b amd64/build-db --take src-b_1 +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep " State.*:.*Building" +echo "Giving back the build" +wanna-build -A amd64 -b amd64/build-db --give-back src-b_1 +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep " State .*: BD-Uninstallable" + +echo "Running --merge-all with no changes" +wanna-build -A amd64 -b amd64/build-db --merge-all $testdir/Packages $testdir/quinn-diff $testdir/Sources +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep " State.*:.*Needs-Build" +wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep_not "BD-Problem.*:" + +echo "Doing a binNMU" +wanna-build -A amd64 -b amd64/build-db -m 'binNMU-Test' --binNMU 1 src-a_2 +wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep " State.*:.*BD-Uninstallable" +wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep "BD-Problem.*:" + +echo "Running --merge-all with no changes" +wanna-build -A amd64 -b amd64/build-db --merge-all $testdir/Packages $testdir/quinn-diff $testdir/Sources +wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep " State.*:.*Needs-Build" +wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep "Binary-NMU-Version.*1" echo "Finished sucessfully"