[Collab-qa-commits] r1833 - debcluster/scripts/tasks

Lucas Nussbaum lucas at alioth.debian.org
Sun Oct 31 20:18:52 UTC 2010


Author: lucas
Date: 2010-10-31 20:18:47 +0000 (Sun, 31 Oct 2010)
New Revision: 1833

Modified:
   debcluster/scripts/tasks/instest.rb
Log:
instest work during minidebconf paris

Modified: debcluster/scripts/tasks/instest.rb
===================================================================
--- debcluster/scripts/tasks/instest.rb	2010-10-30 14:41:58 UTC (rev 1832)
+++ debcluster/scripts/tasks/instest.rb	2010-10-31 20:18:47 UTC (rev 1833)
@@ -51,11 +51,6 @@
   STDERR.reopen(log)
 end
 
-# implementing firewall rules
-$rulesbefore=`mktemp /tmp/rulesbefore.XXXXXX`.chomp
-$rulesafter=`mktemp /tmp/rulesafter.XXXXXX`.chomp
-system("iptables-save -c > #{$rulesbefore} || true")
-
 # Copy chroot locally if needed
 if ['lsid32', 'llenny32', 'lsid64', 'lsid64-instest', 'lsid64b', 'lsid64c', 'llucid32', 'llucid64', 'lsqueeze64-instest'].include?($chroot)
   chr = $chroot.gsub(/^l/,'')
@@ -104,30 +99,24 @@
   puts "-- Tests OK: #{$tests_ok.join(' ')}"
   puts "-- Tests Failed: #{$tests_failed.join(' ')}"
 
-  system("/sbin/iptables-save -c > #{$rulesafter} || true")
-  lines = IO::read($rulesafter).grep(/REJECT/)
-  if lines.length > 0 and lines[0].split(' ')[0] != "[0:0]"
-    puts "Network: USED. See #{$rulesafter} !"
-    puts "*" * 60
-    system("cat #{$rulesafter}")
-    puts "*" * 60
-    system("diff -u #{$rulesbefore} #{$rulesafter}")
-    puts "*" * 60
-    system("dmesg | tail -50")
-    puts "*" * 60
-  end
-  system("rm #{$rulesbefore} #{$rulesafter}")
-
   Dir::chdir("/")
   system("rm -rf #{$wdir}")
 end
 
-
 # start!
 puts "IT-Header: #{$package} #{$chroot} / #{$tstart}"
 
 # first test. install b-deps first, then package.
 chr = create_chroot
+$defaultinst = false
+print "-- Checking if the package is already installed: "
+s = `schroot -c #{chr} -r -- apt-cache policy #{$package} 2>&1`.chomp
+if s =~ /Installed: \(none\)/
+  puts "NO"
+else
+  puts "YES"
+  $defaultinst = true
+end
 print "-- Finding version: #{$package} "
 s = `schroot -c #{chr} -r -- apt-cache show #{$package} 2>&1`.chomp
 unstable_version = s.split(/\n/).grep(/^Version: /)[0].split(' ')[1]
@@ -140,16 +129,20 @@
   exit(0)
 end
 pkgs = (s.split(/\n/).grep(/^Inst /).map { |e| e.split(' ')[1] } - [$package])
-puts pkgs.join(' ')
-print "-- Installing depends: "
-s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y install #{pkgs.join(' ')} 2>&1`
-if $?.exitstatus != 0
-  puts "FAILED\n#{form(s)}"
-  $tests_failed << 'inst-deps'
-  exit(0)
+if pkgs != []
+  puts pkgs.join(' ')
+  print "-- Installing depends: "
+  s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y install #{pkgs.join(' ')} 2>&1`
+  if $?.exitstatus != 0
+    puts "FAILED\n#{form(s)}"
+    $tests_failed << 'inst-deps'
+    puts "-- Installing depends failed, but we are trying to install the package directly anyway since apt might be able to do better."
+  else
+    puts "OK\n#{form(s)}"
+    $tests_ok << 'inst-deps'
+  end
 else
-  puts "OK\n#{form(s)}"
-  $tests_ok << 'inst-deps'
+  puts "-- No depends to install, skipping dependencies installation."
 end
 print "-- Installing the package after its depends: "
 s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y install #{$package} 2>&1`
@@ -159,6 +152,12 @@
   exit(0)
 else
   puts "OK\n#{form(s)}"
+  if $tests_failed.include?('inst-deps')
+    # installing the deps failed for some reason, but installing the package
+    # worked. it might be caused by suboptimal apt choices. ignoring the inst-deps
+    # error.
+    $tests_failed.delete('inst-deps')
+  end
   $tests_ok << 'inst-after-deps'
 end
 
@@ -201,33 +200,38 @@
 else
   puts "OK\n#{form(s)}"
   $tests_ok << 'inst-with-recs'
-  pkgs_after = `schroot -c #{chr} -r -- dpkg -l 2>&1`.split(/\n/).grep(/^ii /).map { |e| e.split(/\s+/)[1] }
-  print "-- Removing the package: "
-  s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y --force-yes remove #{$package} 2>&1`
-  if $?.exitstatus != 0
-    puts "FAILED\n#{form(s)}"
-    $tests_failed << 'rm-pkg'
+  if $defaultinst
+    puts "-- Package in default install, not testing removal."
   else
-    puts "OK\n#{form(s)}"
-    $tests_ok << 'rm-pkg'
-    print "-- Removing all dependencies: "
-    # ignore problems with adduser and ucf at this point
-    deps = (pkgs_after - pkgs_before - [$package, 'adduser', 'ucf'])
-    s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y --force-yes remove #{deps.join(' ')} 2>&1`
+    pkgs_after = `schroot -c #{chr} -r -- dpkg -l 2>&1`.split(/\n/).grep(/^ii /).map { |e| e.split(/\s+/)[1] }
+    print "-- Removing the package: "
+    s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y --force-yes remove #{$package} 2>&1`
     if $?.exitstatus != 0
       puts "FAILED\n#{form(s)}"
-      $tests_failed << 'rm-deps'
+      $tests_failed << 'rm-pkg'
     else
       puts "OK\n#{form(s)}"
-      $tests_ok << 'rm-deps'
-      print "-- Purging package: "
-      s = `schroot -c #{chr} -r -- dpkg --purge #{$package} 2>&1`
+      $tests_ok << 'rm-pkg'
+      print "-- Removing all dependencies: "
+      # ignore problems with adduser and ucf at this point
+      # also about install-info, for now (bug filed against apt)
+      deps = (pkgs_after - pkgs_before - [$package, 'adduser', 'ucf', 'update-inetd', 'perl-modules', 'install-info'])
+      s = `schroot -c #{chr} -r -- apt-get -o Debug::pkgProblemResolver=true -y --force-yes remove #{deps.join(' ')} 2>&1`
       if $?.exitstatus != 0
         puts "FAILED\n#{form(s)}"
-        $tests_failed << 'purge-pkg'
+        $tests_failed << 'rm-deps'
       else
         puts "OK\n#{form(s)}"
-        $tests_ok << 'purge-pkg'
+        $tests_ok << 'rm-deps'
+        print "-- Purging package: "
+        s = `schroot -c #{chr} -r -- dpkg --purge #{$package} 2>&1`
+        if $?.exitstatus != 0
+          puts "FAILED\n#{form(s)}"
+          $tests_failed << 'purge-pkg'
+        else
+          puts "OK\n#{form(s)}"
+          $tests_ok << 'purge-pkg'
+        end
       end
     end
   end




More information about the Collab-qa-commits mailing list