This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

.debug files for testing


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]