| #!/bin/bash |
| |
| # Copyright (C) 2011 Karel Zak <kzak@redhat.com> |
| |
| TS_TOPDIR="${0%/*}/../.." |
| TS_DESC="config" |
| |
| # Don't execute this test by default, --force required |
| TS_OPTIONAL="yes" |
| |
| . $TS_TOPDIR/functions.sh |
| ts_init "$*" |
| |
| ts_check_prog "readelf" |
| ts_check_prog "file" |
| |
| config_gen_dir="$top_srcdir/tools" |
| . $config_gen_dir/config-gen-functions.sh |
| |
| [ -n "$CFLAGS" ] && export CFLAGS="$CFLAGS" |
| |
| ts_cd $top_builddir && make -j clean &> /dev/null |
| |
| for conf in $config_gen_dir/config-gen.d/*.conf; do |
| ts_init_subtest $(basename $conf | sed 's/\.conf//') |
| |
| opts=$(ul_get_configuration $conf) |
| |
| olddir=$(pwd) |
| ts_cd $top_builddir |
| |
| ./configure $opts &> /dev/null |
| make -j &> /dev/null |
| |
| bins=$(find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \) | sort) |
| for b in $bins; do |
| libs=$(readelf --dynamic $b 2> /dev/null | \ |
| awk '/NEEDED/ { print $5 }' | \ |
| sed 's:\[::g; s:\..*::g; s:libc::g; s:ld\-.*::g' | \ |
| sort -u | tr '\n' ' ') |
| |
| if [ -n "$libs" ]; then |
| echo "$(basename $b): $libs" >> $TS_OUTPUT |
| else |
| fres=$(file $b) |
| case $fres in |
| *statically*) |
| echo "$(basename $b): STATIC" >> $TS_OUTPUT |
| ;; |
| *) # ignore scripts, ...etc. |
| ;; |
| esac |
| fi |
| done |
| |
| # clean the tree, but exclude tests/{diff,output} dirs |
| # |
| [ -d tests/diff ] && mv tests/diff tests/diff.save |
| [ -d tests/output ] && mv tests/output tests/output.save |
| |
| make -j clean &> /dev/null |
| |
| [ -d tests/diff.save ] && mv tests/diff.save tests/diff |
| [ -d tests/output.save ] && mv tests/output.save tests/output |
| |
| ts_cd $olddir |
| ts_finalize_subtest |
| done |
| |
| ts_finalize |