# # Performs various tests and analysises on images # # Copyright (C) 2007, 2008 Koen Kooi # The current features are: # 1) dump a list of installed packages # 2) dump a list of sizes of installed packages # 3) dependency graphs of installed packages # See # * http://dominion.thruhere.net/koen/cms/the-testlab-strikes-again # * http://dominion.thruhere.net/koen/cms/package-relations-inside-images # for use cases # TODO: # * log information to a server for safekeeping # * use mtn certs to record this info into the scm # * add test suite to run on the target device # Needs 'dot', 'opkg-cl' do_testlab() { if [ -e ${IMAGE_ROOTFS}/etc/opkg ] ; then TESTLAB_DIR="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-testlab" mkdir -p ${TESTLAB_DIR}/ ls -laR ${IMAGE_ROOTFS} > ${TESTLAB_DIR}/files-in-image.txt echo > ${TESTLAB_DIR}/installed-packages.txt echo -e "digraph depends {\n node [shape=plaintext]" > ${TESTLAB_DIR}/depends.dot for pkg in $(opkg-cl -f ${IMAGE_ROOTFS}/etc/opkg -o ${IMAGE_ROOTFS} list_installed | awk '{print $1}') ; do opkg-cl -f ${IMAGE_ROOTFS}/etc/opkg -o ${IMAGE_ROOTFS} info $pkg | grep Filename | awk -F: '{print $2}' >> ${TESTLAB_DIR}/installed-packages.txt for depends in $(opkg-cl -f ${IMAGE_ROOTFS}/etc/opkg -o ${IMAGE_ROOTFS} info $pkg | grep Depends) ; do echo "$pkg OPP $depends;" | grep -v "(" | grep -v ")" | grep -v Depends | sed -e 's:,::g' -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' |sed 's:OPP:->:g' >> ${TESTLAB_DIR}/depends.dot done for recommends in $(opkg-cl -f ${IMAGE_ROOTFS}/etc/opkg -o ${IMAGE_ROOTFS} info $pkg | grep Recom) ; do echo "$pkg OPP $recommends [style=dotted];" | grep -v "(" | grep -v ")" | grep -v Recom | sed -e 's:,::g' -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' |sed 's:OPP:->:g' >> ${TESTLAB_DIR}/depends.dot done done echo "}" >> ${TESTLAB_DIR}/depends.dot grep -v kernel_2 ${TESTLAB_DIR}/depends.dot | grep -v kernel_image > ${TESTLAB_DIR}/depends-nokernel.dot grep -v libc6 ${TESTLAB_DIR}/depends-nokernel.dot | grep -v libgcc > ${TESTLAB_DIR}/depends-nokernel-nolibc.dot grep -v update_ ${TESTLAB_DIR}/depends-nokernel-nolibc.dot > ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate.dot grep -v kernel_module ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate.dot > ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate-nomodules.dot #dot has some library troubles when run under fakeroot, uncomment at your own risk #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies.png ${TESTLAB_DIR}/depends.dot #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies-nokernel-nolibc.png ${TESTLAB_DIR}/depends-nokernel-nolibc.dot #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies-nokernel-nolibc-noupdate.png ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate.dot #dot -Tpng -o ${TESTLAB_DIR}/image-dependencies-nokernel-nolibc-noupdate-nomodules.png ${TESTLAB_DIR}/depends-nokernel-nolibc-noupdate-nomodules.dot for file in $(cat ${TESTLAB_DIR}/installed-packages.txt) ; do du -k $(find ${DEPLOY_DIR_IPK} -name "$file") done | grep "\.ipk" | sed -e s:${DEPLOY_DIR_IPK}::g | sort -n -r | awk '{print $1 "\tKiB " $2}' > ${TESTLAB_DIR}/installed-package-sizes.txt fi } IMAGE_POSTPROCESS_COMMAND += " do_testlab ;" td> 2007-10-14libmad: fix SRC_URI - close #3147Esben Haabendal1 2006-12-31remove extra whitespace at end-of-line in about 900 bb files.Rolf Leggewie2 2006-11-21libmad: Add 0.15.1b (from poky)Richard Purdie1 2006-10-10Remove MAINTAINER fields from recipes, add MAINTAINER file to replace them.Koen Kooi1 2006-01-05libmad: revert deletion of do_stage() applied in b5e7f8ff699745865fbaf5837f61...Rene Wagner1 2006-01-03disapproval of revision 'fbc22e245906dac5ce180f67a0c621f7a2db1a28'John Bowler1 2006-01-03autotooled packages: remove redundant do_stagePhilipp Zabel1 2006-01-03libmad: change do_stage to use autotools_stage_all in 0.15.0bJohn Bowler1 2005-08-11libmad: thumb only (so no PR change): remove the erroneous use of 32 bitJohn Bowler1