Please add testlab.bbclass to the stable branch
mtn log output for classes/testlab.bbclass: ----------------------------------------------------------------- Revision: 552396a9dfe973c66350f15cdf75d1b55fc16adb Ancestor: 57372f444947f67038159885de1edb5a39da6613 Author: [EMAIL PROTECTED] Date: 2008-03-19T08:35:14 Branch: org.openembedded.dev Modified files: classes/testlab.bbclass ChangeLog: testlab: remove bashism, spotted by XorA ============================================================ --- classes/testlab.bbclass 77a433449ede680d28026380c4121e957fac45cc +++ classes/testlab.bbclass c3d610ac3c54bb4174b19e9905964f8a4064cc07 @@ -26,7 +26,7 @@ if [ -e ${IMAGE_ROOTFS}/etc/opkg ] ; th TESTLAB_DIR="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-testlab" mkdir -p ${TESTLAB_DIR}/ - ls -laR ${IMAGE_ROOTFS} >& ${TESTLAB_DIR}/files-in-image.txt + 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 ----------------------------------------------------------------- Revision: d2a4a9595d83de2200e237e0a4a45a1c0f7722aa Ancestor: 79bff7df1e9d050419ad89d4e515f264e3858e85 Author: [EMAIL PROTECTED] Date: 2008-03-18T21:58:41 Branch: org.openembedded.dev Modified files: classes/image.bbclass classes/package_ipk.bbclass classes/packaged-staging.bbclass classes/rootfs_deb.bbclass classes/rootfs_ipk.bbclass classes/testlab.bbclass conf/distro/angstrom-2008.1.conf conf/distro/include/sane-srcrevs.inc packages/angstrom/angstrom-feed-configs.bb packages/meta/meta-toolchain.bb packages/tasks/task-base.bb ChangeLog: various: move over to opkg, as discussed on the mailinglist * death to ipkg! ============================================================ --- classes/testlab.bbclass d124569b52125dfee4e161d881acec0658577a55 +++ classes/testlab.bbclass 77a433449ede680d28026380c4121e957fac45cc @@ -19,10 +19,10 @@ # * add test suite to run on the target device -# Needs 'dot', 'ipkg-cl' +# Needs 'dot', 'opkg-cl' do_testlab() { -if [ -e ${IMAGE_ROOTFS}/etc/ipkg ] ; then +if [ -e ${IMAGE_ROOTFS}/etc/opkg ] ; then TESTLAB_DIR="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-testlab" mkdir -p ${TESTLAB_DIR}/ @@ -31,14 +31,14 @@ if [ -e ${IMAGE_ROOTFS}/etc/ipkg ] ; th echo > ${TESTLAB_DIR}/installed-packages.txt echo -e "digraph depends {\n node [shape=plaintext]" > ${TESTLAB_DIR}/depends.dot - for pkg in $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} list_installed | awk '{print $1}') ; do - ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Filename | awk -F: '{print $2}' >> ${TESTLAB_DIR}/installed- packages.txt + 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 $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Depends) ; do + 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 $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Recom) ; do + 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 ----------------------------------------------------------------- Revision: 7712d9178e2d4268d697de3c404c8853aa202089 Ancestor: aaab4fbcf959241c3fb19d2b48c1df3e7da52a90 Author: [EMAIL PROTECTED] Date: 2008-03-03T23:49:00 Branch: org.openembedded.dev Added files: classes/testlab.bbclass ChangeLog: testlab bbclass: add class that dumps a bunch of statistical data from your images, usefull for people doing regression testing details at: * http://dominion.thruhere.net/koen/cms/the-testlab-strikes-again * http://dominion.thruhere.net/koen/cms/package-relations-inside-images ============================================================ --- classes/testlab.bbclass d124569b52125dfee4e161d881acec0658577a55 +++ classes/testlab.bbclass d124569b52125dfee4e161d881acec0658577a55 @@ -0,0 +1,65 @@ +# +# Performs various tests and analysises on images +# +# Copyright (C) 2007, 2008 Koen Kooi <[EMAIL PROTECTED]> + +# 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', 'ipkg-cl' + +do_testlab() { +if [ -e ${IMAGE_ROOTFS}/etc/ipkg ] ; 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 $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} list_installed | awk '{print $1}') ; do + ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -o ${IMAGE_ROOTFS} info $pkg | grep Filename | awk -F: '{print $2}' >> ${TESTLAB_DIR}/installed- packages.txt + + for depends in $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -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 $(ipkg-cl -f ${IMAGE_ROOTFS}/etc/ipkg -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 ;" -- Henry von Tresckow (hvontres) _______________________________________________ Angstrom-distro-devel mailing list Angstrom-distro-devel@linuxtogo.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/angstrom-distro-devel