Blame tests/run-aggregate-size.sh

Packit 032894
#! /bin/sh
Packit 032894
# Copyright (C) 2014 Red Hat, Inc.
Packit 032894
# This file is part of elfutils.
Packit 032894
#
Packit 032894
# This file is free software; you can redistribute it and/or modify
Packit 032894
# it under the terms of the GNU General Public License as published by
Packit 032894
# the Free Software Foundation; either version 3 of the License, or
Packit 032894
# (at your option) any later version.
Packit 032894
#
Packit 032894
# elfutils is distributed in the hope that it will be useful, but
Packit 032894
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 032894
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 032894
# GNU General Public License for more details.
Packit 032894
#
Packit 032894
# You should have received a copy of the GNU General Public License
Packit 032894
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit 032894
Packit 032894
. $srcdir/test-subr.sh
Packit 032894
Packit 032894
# char c;
Packit 032894
# int i;
Packit 032894
# long l;
Packit 032894
#
Packit 032894
# void *v;
Packit 032894
#
Packit 032894
# struct s
Packit 032894
# {
Packit 032894
#   char *a;
Packit 032894
#   int i;
Packit 032894
# } s;
Packit 032894
#
Packit 032894
# char ca[16];
Packit 032894
# int ia[32];
Packit 032894
# void *va[64];
Packit 032894
# struct s sa[8];
Packit 032894
Packit 032894
# On x86_64 (LP64):
Packit 032894
# gcc -g -c -o testfile-sizes1.o sizes.c
Packit 032894
# clang -g -c -o testfile-sizes2.o sizes.c
Packit 032894
Packit 032894
# const char c;
Packit 032894
# volatile int i;
Packit 032894
# const volatile long l;
Packit 032894
#
Packit 032894
# void * restrict v;
Packit 032894
#
Packit 032894
# struct s
Packit 032894
# {
Packit 032894
#   const char *a;
Packit 032894
#   volatile int i;
Packit 032894
# } s;
Packit 032894
#
Packit 032894
# const char ca[16];
Packit 032894
# volatile int ia[32];
Packit 032894
# const volatile void * const volatile restrict va[64];
Packit 032894
# struct s sa[8];
Packit 032894
# double d3d[3][4][5];
Packit 032894
#
Packit 032894
# typedef const int foo;
Packit 032894
# typedef volatile foo bar;
Packit 032894
# foo f;
Packit 032894
# bar b;
Packit 032894
#
Packit 032894
# gcc -std=c99 -g -c -o testfile-sizes3.o sizes.c
Packit 032894
Packit 032894
# The file testfile-size4.o is hand-crafted.
Packit 032894
Packit 032894
testfiles testfile-sizes1.o testfile-sizes2.o testfile-sizes3.o testfile-sizes4.o
Packit 032894
Packit 032894
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes1.o <<\EOF
Packit 032894
c size 1
Packit 032894
i size 4
Packit 032894
l size 8
Packit 032894
v size 8
Packit 032894
s size 16
Packit 032894
ca size 16
Packit 032894
ia size 128
Packit 032894
va size 512
Packit 032894
sa size 128
Packit 032894
EOF
Packit 032894
Packit 032894
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes2.o <<\EOF
Packit 032894
c size 1
Packit 032894
i size 4
Packit 032894
l size 8
Packit 032894
v size 8
Packit 032894
s size 16
Packit 032894
ca size 16
Packit 032894
ia size 128
Packit 032894
va size 512
Packit 032894
sa size 128
Packit 032894
EOF
Packit 032894
Packit 032894
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes3.o <<\EOF
Packit 032894
c size 1
Packit 032894
i size 4
Packit 032894
l size 8
Packit 032894
v size 8
Packit 032894
s size 16
Packit 032894
ca size 16
Packit 032894
ia size 128
Packit 032894
va size 512
Packit 032894
sa size 128
Packit 032894
d3d size 480
Packit 032894
f size 4
Packit 032894
b size 4
Packit 032894
EOF
Packit 032894
Packit 032894
testrun_compare ${abs_builddir}/aggregate_size -e testfile-sizes4.o <<\EOF
Packit 032894
v size 257
Packit 032894
EOF
Packit 032894
Packit 032894
exit 0