Browse Source

improve test some more

Michael Vogt 14 years ago
parent
commit
549b493948
2 changed files with 31 additions and 2 deletions
  1. 1 0
      test/integration/framework
  2. 30 2
      test/integration/test-ubuntu-bug346386

+ 1 - 0
test/integration/framework

@@ -688,6 +688,7 @@ signreleasefiles() {
 }
 
 changetowebserver() {
+
         if [ -n "$1" ] && ! test -x ${BUILDDIRECTORY}/aptwebserver; then
             msgdie 'Need the aptwebserver when passing arguments'
         fi

+ 30 - 2
test/integration/test-ubuntu-bug346386

@@ -1,6 +1,24 @@
 #!/bin/sh
 set -e
 
+ensure_n_canary_strings_in_dir() {
+    DIR=$1
+    CANARY_STRING=$2
+    EXPECTED_N=$3
+
+    msgtest "Testing for $EXPECTED_N canary strings '$CANARY_STRING' in in $DIR"
+    
+
+    N=$(grep "$CANARY_STRING" $DIR/* 2>/dev/null |wc -l )
+    if [ "$N" = "$EXPECTED_N" ]; then
+        msgpass
+        return 0
+    else
+        msgfail "Expected $EXPECTED_N canaries, got $N"
+        return 1
+    fi
+}
+
 TESTDIR=$(readlink -f $(dirname $0))
 . $TESTDIR/framework
 
@@ -13,7 +31,17 @@ setupaptarchive
 changetowebserver --simulate-paywall
 
 rm -rf rootdir/var/lib/apt/lists
-aptget update 
-testequal 'partial' "$(ls rootdir/var/lib/apt/lists/)"
+if aptget update -qq 2>/dev/null; then
+    msgfail "excpected apt-get update failure"
+fi
+ensure_n_canary_strings_in_dir rootdir/var/lib/apt/lists/ "ni ni ni" 0
+testequal 'partial' ls rootdir/var/lib/apt/lists/
 
+# again, this time with pre-existing files valid data
+for f in Release Release.gpg main_binary-amd64_Packages stable_main_source_Sources; do 
+    echo "canary" > rootdir/var/lib/apt/lists/localhost:8080_dists_stable_${f}
+done
+# this will fail, the important part is that the canaries remain
+aptget update -qq 2>/dev/null || true
+ensure_n_canary_strings_in_dir rootdir/var/lib/apt/lists/ "canary" 4