Blame tests/run-dwarf-ranges.sh

Packit Service 97d2fb
#! /bin/sh
Packit Service 97d2fb
# Copyright (C) 2015, 2018 Red Hat, Inc.
Packit Service 97d2fb
# This file is part of elfutils.
Packit Service 97d2fb
#
Packit Service 97d2fb
# This file is free software; you can redistribute it and/or modify
Packit Service 97d2fb
# it under the terms of the GNU General Public License as published by
Packit Service 97d2fb
# the Free Software Foundation; either version 3 of the License, or
Packit Service 97d2fb
# (at your option) any later version.
Packit Service 97d2fb
#
Packit Service 97d2fb
# elfutils is distributed in the hope that it will be useful, but
Packit Service 97d2fb
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 97d2fb
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 97d2fb
# GNU General Public License for more details.
Packit Service 97d2fb
#
Packit Service 97d2fb
# You should have received a copy of the GNU General Public License
Packit Service 97d2fb
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 97d2fb
Packit Service 97d2fb
. $srcdir/test-subr.sh
Packit Service 97d2fb
Packit Service 97d2fb
testfiles debug-ranges-no-lowpc.o
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges debug-ranges-no-lowpc.o 0xb <<\EOF
Packit Service 97d2fb
1..2 (base 0)
Packit Service 97d2fb
3..4 (base 0)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
# - hello.c
Packit Service 97d2fb
# int say (const char *prefix);
Packit Service 97d2fb
#
Packit Service 97d2fb
# char *
Packit Service 97d2fb
# subject (char *word, int count)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#    return count > 0 ? word : (word + count);
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# int
Packit Service 97d2fb
# main (int argc, char **argv)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#    return say (subject (argv[0], argc));
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# int
Packit Service 97d2fb
# no_say (const char *prefix)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#   const char *world = subject ("World", 42);
Packit Service 97d2fb
#   return prefix ? say (prefix) : say (world);
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# - world.c
Packit Service 97d2fb
# char * subject (char *word, int count);
Packit Service 97d2fb
# int no_say (const char *prefix);
Packit Service 97d2fb
#
Packit Service 97d2fb
# static int
Packit Service 97d2fb
# sad (char c)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#   return c > 0 ? c : c + 1;
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# static int
Packit Service 97d2fb
# happy (const char *w)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#   return sad (w[1]);
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# int
Packit Service 97d2fb
# say (const char *prefix)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#   const char *world = subject ("World", 42);;
Packit Service 97d2fb
#   return prefix ? sad (prefix[0]) : happy (world);
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# char *
Packit Service 97d2fb
# no_subject (char *word, int count)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#    return count > 0 ? word : (word + count);
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# int
Packit Service 97d2fb
# no_main (int argc, char **argv)
Packit Service 97d2fb
# {
Packit Service 97d2fb
#    return no_say (no_subject (argv[0], argc));
Packit Service 97d2fb
# }
Packit Service 97d2fb
#
Packit Service 97d2fb
# - gcc -c -O2 -gdwarf-4 hello.c
Packit Service 97d2fb
# - gcc -c -O2 -gdwarf-4 world.c
Packit Service 97d2fb
# - gcc -o testfileranges4 -O2 -gdwarf-4 hello.o world.o
Packit Service 97d2fb
# - eu-strip -f testfileranges4.debug testfileranges4
Packit Service 97d2fb
Packit Service 97d2fb
testfiles testfileranges4.debug
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges testfileranges4.debug 0xb <<\EOF
Packit Service 97d2fb
400500..40053a (base 0)
Packit Service 97d2fb
400400..400415 (base 0)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges testfileranges4.debug 0xcd <<\EOF
Packit Service 97d2fb
400400..400402 (base 0)
Packit Service 97d2fb
400405..40040d (base 0)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges testfileranges4.debug 0x374 <<\EOF
Packit Service 97d2fb
4005a0..4005a2 (base 400540)
Packit Service 97d2fb
4005a5..4005ad (base 400540)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
# Like above, but with -gdwarf-5.
Packit Service 97d2fb
testfiles testfileranges5.debug
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges testfileranges5.debug 0xc <<\EOF
Packit Service 97d2fb
401150..40117a (base 0)
Packit Service 97d2fb
401050..401067 (base 0)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges testfileranges5.debug 0x2ce <<\EOF
Packit Service 97d2fb
40119b..40119b (base 401180)
Packit Service 97d2fb
40119c..4011a6 (base 401180)
Packit Service 97d2fb
4011b0..4011b4 (base 401180)
Packit Service 97d2fb
4011b5..4011bf (base 401180)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/dwarf-ranges testfileranges5.debug 0x2ef <<\EOF
Packit Service 97d2fb
40119b..40119b (base 401180)
Packit Service 97d2fb
40119c..4011a6 (base 401180)
Packit Service 97d2fb
4011b4..4011b4 (base 401180)
Packit Service 97d2fb
4011b5..4011bf (base 401180)
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
exit 0