[Collab-qa-commits] r694 - tools/debcmp
lucas at alioth.debian.org
lucas at alioth.debian.org
Tue Feb 5 20:34:19 UTC 2008
Author: lucas
Date: 2008-02-05 20:34:18 +0000 (Tue, 05 Feb 2008)
New Revision: 694
Modified:
tools/debcmp/Notes
tools/debcmp/debcmp.rb
Log:
small debcmp improvements
Modified: tools/debcmp/Notes
===================================================================
--- tools/debcmp/Notes 2008-02-03 14:45:24 UTC (rev 693)
+++ tools/debcmp/Notes 2008-02-05 20:34:18 UTC (rev 694)
@@ -1,8 +1,11 @@
+D1=~/debcluster-data/results/bdfh/normal/
+D2=~/debcluster-data/results/bdfh/bdfh/
-D1=/scratch/grenoble/lnussbaum/debcluster-data/debian-mirror/pool/main
-D2=/scratch/grenoble/lnussbaum/debcluster-data/logs/output.20070220
+find $D1 -name '*.dsc' -exec basename {} \; |sed 's/.dsc$//' | sort > d1_dsc
+find $D2 -name '*.dsc' -exec basename {} \; |sed 's/.dsc$//' | sort > d2_dsc
+cat d1_dsc d2_dsc | sort | uniq -c | grep "^\s*2 " | awk '{print $2}' > dsc
-for i in $(find $D2 -name '*.dsc' -exec basename {} \; |sed 's/.dsc$//' | sort); do
+for i in $(<dsc); do
set $(echo $i | sed 's/_/ /')
echo $1 $2
echo "./debcmp.rb -p $1 -v $2 -a $D1 -b $D2 --pool" > ${1}_${2}.cmd
@@ -18,3 +21,12 @@
./debcmp.rb -p $1 -v $2 -a $D1 -b $D2 --pool &> ${1}_${2}.out || echo "FAILED $1 $2"
done
+
+# move 0-sized files to subdir
+mkdir output_zero
+for f in *.out; do
+ if [ -f $f -a ! -s $f ]; then
+ mv ${f%%out}cmd $f output_zero/
+ fi
+done
+
Modified: tools/debcmp/debcmp.rb
===================================================================
--- tools/debcmp/debcmp.rb 2008-02-03 14:45:24 UTC (rev 693)
+++ tools/debcmp/debcmp.rb 2008-02-05 20:34:18 UTC (rev 694)
@@ -1,4 +1,4 @@
-#!/usr/bin/ruby -w
+#!/usr/bin/ruby
#
# example:
# ./debcmd.rb -p hebcal -v 3.5-1 -a ~/mir/mirror/h/hebcal -b ~/mir/built/h/hebcal
@@ -16,7 +16,7 @@
$arch = 'i386'
$nocleanup = false
pool = false
-tmpbase = '/scratch/grenoble/lnussbaum/tmp'
+tmpbase = '/scratch/grenoble/lnussbaum/debcluster-data/tmp'
# create the first working directories
$wd = `mktemp -d #{tmpbase}/debcmp.XXXXXX`.chomp
@@ -129,7 +129,7 @@
tgz_a = ! Dir::glob("#{sdir_a}/*_#{sversion}*.tar.gz").empty?
tgz_b = ! Dir::glob("#{sdir_b}/*_#{sversion}*.tar.gz").empty?
-if Dir::glob("#{sdir_b}/*_#{version}_*.deb").length == 0
+if Dir::glob("#{sdir_b}/*_*_*.{deb,udeb}").length == 0
puts "E: No .deb files found! Build probably failed."
clean_exit(1)
end
@@ -138,26 +138,35 @@
if native
systemr("cp #{sdir_a}/*_#{sversion}.tar.gz #{sdir_a}/*_#{version}.dsc #{$wd}/a")
systemr("cp #{sdir_b}/*_#{sversion}.tar.gz #{sdir_b}/*_#{version}.dsc #{$wd}/b")
- l = Dir::glob("#{sdir_a}/*_#{version}_*.deb").reject { |e| e !~ /_(#{$arch}|all).deb/ }
+ l = Dir::glob("#{sdir_a}/*_*_*.{deb,udeb}").reject { |e| e !~ /_(#{$arch}|all).(u|)deb/ }
systemr("cp #{l.join(' ')} #{$wd}/a")
- l = Dir::glob("#{sdir_b}/*_#{version}_*.deb").reject { |e| e !~ /_(#{$arch}|all).deb/ }
+ l = Dir::glob("#{sdir_b}/*_*_*.{deb,udeb}").reject { |e| e !~ /_(#{$arch}|all).(u|)deb/ }
systemr("cp #{l.join(' ')} #{$wd}/b")
else
systemr("cp #{sdir_a}/*_#{version}{.dsc,.diff.gz} #{$wd}/a")
systemr("cp #{sdir_a}/*_#{sversion}.orig.tar.gz #{$wd}/a") if tgz_a
- l = Dir::glob("#{sdir_a}/*_#{version}_*.deb").reject { |e| e !~ /_(#{$arch}|all).deb/ }
- systemr("cp #{l.join(' ')} #{$wd}/a")
systemr("cp #{sdir_b}/*_#{version}{.dsc,.diff.gz} #{$wd}/b")
systemr("cp #{sdir_b}/*_#{sversion}.orig.tar.gz #{$wd}/b") if tgz_b
- l = Dir::glob("#{sdir_b}/*_#{version}_*.deb").reject { |e| e !~ /_(#{$arch}|all).deb/ }
- systemr("cp #{l.join(' ')} #{$wd}/b")
-end
+ l = Dir::glob("#{sdir_a}/*_*_*.{deb,udeb}").reject { |e| e !~ /_(#{$arch}|all).(u|)deb/ }
+ systemr("cp #{l.join(' ')} #{$wd}/a")
+ l = Dir::glob("#{sdir_b}/*_*_*.{deb,udeb}").reject { |e| e !~ /_(#{$arch}|all).(u|)deb/ }
+ systemr("cp #{l.join(' ')} #{$wd}/b")end
# compare orig.tar.gz and .diff.gz files
puts "# Comparing .orig.tar.gz and .diff.gz files..." if $verbose
if native
if not system("cmp #{$wd}/a/*.tar.gz #{$wd}/b/*.tar.gz &>/dev/null")
- puts "E: .tar.gz files differ (native package)."
+ if not system("zcmp #{$wd}/a/*.tar.gz #{$wd}/b/*.tar.gz &>/dev/null")
+ # archives differ
+ systemr("mkdir -p #{$wd}/tgz_{a,b}")
+ systemr("tar xz -C #{$wd}/tgz_a -f #{$wd}/a/*.tar.gz")
+ systemr("tar xz -C #{$wd}/tgz_b -f #{$wd}/b/*.tar.gz")
+ s1 = `diff -bur #{$wd}/tgz_a #{$wd}/tgz_b`.chomp
+ if s1.length != 0
+ puts "E: .tar.gz files differ (native package):"
+ puts s1
+ end
+ end
end
elsif tgz_a and tgz_b
if not system("cmp #{$wd}/a/*.orig.tar.gz #{$wd}/b/*.orig.tar.gz")
@@ -184,8 +193,8 @@
# compare list of .debs
puts "# Comparing list of .debs ..." if $verbose
-debs_a = Dir::glob("#{$wd}/a/*.deb").map { |f| File::basename(f) }.sort
-debs_b = Dir::glob("#{$wd}/b/*.deb").map { |f| File::basename(f) }.sort
+debs_a = Dir::glob("#{$wd}/a/*.{deb,udeb}").map { |f| File::basename(f) }.sort
+debs_b = Dir::glob("#{$wd}/b/*.{deb,udeb}").map { |f| File::basename(f) }.sort
if debs_a != debs_b
puts "E: different debs in dirs:"
puts "E: A: #{debs_a.join(' ')}"
@@ -319,8 +328,8 @@
end
# function to compare file sizes
-ERROR_THR = 0.2
-WARNING_THR = 0.03
+ERROR_THR = 0.05
+WARNING_THR = 0.02
def cmpsize(d, base_a, base_b, f)
s_a = File::size("#{base_a}/#{f}")
s_b = File::size("#{base_b}/#{f}")
@@ -374,6 +383,13 @@
end
end
+ elsif t =~ /^application\/x-bzip2/
+ systemr("bzcat \"#{base_a}/#{f}\" > \"#{base_a}/#{f}.unzipped\"")
+ systemr("bzcat \"#{base_b}/#{f}\" > \"#{base_b}/#{f}.unzipped\"")
+ t = `file -ib "#{base_a}/#{f}.unzipped"`.chomp
+ filecmp(d, base_a, base_b, "#{f}.unzipped", t)
+ systemr("rm -f \"#{base_a}/#{f}.unzipped\" \"#{base_b}/#{f}.unzipped\"")
+
elsif t =~ /^application\/x-sharedlib/
system("objdump -p \"#{base_a}/#{f}\" |grep NEEDED > \"#{base_a}/#{f}.objdumpp\"")
system("objdump -p \"#{base_b}/#{f}\" |grep NEEDED > \"#{base_b}/#{f}.objdumpp\"")
@@ -419,7 +435,7 @@
elsif t =~ /^text\// or t == 'application/x-perl' or t == 'application/x-empty' or t == '' or t =~ /^image\// or t == 'application/x-shellscript' or t == 'application/pdf'
# files must be the sames
equalfiles?(d, base_a, base_b, f)
- elsif t == 'application/x-archive'
+ elsif t == 'application/x-archive' || t =~ /^application\/x-tar/ # FIXME could uncompress and look inside
# just compare size
cmpsize(d, base_a, base_b, f)
else
More information about the Collab-qa-commits
mailing list