Don't inherit siteinfo in base.bbclass
[openembedded.git] / classes / testlab.bbclass
index 5a88f3d..e6c9c8e 100644 (file)
 # * 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 ] && [ "${ONLINE_PACKAGE_MANAGEMENT}" = "full" ] ; then
+
+       IPKG_TMP_DIR="${IMAGE_ROOTFS}-tmp"
+       IPKG_ARGS="-f ${STAGING_ETCDIR_NATIVE}/opkg.conf -o ${IMAGE_ROOTFS} -t ${IPKG_TMP_DIR}"
 
        TESTLAB_DIR="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-testlab"
         mkdir -p ${TESTLAB_DIR}/
-       ls -laR ${IMAGE_ROOTFS} >& ${TESTLAB_DIR}/files-in-image.txt    
+        mkdir -p ${IPKG_TMP_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 pkg in $(opkg-cl ${IPKG_ARGS} list_installed | awk '{print $1}') ; do 
+               opkg-cl ${IPKG_ARGS} info $pkg | awk '/Package/ {printf $2"_"} /Version/ {printf $2"_"} /Archi/ {print $2".ipk"}'  >> ${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 ${IPKG_ARGS} 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 ${IPKG_ARGS} 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
+       rm -rf ${IPKG_TMP_DIR}
        
        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
@@ -57,7 +62,7 @@ if [ -e  ${IMAGE_ROOTFS}/etc/ipkg ] ; then
        #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") 
+               du -k $(find ${DEPLOY_DIR_IPK} -name "$file") | head -n1
        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
 }