[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