From: Satyajit Anand Date: Wed, 7 Sep 2016 05:12:33 +0000 (+0530) Subject: [TCT][scripts][NonACR][Implementation for generating Child Zip Packages] X-Git-Tag: Public_Final_RC6~438^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a8b3298885f6eb4b319fc8b43c6af055da6eac54;p=test%2Ftct%2Fnative%2Fapi.git [TCT][scripts][NonACR][Implementation for generating Child Zip Packages] Change-Id: I532afb29ba20f89a955e5926d6cfd5b80ddff87e Signed-off-by: Satyajit Anand --- diff --git a/scripts/child-package-generator.sh b/scripts/child-package-generator.sh new file mode 100644 index 0000000..e272385 --- /dev/null +++ b/scripts/child-package-generator.sh @@ -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="" +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="" + PKG_INFO_2=" $tc_count" + PKG_INFO_3=" 0" + PKG_INFO_4=" $tc_count" + PKG_INFO_5=" $BUILD_DEVICE_TYPE/tct-$MOD_NAME-$PREFIX_PKG_NAME-$TAG_SPEC_PKG_NAME$DELIMIT$CURRENT_LOOP_COUNT-3.0.zip" + PKG_INFO_6=" " + 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" diff --git a/scripts/tcbuild.sh b/scripts/tcbuild.sh old mode 100755 new mode 100644 index 465c691..ba1d6e5 --- a/scripts/tcbuild.sh +++ b/scripts/tcbuild.sh @@ -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" diff --git a/scripts/tcbuildsdk.sh b/scripts/tcbuildsdk.sh old mode 100755 new mode 100644 index e450891..61d18d1 --- a/scripts/tcbuildsdk.sh +++ b/scripts/tcbuildsdk.sh @@ -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"