]> git.donarmstrong.com Git - wannabuild.git/blobdiff - tests/tests.sh
another fix for use warnings
[wannabuild.git] / tests / tests.sh
index 311963ad5bda04fbd3e1562e9dc065b4501147e5..76597eb6d621ab0215d2d21ef5e5c53b6a449cf7 100755 (executable)
@@ -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 ]"
@@ -59,6 +71,7 @@ cat > $testdir/wanna-build.conf <<__END__
 \$quinn_source = "$testdir/quinn-diff-output";
 \$quinn_source_multi_section = 0;
 @admin_users = qw(wbadm $USER);
+\$mailprog = "/bin/true";
 %distributions = (
         "unstable" => { },
 );
@@ -72,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;
@@ -91,25 +104,25 @@ function wanna-build {
 wanna-build -A amd64 -b amd64/build-db --create-db --info no-package-1.2.3
 
 echo Load some sources
-wanna-build -A amd64 -b amd64/build-db --merge-all <(cat <<__END__ 
+
+cat > $testdir/Packages <<__END__ 
 Package: bin-a-indep
 Version: 1
 Architecture: all
 Source: src-a
 __END__
-) <( cat <<__END__ 
+cat > $testdir/quinn-diff <<__END__
 misc/src-a_1.dsc [optional:uncompiled]
 __END__
-)  <( cat <<__END__
+cat > $testdir/Sources <<__END__
 Package: src-a
 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
 
 # Test that they exist are in state Needs-Build
 wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep ' State.*: Needs-Build'
@@ -123,7 +136,7 @@ wanna-build -A amd64 -b amd64/build-db --uploaded src-a_1
 wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep ' State.*: Uploaded'
 
 echo Load the binaries for the sources
-wanna-build -A amd64 -b amd64/build-db --merge-all <(cat <<__END__ 
+cat > $testdir/Packages <<__END__ 
 Package: bin-a-indep
 Version: 1
 Architecture: all
@@ -134,24 +147,23 @@ Version: 1
 Architecture: amd64
 Source: src-a
 __END__
-) <( cat <<__END__ 
+cat > $testdir/quinn-diff <<__END__
 __END__
-)  <( cat <<__END__
+cat > $testdir/Sources <<__END__
 Package: src-a
 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
 
 # Test that they exist are in state Needs-Build
 wanna-build -A amd64 -b amd64/build-db --info src-a | assert_grep ' State .*: Installed'
 
 echo Upload another source that needs bin-a-1 in Version 2
-wanna-build -A amd64 -b amd64/build-db --merge-all <(cat <<__END__ 
+cat > $testdir/Packages <<__END__ 
 Package: bin-a-indep
 Version: 1
 Architecture: all
@@ -162,16 +174,15 @@ Version: 1
 Architecture: amd64
 Source: src-a
 __END__
-) <( cat <<__END__ 
+cat > $testdir/quinn-diff <<__END__
 misc/src-b_1.dsc [optional:uncompiled]
 __END__
-)  <( cat <<__END__
+cat > $testdir/Sources <<__END__
 Package: src-a
 Version: 1
 Architecture: any
 Section: misc
 Priority: standard
-Build-Depends: compiler
 Binary: bin-a-indep,bin-a-1
 
 Package: src-b
@@ -182,12 +193,14 @@ Priority: standard
 Build-Depends: bin-a-1 (>= 2)
 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 "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
-wanna-build -A amd64 -b amd64/build-db --merge-all <(cat <<__END__ 
+cat > $testdir/Packages <<__END__ 
 Package: bin-a-indep
 Version: 2
 Architecture: all
@@ -198,18 +211,16 @@ Version: 2
 Architecture: amd64
 Source: src-a
 __END__
-) <( cat <<__END__ 
-misc/src-a_1.dsc [optional:uncompiled]
+cat > $testdir/quinn-diff <<__END__
 misc/src-b_1.dsc [optional:uncompiled]
 __END__
-)  <( cat <<__END__
+cat > $testdir/Sources <<__END__
 Package: src-a
-Version: 1
+Version: 2
 Architecture: any
 Section: misc
 Priority: standard
-Build-Depends: compiler
-Binary: bin-a-indep,bin-a-1,bin-a-2
+Binary: bin-a-indep,bin-a-1
 
 Package: src-b
 Version: 1
@@ -219,8 +230,71 @@ Priority: standard
 Build-Depends: bin-a-1 (>= 2)
 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_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.*:"
 
-wanna-build -A amd64 -b amd64/build-db --info src-b | assert_grep "State.*:.*Needs-Build"
+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"