busybox/tests/busybox.REGRESS.sh

148 lines
4.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

#! /bin/bash
###############################################
### See if we have a busybox.def.h.ORG file ###
### If not, create it... ###
###############################################
if [ ! -e "busybox.def.h.ORG" ]; then
echo "Creating busybox.def.h.ORG"
cp busybox.def.h busybox.def.h.ORG
if [ ! -e "busybox.def.h.ORG" ]; then
echo "$0: ABORTING: Unable to create busybox.def.h.ORG"
exit
fi
fi
###############################################################
### See if we have a bb.def.h file. If not, extract the ###
### unchangeable portion of busybox.def.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" \
busybox.def.h.ORG | cut -d: -f1`
TOTALLINES=`cat busybox.def.h.ORG | wc -l`
NUMLINES=$[${TOTALLINES}-${POSITION}+2]
tail -n ${NUMLINES} busybox.def.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=busybox.def.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 | cut -c29-42 | tr -d " "`
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}
fi
done
echo "...All done..."
cd ${PWD}
exit