Differ platform and user scope in service and application 05/22705/1
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 17 Oct 2019 18:57:59 +0000 (20:57 +0200)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 17 Oct 2019 19:05:19 +0000 (21:05 +0200)
When executing the lifecycle test, we need to take into account if
the service or app runs in platform or user scope.

Bug-AGL: SPEC-2903

.

Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Change-Id: I49a53a5a2b14666757b65b0f8203eb73ed2c7b45

common/scripts/application-lifecycle.sh [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 9e3a92c..15d505c
@@ -1,7 +1,14 @@
 #!/bin/sh
 
+set -x
+
 export TERM=dumb
 
+SERVICE_PLATFORM=0
+SERVICE_USER=0
+APPLICATION_USER=0
+AGLDRIVER=agl-driver
+
 while [ $# -ge 1 ]
 do
        case $1 in
@@ -49,6 +56,19 @@ do
                else
                        echo "DEBUG: not hidden package"
                fi
+               # a service sets urn:AGL:widget:provided-api
+               if $(grep "urn:AGL:widget:provided-api" config.xml) ; then
+                   # we are a service, now determine the scope ...
+                   if $(grep "urn:AGL:permission::partner:scope-platform" config.xml) ; then
+                       SERVICE_PLATFORM=1
+                   else
+                       SERVICE_USER=1
+                   fi
+               else
+                   # we are an application
+                   APPLICATION_USER=1
+                   # no other type known (yet)
+               fi
        else
                echo "DEBUG: fail to unzip"
        fi
@@ -150,8 +170,24 @@ do
        echo "DEBUG: check if we see the package with systemctl -a (before start)"
        systemctl -a |grep "afm.*$WGTNAME"
 
+       # here we need to differ between SERVICE_PLATFORM, SERVICE_USER and APPLICATION_USER
+       if test x"1" = x"$SERVICE_PLATFORM" ; then
+           PRE_CMD="su -c"
+       fi
+       if test x"1" = x"$SERVICE_USER" ; then
+           PRE_CMD="su $AGLDRIVER -c"
+       fi
+       if test x"1" = x"$APPLICATION_USER" ; then
+           PRE_CMD="su $AGLDRIVER -c"
+       fi
+
+       # construct the command to call
+       CMD=( "$PRE_CMD" )
+       CMD+=( " ' " )
+       CMD+=( "afm-util start $NAMEID" )
+       CMD+=( " ' " )
        echo "DEBUG: start $NAMEID"
-       afm-util start $NAMEID > "rid"
+       exec "${CMD[@]}"  > "rid"
        if [ $? -ne 0 ];then
                echo "ERROR: afm-util start"
                lava-test-case afm-util-start-$WGTNAME --result fail
@@ -200,7 +236,7 @@ do
        fi
 
        echo "DEBUG: start2 $NAMEID"
-       afm-util start $NAMEID
+       exec "${CMD[@]}"
        if [ $? -ne 0 ];then
                echo "ERROR: afm-util start2"
                lava-test-case afm-util-start2-$WGTNAME --result fail