1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#!/bin/sh
# PCP QA Test No. 1166
# Check that promoted symbols are still visible in libpcp.
#
# Copyright (c) 2017 Ken McDonell. All Rights Reserved.
#
seq=`basename $0`
echo "QA output created by $seq"
# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check
_cleanup()
{
cd $here
$sudo rm -rf $tmp $tmp.*
}
# For OpenIndiana
# Not enough space => Cannot allocate memory
_filter()
{
sed \
-e 's/[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]$/DATE/' \
-e 's/[A-Z][a-z][a-z] [A-Z][a-z][a-z] *[0-9][0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]/DATE/' \
-e '/^\(Log for [0-9][0-9]* on\) [^ ][^ ]*/s//\1 HOST/' \
-e '/qa_libpcp_compat/s/([0-9][0-9]*)/(PID)/' \
-e 's/(0x[0-9a-f][0-9a-f]*)/(ADDR)/' \
-e 's/Not enough space/Cannot allocate memory/' \
# end
}
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
cat <<End-of-File >$tmp.makefile
include $PCP_INC_DIR/builddefs
TMP="$tmp"
SEQ="$seq"
default:
\$(CC) -I\$(PCP_INC_DIR)/.. \$(CFLAGS) \$(LDFLAGS) '-DSEQ=\$(SEQ)' '-DTMP=\$(TMP)' -o $tmp src/qa_libpcp_compat.c -lpcp
End-of-File
# real QA test starts here
echo "=== binary compatibility checks ===" | tee -a $seq_full
if LCFLAGS="-DBINARY_COMPAT_TEST" $PCP_MAKE_PROG -f $tmp.makefile >$seq_full 2>&1
then
if $tmp 2>&1 | _filter
then
:
else
echo "execution failed"
fi
else
echo "compile and link failed"
fi
echo
echo "=== source code compatibility checks ===" | tee -a $seq_full
if $PCP_MAKE_PROG -f $tmp.makefile >$seq_full 2>&1
then
if $tmp 2>&1 | _filter
then
:
else
echo "execution failed"
fi
else
echo "compile and link failed"
fi
status=0
exit
|