SPEC-3482: handle new package name
[src/qa-testdefinitions.git] / common / scripts / application-lifecycle.sh
index b5ee32b..c03602e 100755 (executable)
@@ -50,7 +50,8 @@ fi
 grep -o '[a-z-]*.wgt' index.html | sort | uniq |
 while read wgtfile
 do
-       WGTNAME=$(echo $wgtfile | sed 's,.wgt$,,')
+       # remove extension and the debug state
+       WGTNAME=$(echo $wgtfile | sed 's,.wgt$,,' | sed 's,-debug$,,' | sed 's,-test$,,' | sed 's,-coverage$,,')
        SERVICE_PLATFORM=0
        SERVICE_USER=0
        APPLICATION_USER=0
@@ -63,9 +64,12 @@ do
                        continue
                fi
        fi
+       CURDIR="$(pwd)"
+       ZIPOUT="$(mktemp -d)"
+       cd $ZIPOUT
 
        echo "DEBUG: analyse wgt file"
-       unzip $wgtfile
+       unzip $CURDIR/$wgtfile
        if [ $? -ne 0 ];then
                # TODO Do not fail yet, busybox unzip seems to "fail with success" when checking CRC
                echo "ERROR: cannot unzip $wgtfile"
@@ -96,6 +100,9 @@ do
                echo "DEBUG: fail to unzip"
        fi
 
+       cd $CURDIR
+       rm -r $ZIPOUT
+
        echo "DEBUG: list current pkgs"
        # TODO mktemp
        LIST='list'
@@ -110,7 +117,7 @@ do
        fi
 
        echo "DEBUG: check presence of $WGTNAME"
-       NAMEID=$(grep id\\\":\\\"${WGTNAME} $LIST | cut -d\" -f4 | cut -d\\ -f1)
+       NAMEID=$(grep id\\\":\\\"${WGTNAME}\" $LIST | cut -d\" -f4 | cut -d\\ -f1)
        if [ ! -z "$NAMEID" ];then
                echo "DEBUG: $WGTNAME already installed as $NAMEID"
                # need to kill then deinstall
@@ -155,9 +162,12 @@ do
                lava-test-case afm-util-install-$WGTNAME --result pass
        fi
        # message is like \"added\":\"mediaplayer@0.1\"
-       NAMEID=$(grep d\\\":\\\"${WGTNAME} $OUT | cut -d\" -f4 | cut -d\\ -f1)
+       NAMEID=$(grep d\\\":\\\"${WGTNAME}\" $OUT | cut -d\" -f4 | cut -d\\ -f1)
        if [ -z "$NAMEID" ];then
                echo "ERROR: Cannot get nameid"
+               echo "DEBUG: ========== DUMPING output =========="
+               cat $OUT
+               echo "DEBUG: ========== END DUMP =========="
                continue
        fi
        echo "DEBUG: $WGTNAME is installed as $NAMEID"
@@ -190,24 +200,25 @@ do
        fi
 
        echo "DEBUG: check if we see the package with systemctl list-units (before start)"
-       systemctl list-units --full | grep "afm.*$WGTNAME"
+       systemctl list-units --full | grep "afm.*$WGTNAME--"
        echo "DEBUG: check if we see the package with systemctl -a (before start)"
-       systemctl -a |grep "afm.*$WGTNAME"
+       systemctl -a |grep "afm.*$WGTNAME--"
 
        echo "DEBUG: start $NAMEID"
        do_afm_util start $NAMEID > "rid"
        if [ $? -ne 0 ];then
                echo "ERROR: afm-util start"
                lava-test-case afm-util-start-$WGTNAME --result fail
+               journalctl -an 200
                continue
        else
                lava-test-case afm-util-start-$WGTNAME --result pass
        fi
 
        echo "DEBUG: check if we see the package with systemctl list-units (after start)"
-       systemctl list-units --full | grep "afm.*$WGTNAME"
+       systemctl list-units --full | grep "afm.*$WGTNAME--"
        echo "DEBUG: check if we see the package with systemctl -a (after start)"
-       systemctl -a |grep "afm.*$WGTNAME"
+       systemctl -a |grep "afm.*$WGTNAME--"
 
        echo "DEBUG: Get RID for $NAMEID"
        PSLIST="pslist"
@@ -222,6 +233,23 @@ do
        fi
        # TODO, compare RID with the list in $PSLIST"
        RID="$(cat rid)"
+       if [ "$RID" == 'null' ];then
+               sleep 20
+               echo "DEBUG: retry start $NAMEID"
+               do_afm_util start $NAMEID > "rid"
+               if [ $? -ne 0 ];then
+                       echo "ERROR: afm-util start"
+                       lava-test-case afm-util-start-$WGTNAME --result fail
+                       continue
+               fi
+               RID="$(cat rid)"
+       fi
+
+       if [ "$RID" == 'null' ];then
+               echo "ERROR: RID is null, service fail to start"
+               lava-test-case afm-util-status-$WGTNAME --result fail
+               continue
+       fi
 
        echo "DEBUG: status $NAMEID ($RID)"
        do_afm_util status $RID
@@ -244,12 +272,28 @@ do
        fi
 
        echo "DEBUG: start2 $NAMEID"
-       do_afm_util start $NAMEID
+       do_afm_util start $NAMEID > rid
        if [ $? -ne 0 ];then
                echo "ERROR: afm-util start2"
                lava-test-case afm-util-start2-$WGTNAME --result fail
+               journalctl -an 200
                continue
        else
                lava-test-case afm-util-start2-$WGTNAME --result pass
        fi
+       RID="$(cat rid)"
+       if [ "$RID" == 'null' ];then
+               echo "ERROR: RID is null"
+               continue
+       fi
+       sleep 120
+       echo "DEBUG: status2 $NAMEID ($RID)"
+       do_afm_util status $RID
+       if [ $? -ne 0 ];then
+               echo "ERROR: afm-util status2"
+               lava-test-case afm-util-status2-$WGTNAME --result fail
+               continue
+       else
+               lava-test-case afm-util-status2-$WGTNAME --result pass
+       fi
 done