hush/tests/busybox.REGRESS.sh
2001-01-25 00:47:31 +00:00

149 lines
4.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#! /bin/bash
###############################################
### See if we have a Config.h.ORG file ###
### If not, create it... ###
###############################################
if [ ! -e "Config.h.ORG" ]; then
echo "Creating Config.h.ORG"
cp Config.h Config.h.ORG
if [ ! -e "Config.h.ORG" ]; then
echo "$0: ABORTING: Unable to create Config.h.ORG"
exit
fi
fi
###############################################################
### See if we have a bb.def.h file. If not, extract the ###
### unchangeable portion of Config.h.ORG into bb.def.h ###
###############################################################
if [ ! -e "bb.def.h" ]; then
echo "Creating bb.def.h"
POSITION=`grep -n "Nothing beyond this point should ever be touched" \
Config.h.ORG | cut -d: -f1`
TOTALLINES=`cat Config.h.ORG | wc -l`
NUMLINES=$[${TOTALLINES}-${POSITION}+2]
tail -n ${NUMLINES} Config.h.ORG > bb.def.h
if [ ! -e "bb.def.h" ]; then
echo "$0: ABORTING: Unable to create bb.def.h"
exit
fi
fi
#####################################################################
### See if we have a bb.OptionsAndFeatures file. If not, extract ###
### all the BB_xxx options and features into a unique sorted list ###
### and stuff them into bb.OptionsAndFeatures. ###
#####################################################################
if [ ! -e "bb.OptionsAndFeatures" ]; then
echo "Creating bb.OptionsAndFeatures"
grep BB_ *.[ch] \
| tr ' ,(){}|&' '' \
| grep '^BB_' \
| sort \
| uniq \
| grep -v '^BB_BLAH$' \
| grep -v '^BB_BUSYBOX$' \
| grep -v '^BB_DEBUG' \
| grep -v '^BB_BT$' \
| grep -v '^BB_VER$' \
| grep -v '^BB_DEF_MESSAGE$' \
| grep -v '^BB_DECLARE_EXTERN$' \
| grep -v '^BB_applet$' \
> tmpfile.1
echo BB_NOOP > bb.OptionsAndFeatures
grep '^BB_FEATURE_' tmpfile.1 >> bb.OptionsAndFeatures
grep -v '^BB_FEATURE_' tmpfile.1 >> bb.OptionsAndFeatures
rm -f tmpfile.1
if [ ! -e "bb.OptionsAndFeatures" ]; then
echo "$0: ABORTING: Unable to create bb.OptionsAndFeatures"
exit
fi
fi
RESULTSFILE="`basename $0`.results"
echo "RESULTSFILE is ${RESULTSFILE}"
BUSYBOXDEFS=Config.h
rm -f ${RESULTSFILE}
touch ${RESULTSFILE}
NOOP_STATIC_SIZE=0
NOOP_STORAGE_SIZE=0
for i in `cat bb.OptionsAndFeatures`
do
rm -f busybox
rm -f *.o
rm -f ${BUSYBOXDEFS}
touch ${BUSYBOXDEFS}
echo "===== $i ========================="
echo "===== $i =========================" >> ${RESULTSFILE}
echo "#define BB_BUSYBOX"
echo "#define BB_BUSYBOX" >> ${BUSYBOXDEFS}
if [ \
"${i}" = "BB_DF" \
-o "${i}" = "BB_KILLALL" \
-o "${i}" = "BB_LSMOD" \
-o "${i}" = "BB_MOUNT" \
-o "${i}" = "BB_PS" \
-o "${i}" = "BB_UMOUNT" \
]; then
echo "#define BB_FEATURE_USE_PROCFS"
echo "#define BB_FEATURE_USE_PROCFS" >> ${BUSYBOXDEFS}
fi
echo "#define $i"
echo "#define $i" >> ${BUSYBOXDEFS}
cat bb.def.h >> ${BUSYBOXDEFS}
make
if [ -e busybox ]; then
###strip -s busybox ### ALREADY DONE
STATIC_SIZE=`size busybox | grep busybox | cut -d\ -f4 | tr -d " "`
if [ "${i}" = "BB_NOOP" ]; then
NOOP_STATIC_SIZE=${STATIC_SIZE}
echo "STATIC_SIZE=${STATIC_SIZE}"
echo "STATIC_SIZE=${STATIC_SIZE}" >> ${RESULTSFILE}
else
SIZEDIFF=$[${STATIC_SIZE}-${NOOP_STATIC_SIZE}]
echo "STATIC_SIZE=${STATIC_SIZE} (${SIZEDIFF})"
echo "STATIC_SIZE=${STATIC_SIZE} (${SIZEDIFF})" >> ${RESULTSFILE}
fi
STORAGE_SIZE=`ls -la busybox | awk '{print $5}'`
if [ "${i}" = "BB_NOOP" ]; then
NOOP_STORAGE_SIZE=${STORAGE_SIZE}
echo "STORAGE_SIZE=${STORAGE_SIZE}"
echo "STORAGE_SIZE=${STORAGE_SIZE}" >> ${RESULTSFILE}
else
SIZEDIFF=$[${STORAGE_SIZE}-${NOOP_STORAGE_SIZE}]
echo "STORAGE_SIZE=${STORAGE_SIZE} (${SIZEDIFF})"
echo "STORAGE_SIZE=${STORAGE_SIZE} (${SIZEDIFF})" >> ${RESULTSFILE}
fi
ldd busybox | grep -v libc.so.6 | grep -v ld-linux.so.2
ldd busybox | grep -v libc.so.6 | grep -v ld-linux.so.2 >> ${RESULTSFILE}
else
echo "$i Build Failure"
echo "$i Build Failure" >> ${RESULTSFILE}
exit 1;
fi
done
echo "...All done..."
cd ${PWD}
exit