[TCT][scripts][NonACR][Implementation for generating Child Zip Packages]
authorSatyajit Anand <satyajit.a@samsung.com>
Wed, 7 Sep 2016 05:12:33 +0000 (10:42 +0530)
committerSatyajit Anand <satyajit.a@samsung.com>
Wed, 7 Sep 2016 05:12:41 +0000 (10:42 +0530)
Change-Id: I532afb29ba20f89a955e5926d6cfd5b80ddff87e
Signed-off-by: Satyajit Anand <satyajit.a@samsung.com>
scripts/child-package-generator.sh [new file with mode: 0644]
scripts/tcbuild.sh [changed mode: 0755->0644]
scripts/tcbuildsdk.sh [changed mode: 0755->0644]

diff --git a/scripts/child-package-generator.sh b/scripts/child-package-generator.sh
new file mode 100644 (file)
index 0000000..e272385
--- /dev/null
@@ -0,0 +1,198 @@
+PROJECT_DIR="$(cd "$(dirname $0)" && pwd)"
+BUILD_TC_TYPE=$1
+MOD_NAME=$2
+BUILD_DEVICE_TYPE=$3
+CHILD_PKG_COUNT=$4
+
+TAG_SPEC=$1
+PREFIX="native"
+PREFIX_PKG_NAME="native"
+TAG_SPEC_PKG_NAME=$1
+if [ $BUILD_TC_TYPE = "utc" ]; then
+        TAG_SPEC="tests"
+        PREFIX="core"
+fi
+
+TIZEN____="tizen_native_3.0"
+TCT_PKG="tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME"
+TCT_PKG_NAME="tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME-3.0.zip"
+ZIP_PKG_DIR="/opt/tct/$TIZEN____/packages/$BUILD_DEVICE_TYPE"
+PKG_INFO="_pkg_info.xml"
+PKG_INFO_FILE_LOC="/opt/tct/$TIZEN____/packages/pkg_infos/$BUILD_DEVICE_TYPE$PKG_INFO"
+PKG_INFO_FILE="$BUILD_DEVICE_TYPE$PKG_INFO"
+
+PKG_NAME="$PREFIX-$MOD_NAME-$TAG_SPEC"
+
+CHILD_DIR="child-package-generator"
+
+if [ $CHILD_PKG_COUNT -lt 1 ]; then
+       echo "------ Invalid (Child Count = $CHILD_PKG_COUNT) specified"
+       exit 1
+fi
+
+
+#copy and unzip zip packages from 'ZIP_PKG_DIR' to 'child-package-generator' directory
+rm -rf $CHILD_DIR
+mkdir -p $CHILD_DIR
+cp $ZIP_PKG_DIR/$TCT_PKG_NAME $CHILD_DIR/
+cd $CHILD_DIR
+unzip $TCT_PKG_NAME > /dev/null 2>&1;
+
+#copy zip packages from 'ZIP_PKG_DIR' to child-package-generator directory
+TEST_XML_FILE=tests.xml
+LINE_COUNT=0
+while read LINE
+do
+       LINE_COUNT=$((LINE_COUNT+1))
+done < opt/$TCT_PKG/$TEST_XML_FILE
+
+if [ $LINE_COUNT -lt 8 ]; then
+       cd $PROJECT_DIR/..
+       rm -rf $CHILD_DIR
+       echo "------ tests.xml file found invalid; Total Number of lines is only $LINE_COUNT"
+       exit 1
+fi
+
+TC_CURRENT_LINE_COUNT=0
+TOTAL_LINES=$LINE_COUNT
+TOTAL_TC_LINES=$((LINE_COUNT-8))
+TOTAL_TC_COUNT=$((TOTAL_TC_LINES/5))
+CHILD_TC_COUNT=$((TOTAL_TC_COUNT/CHILD_PKG_COUNT))
+CHILD_TOTAL_TC_LINES=$((CHILD_TC_COUNT*5))
+CHILD_PKG_INDEX=0
+
+END_LINE_1=$((TOTAL_LINES-1))
+END_LINE_2=$((TOTAL_LINES-2))
+#generate child tests.xml
+echo "------ Generating tests.xml file for child packages"
+LINE_COUNT=0
+while read LINE
+do
+       LINE_COUNT=$((LINE_COUNT+1))
+       if [ $LINE_COUNT = 1 ]; then
+               START_LINE_1=$LINE
+               continue
+       elif [ $LINE_COUNT = 2 ]; then
+               START_LINE_2=$LINE
+               continue
+       elif [ $LINE_COUNT = 3 ]; then
+               START_LINE_3=$LINE
+               continue
+       elif [ $LINE_COUNT = 4 ]; then
+               START_LINE_4=$LINE
+               continue
+       elif [ $LINE_COUNT = 5 ]; then
+               START_LINE_5=$LINE
+               continue
+       fi
+       TC_CURRENT_LINE_COUNT=$((TC_CURRENT_LINE_COUNT+1))
+       index_range=$((TC_CURRENT_LINE_COUNT%CHILD_TOTAL_TC_LINES))
+       if [ $index_range = 1 ]; then
+               if [ $CHILD_PKG_INDEX -lt $CHILD_PKG_COUNT ]; then
+                       CHILD_PKG_INDEX=$((CHILD_PKG_INDEX+1))
+                       echo $START_LINE_1 >> $TEST_XML_FILE\_$CHILD_PKG_INDEX
+                       echo $START_LINE_2 >> $TEST_XML_FILE\_$CHILD_PKG_INDEX
+                       echo $START_LINE_3 >> $TEST_XML_FILE\_$CHILD_PKG_INDEX
+                       echo $START_LINE_4 >> $TEST_XML_FILE\_$CHILD_PKG_INDEX
+                       echo $START_LINE_5 >> $TEST_XML_FILE\_$CHILD_PKG_INDEX
+               fi
+       fi
+
+       if [ $LINE_COUNT = $TOTAL_LINES ] || [ $LINE_COUNT = $END_LINE_1 ] || [ $LINE_COUNT = $END_LINE_2 ]; then
+               CURRENT_LOOP_COUNT=1
+               while [ true ];
+               do
+                       if [ $CURRENT_LOOP_COUNT -gt $CHILD_PKG_COUNT  ]; then
+                               break
+                       fi
+                       echo $LINE >> $TEST_XML_FILE\_$CURRENT_LOOP_COUNT
+                       CURRENT_LOOP_COUNT=$((CURRENT_LOOP_COUNT+1))
+               done            
+       else
+               echo $LINE >> $TEST_XML_FILE\_$CHILD_PKG_INDEX
+       fi
+
+done < opt/$TCT_PKG/$TEST_XML_FILE
+
+#generate new pkg_info.xml
+echo "------ Generating new pkg_info file for '$BUILD_DEVICE_TYPE' profile"
+cp $PKG_INFO_FILE_LOC ./
+LINE_COUNT=0
+if [ $BUILD_TC_TYPE = "itc" ]; then
+        category="IntegrationTestCases"
+elif [ $BUILD_TC_TYPE = "ctc" ]; then
+        category="ComplianceTestCases"
+else
+       category="UnitTestCases"
+fi
+END_XML_LINE="</ns3:testplan>"
+DELIMIT="_"
+while read LINE
+do
+       LINE_COUNT=$((LINE_COUNT+1))
+       if echo "$LINE" | grep -q "$END_XML_LINE"; then
+               CURRENT_LOOP_COUNT=1
+               while [ true ];
+               do
+                       if [ $CURRENT_LOOP_COUNT -gt $CHILD_PKG_COUNT  ]; then
+                               break
+                       fi
+                       tc_count=$CHILD_TC_COUNT
+                       if [ $CURRENT_LOOP_COUNT = $CHILD_PKG_COUNT ]; then
+                               used_index=$((CURRENT_LOOP_COUNT-1))
+                               used_tc_count=$((CHILD_TC_COUNT*used_index))
+                               tc_count=$((TOTAL_TC_COUNT-used_tc_count))
+                       fi
+                       PKG_INFO_1="<suite name=\"tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME$DELIMIT$CURRENT_LOOP_COUNT\" category=\" $category \">"
+                       PKG_INFO_2="    <auto_tcn>$tc_count</auto_tcn>"
+                       PKG_INFO_3="    <manual_tcn>0</manual_tcn>"
+                       PKG_INFO_4="    <total_tcn>$tc_count</total_tcn>"
+                       PKG_INFO_5="    <pkg_name>$BUILD_DEVICE_TYPE/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME$DELIMIT$CURRENT_LOOP_COUNT-3.0.zip</pkg_name>"
+                       PKG_INFO_6="  </suite>"
+                       echo $PKG_INFO_1 >> $PKG_INFO_FILE\_NEW
+                       echo $PKG_INFO_2 >> $PKG_INFO_FILE\_NEW
+                       echo $PKG_INFO_3 >> $PKG_INFO_FILE\_NEW
+                       echo $PKG_INFO_4 >> $PKG_INFO_FILE\_NEW
+                       echo $PKG_INFO_5 >> $PKG_INFO_FILE\_NEW
+                       echo $PKG_INFO_6 >> $PKG_INFO_FILE\_NEW
+                       CURRENT_LOOP_COUNT=$((CURRENT_LOOP_COUNT+1))
+               done    
+       fi
+       echo "$LINE" >> $PKG_INFO_FILE\_NEW
+done < $PKG_INFO_FILE
+
+#create multiple child zip packages
+echo "------ Updating inst.sh and Creating zip for child packages"
+rm -rf child_packages
+mkdir -p child_packages
+cd child_packages
+CURRENT_LOOP_COUNT=1
+while [ true ];
+do
+       if [ $CURRENT_LOOP_COUNT -gt $CHILD_PKG_COUNT  ]; then
+               break
+       fi
+       mkdir -p child_packages_$CURRENT_LOOP_COUNT
+       cd child_packages_$CURRENT_LOOP_COUNT   
+       mkdir -p opt
+       mkdir -p opt/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT
+       cp -rf ../../opt/$TCT_PKG/* ./opt/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT/
+       rm ./opt/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT/tests.xml
+       cp ../../$TEST_XML_FILE\_$CURRENT_LOOP_COUNT ./opt/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT/$TEST_XML_FILE
+       #edit inst.sh to change directory path  
+       sed -i '/TCT_DIR=/c\TCT_DIR="opt/tct-${MOD_NAME}-native-${BUILD_TYPE}\"_'"${CURRENT_LOOP_COUNT}"'\""' ./opt/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT/inst.sh 
+
+       zip -r tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT-3.0.zip opt > /dev/null 2>&1;
+       cp tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME\_$CURRENT_LOOP_COUNT-3.0.zip $ZIP_PKG_DIR/
+       cd ..
+
+       CURRENT_LOOP_COUNT=$((CURRENT_LOOP_COUNT+1))
+done
+
+cd ..
+cp $PKG_INFO_FILE\_NEW $PKG_INFO_FILE_LOC
+cd $PROJECT_DIR/..
+rm -rf $CHILD_DIR
+echo "------ Copying child zip packages to '$ZIP_PKG_DIR'"
+echo "------ Updating pkg_info file for '$BUILD_DEVICE_TYPE' profile to '$PKG_INFO_FILE_LOC'"
+echo "------ Child Packages Generation Finished Successfully"
old mode 100755 (executable)
new mode 100644 (file)
index 465c691..ba1d6e5
@@ -30,6 +30,7 @@ PROJECT_DIR="$(cd "$(dirname $0)" && pwd)"
 d_showVar PROJECT_DIR
 
 TC_RUN_COUNT=1
+TC_CHILD_COUNT=1
 TCT_CONF_DIR=tct_conf/tct
 
 ASAN="false"
@@ -40,7 +41,7 @@ if [ "build_asan" == "$1" ] || [ "install_asan" == "$1" ]; then
 fi
 
 
-if [ "build" == "$1" ] || [ "build_asan" == "$1" ] || [ "install" == "$1" ] || [ "install_asan" == "$1" ] || [ "install_coverage" == "$1" ] || [ "install_custom" == "$1" ] || [ "install_random" == "$1" ]; then
+if [ "build" == "$1" ] || [ "build_asan" == "$1" ] || [ "install" == "$1" ] || [ "install_asan" == "$1" ] || [ "install_coverage" == "$1" ] || [ "install_custom" == "$1" ] || [ "install_random" == "$1" ] || [ "install_child" == "$1" ]; then
 
        if   [ "$2" = "mobile"  ] || [ "$3" = "mobile"  ] || [ "$4" = "mobile"  ] || [ "$5" = "mobile"  ] ; then
                BUILD_DEVICE_TYPE="mobile"
@@ -147,6 +148,16 @@ if [ "$1" = "install_custom"  ] || [ "$1" = "install_random"  ]; then
        fi
 fi
 
+if [ "$1" = "install_child"  ]; then
+       if [[ $4 == ?(-)+([0-9]) ]]; then
+               TC_CHILD_COUNT=$4
+       elif [[ $5 == ?(-)+([0-9]) ]]; then
+               TC_CHILD_COUNT=$5
+       elif [[ $6 == ?(-)+([0-9]) ]]; then
+               TC_CHILD_COUNT=$6
+       fi
+fi
+
 OBS_URL="http://168.219.209.58:82/TCT:/3.0/target/armv7l/"
 d_showVar RPM_DIR
 INSTALL_PKG_COUNT=0
@@ -700,7 +711,7 @@ function inst {
                        # create new zip
                        ( cd /tmp; zip -r /tmp/tct/packages/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME-3.0.zip opt > /dev/null 2>&1; )
                        # deployment
-                       echo "-- Suite deployment..."
+                       echo "---- Suite deployment..."
                        echo "---- Package copying to $TO_PKG_DIR/$BUILD_DEVICE_TYPE/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME-3.0.zip" 
                        if [ $BUILD_DEVICE_TYPE == "mobile" ]; then
                                mkdir -p $TO_PKG_DIR/mobile
@@ -728,6 +739,16 @@ function inst {
                        fi
 
                        if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi
+                       if [ $INSTALL_MODE == 4 ]; then 
+                               echo "------ Generating child packages..."
+                               bash scripts/child-package-generator.sh $BUILDTC_TYPE $MOD_NAME $BUILD_DEVICE_TYPE $TC_CHILD_COUNT
+                               if [ $? -ne 0 ]; then
+                                       cd $PROJECT_DIR
+                                       echo "------ child-package-generator script Failed to generate child packages"
+                                       exit 1; 
+                               fi
+                               cd $PROJECT_DIR
+                       fi
                        echo "Task finished successfully"
                        cd $PROJECT_DIR
                        echo "$1:->$2" >> install.log
@@ -898,6 +919,27 @@ elif [ "install_random" == "$1" ]; then
        cat install.log
     fi
     rm install.log
+elif [ "install_child" == "$1" ]; then
+       # install
+       INSTALL_PKG_COUNT=0
+       INSTALL_MODE=4
+    echo "**********************************************" > install.log
+    echo "Following packages get installed successfully:" >> install.log
+       if   [ "$2" = "armv7l"  ] || [ "$2" = "aarch64"  ] || [ "$2" = "mobile"  ] || [ "$2" = "wearable"  ] || [ "$2" = "tv"  ] || [ "$2" = "common_iot"  ]; then
+               inst    
+       elif   [ "$3" = "armv7l"  ] || [ "$3" = "aarch64"  ] || [ "$3" = "mobile"  ] || [ "$3" = "wearable"  ] || [ "$3" = "tv"  ] || [ "$3" = "common_iot"  ]; then
+                       inst $2
+       else
+               inst $2 $3
+       fi
+       
+    echo "" >> install.log
+    echo "Total Install PASS Count = $INSTALL_PKG_COUNT" >> install.log
+    echo "**********************************************" >> install.log
+    if [ -z $3 ] || [ -z $4 ]; then
+       cat install.log
+    fi
+    rm install.log
 else
     echo ""
     echo "Invalid subcommand: $1"
old mode 100755 (executable)
new mode 100644 (file)
index e450891..61d18d1
@@ -30,6 +30,7 @@ PROJECT_DIR="$(cd "$(dirname $0)" && pwd)"
 d_showVar PROJECT_DIR
 
 TC_RUN_COUNT=1
+TC_CHILD_COUNT=1
 TCT_CONF_DIR=tct_conf/tct
 
 ASAN="false"
@@ -40,7 +41,7 @@ if [ "build_asan" == "$1" ] || [ "install_asan" == "$1" ]; then
 fi
 
 
-if [ "build" == "$1" ] || [ "build_asan" == "$1" ] || [ "install" == "$1" ] || [ "install_asan" == "$1" ] || [ "install_coverage" == "$1" ] || [ "install_custom" == "$1" ]; then
+if [ "build" == "$1" ] || [ "build_asan" == "$1" ] || [ "install" == "$1" ] || [ "install_asan" == "$1" ] || [ "install_coverage" == "$1" ] || [ "install_custom" == "$1" ] || [ "install_child" == "$1" ]; then
 
        if   [ "$2" = "mobile"  ] || [ "$3" = "mobile"  ] || [ "$4" = "mobile"  ] || [ "$5" = "mobile"  ] ; then
                BUILD_DEVICE_TYPE="mobile"
@@ -146,6 +147,16 @@ if [ "$1" = "install_custom"  ]; then
                TC_RUN_COUNT=$6
        fi
 fi
+
+if [ "$1" = "install_child"  ]; then
+       if [[ $4 == ?(-)+([0-9]) ]]; then
+               TC_CHILD_COUNT=$4
+       elif [[ $5 == ?(-)+([0-9]) ]]; then
+               TC_CHILD_COUNT=$5
+       elif [[ $6 == ?(-)+([0-9]) ]]; then
+               TC_CHILD_COUNT=$6
+       fi
+fi
        
 OBS_URL="http://168.219.209.58:82/TCT:/3.0/emulator/i586/"
 d_showVar RPM_DIR
@@ -691,7 +702,7 @@ function inst {
                        # create new zip
                        ( cd /tmp; zip -r /tmp/tct/packages/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME-3.0.zip opt > /dev/null 2>&1; )
                        # deployment
-                       echo "-- Suite deployment..."
+                       echo "---- Suite deployment..."
                        echo "---- Package copying to $TO_PKG_DIR/$BUILD_DEVICE_TYPE/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME-3.0.zip" 
                        if [ $BUILD_DEVICE_TYPE == "mobile" ]; then
                                mkdir -p $TO_PKG_DIR/mobile
@@ -719,6 +730,16 @@ function inst {
                        fi
 
                        if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi
+                       if [ $INSTALL_MODE == 4 ]; then 
+                               echo "------ Generating child packages..."
+                               bash scripts/child-package-generator.sh $BUILDTC_TYPE $MOD_NAME $BUILD_DEVICE_TYPE $TC_CHILD_COUNT
+                               if [ $? -ne 0 ]; then
+                                       cd $PROJECT_DIR
+                                       echo "------ child-package-generator script Failed to generate child packages"
+                                       exit 1; 
+                               fi
+                               cd $PROJECT_DIR
+                       fi
                        echo "Task finished successfully"
                        cd $PROJECT_DIR
                        echo "$1:->$2" >> install.log
@@ -868,6 +889,27 @@ elif [ "install_custom" == "$1" ]; then
        cat install.log
     fi
     rm install.log
+elif [ "install_child" == "$1" ]; then
+       # install
+       INSTALL_PKG_COUNT=0
+       INSTALL_MODE=4
+    echo "**********************************************" > install.log
+    echo "Following packages get installed successfully:" >> install.log
+       if   [ "$2" = "i586"  ] || [ "$2" = "x86_64"  ] || [ "$2" = "mobile"  ] || [ "$2" = "wearable"  ] || [ "$2" = "tv"  ] || [ "$2" = "common_iot"  ]; then
+               inst    
+       elif   [ "$3" = "i586"  ] || [ "$3" = "x86_64"  ] || [ "$3" = "mobile"  ] || [ "$3" = "wearable"  ] || [ "$3" = "tv"  ] || [ "$3" = "common_iot"  ]; then
+                       inst $2
+       else
+               inst $2 $3
+       fi
+       
+    echo "" >> install.log
+    echo "Total Install PASS Count = $INSTALL_PKG_COUNT" >> install.log
+    echo "**********************************************" >> install.log
+    if [ -z $3 ] || [ -z $4 ]; then
+       cat install.log
+    fi
+    rm install.log
 else
     echo ""
     echo "Invalid subcommand: $1"