Blame tests/run-aggregate-size.sh

Packit Service 97d2fb
#! /bin/sh
Packit Service 97d2fb
# Copyright (C) 2014 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
# char c;
Packit Service 97d2fb
# int i;
Packit Service 97d2fb
# long l;
Packit Service 97d2fb
#
Packit Service 97d2fb
# void *v;
Packit Service 97d2fb
#
Packit Service 97d2fb
# struct s
Packit Service 97d2fb
# {
Packit Service 97d2fb
#   char *a;
Packit Service 97d2fb
#   int i;
Packit Service 97d2fb
# } s;
Packit Service 97d2fb
#
Packit Service 97d2fb
# char ca[16];
Packit Service 97d2fb
# int ia[32];
Packit Service 97d2fb
# void *va[64];
Packit Service 97d2fb
# struct s sa[8];
Packit Service 97d2fb
Packit Service 97d2fb
# On x86_64 (LP64):
Packit Service 97d2fb
# gcc -g -c -o testfile-sizes1.o sizes.c
Packit Service 97d2fb
# clang -g -c -o testfile-sizes2.o sizes.c
Packit Service 97d2fb
Packit Service 97d2fb
# const char c;
Packit Service 97d2fb
# volatile int i;
Packit Service 97d2fb
# const volatile long l;
Packit Service 97d2fb
#
Packit Service 97d2fb
# void * restrict v;
Packit Service 97d2fb
#
Packit Service 97d2fb
# struct s
Packit Service 97d2fb
# {
Packit Service 97d2fb
#   const char *a;
Packit Service 97d2fb
#   volatile int i;
Packit Service 97d2fb
# } s;
Packit Service 97d2fb
#
Packit Service 97d2fb
# const char ca[16];
Packit Service 97d2fb
# volatile int ia[32];
Packit Service 97d2fb
# const volatile void * const volatile restrict va[64];
Packit Service 97d2fb
# struct s sa[8];
Packit Service 97d2fb
# double d3d[3][4][5];
Packit Service 97d2fb
#
Packit Service 97d2fb
# typedef const int foo;
Packit Service 97d2fb
# typedef volatile foo bar;
Packit Service 97d2fb
# foo f;
Packit Service 97d2fb
# bar b;
Packit Service 97d2fb
#
Packit Service 97d2fb
# gcc -std=c99 -g -c -o testfile-sizes3.o sizes.c
Packit Service 97d2fb
Packit Service 97d2fb
# The file testfile-size4.o is hand-crafted.
Packit Service 97d2fb
Packit Service 97d2fb
testfiles testfile-sizes1.o testfile-sizes2.o testfile-sizes3.o testfile-sizes4.o
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes1.o <<\EOF
Packit Service 97d2fb
c size 1
Packit Service 97d2fb
i size 4
Packit Service 97d2fb
l size 8
Packit Service 97d2fb
v size 8
Packit Service 97d2fb
s size 16
Packit Service 97d2fb
ca size 16
Packit Service 97d2fb
ia size 128
Packit Service 97d2fb
va size 512
Packit Service 97d2fb
sa size 128
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes2.o <<\EOF
Packit Service 97d2fb
c size 1
Packit Service 97d2fb
i size 4
Packit Service 97d2fb
l size 8
Packit Service 97d2fb
v size 8
Packit Service 97d2fb
s size 16
Packit Service 97d2fb
ca size 16
Packit Service 97d2fb
ia size 128
Packit Service 97d2fb
va size 512
Packit Service 97d2fb
sa size 128
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes3.o <<\EOF
Packit Service 97d2fb
c size 1
Packit Service 97d2fb
i size 4
Packit Service 97d2fb
l size 8
Packit Service 97d2fb
v size 8
Packit Service 97d2fb
s size 16
Packit Service 97d2fb
ca size 16
Packit Service 97d2fb
ia size 128
Packit Service 97d2fb
va size 512
Packit Service 97d2fb
sa size 128
Packit Service 97d2fb
d3d size 480
Packit Service 97d2fb
f size 4
Packit Service 97d2fb
b size 4
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes4.o <<\EOF
Packit Service 97d2fb
v size 257
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
exit 0