My plan for testing of various things along the way is that we will run
tests on all the data from .debug files in the Fedora rawhide distribution.
Pretty soon we will have dwarflint enough there that we can test it
exhaustively on the data. (As well as crashes or false positives, it will
be interesting to see if it finds any true positives and look into those.)
I have a local mirror of rawhide binaries on hand, and enough spare disk
space. So I've unpacked all the debuginfo files. It takes up about 32G
for x86_64 alone, and about 123G for x86_64,i386,ppc,ppc64 all together.
Today that's 16460 rpms containing 120458 .debug files we get to test on.
Below is the script I used to extract the files. I used it like:
$ cd /net/pa/mirror/fc/development/ppc64/debug
$ ls | xargs sh extract-rpm /home/tmp
where I cd'd into the debug/ subdir of the distro tree,
and /home/tmp is where I have lots of free space. It gets
populated with directory trees like:
0xFFFF-debuginfo-0.3.9-2.fc9.ppc64/usr/lib/debug/usr/bin/0xFFFF.debug
0xFFFF-debuginfo-0.3.9-2.fc9.ppc64/usr/lib/debug/usr/bin/logotool.debug
etc.
If you have a local mirror and the space to spare, do this locally to have
the files on hand to try out easily. I'll keep my unpacked copy around too
and whenever we hit a milestone worthy of thorough testing, we can throw a
test machine at chugging through all the files.
As it develops, we should probably cull some wisdom for wiki pages
about testing.
Thanks,
Roland
#!/bin/sh
dest=$1; shift
for rpm; do
name="${rpm%.rpm}"
if [ "$name" = "$rpm" ]; then
echo >&2 "not .rpm: $rpm"
continue
fi
name="${name##*/}"
if [ -d "$dest/$name" ] && ! rmdir "$dest/$name" 2>
/dev/null; then
echo >&2 "$name already there"
continue
fi
mkdir -p "$dest/$name" || exit
rpm2cpio "$rpm" |
(cd "$dest/$name"; cpio --quiet --extract --no-abs --make-dir ||
echo >&2 "FAILED: $name")
done
Show replies by date