X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Ftcbuild;h=b60467501b00694f25867da76af3e0e797eea37f;hb=fa3f750c6878eb126034d7958458dc3a1f67924f;hp=89c2de70cd166068877a43402f6f48217687e409;hpb=fa6279fb2830427d5ab569ca14e6ade1557ef2fa;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/tcbuild b/automated-tests/tcbuild deleted file mode 120000 index 89c2de7..0000000 --- a/automated-tests/tcbuild +++ /dev/null @@ -1 +0,0 @@ -scripts/tcbuild.sh \ No newline at end of file diff --git a/automated-tests/tcbuild b/automated-tests/tcbuild new file mode 100755 index 0000000..b604675 --- /dev/null +++ b/automated-tests/tcbuild @@ -0,0 +1,215 @@ +#!/bin/bash + +#---------- DEBUG_BEGIN ---------- +#ARG="-d" # debug-on flag, might be set as $1 +# keyprompt "introductory message" -- wait until any key pressed +function keyprompt { echo -ne "\n\e[1;31m$1 -- " && read -n 1 && echo -e "\n\e[0m"; } +# d_bp -- breakpoint at which user need to press any key to proceed +function d_bp { if [[ "$ARG" == "-d" ]]; then keyprompt "d >> Press any key"; fi } +# d_showVar VARNAME -- print bash variable name +function d_showVar { if [ "$ARG" == "-d" -a -n "$1" ]; then echo "d >> ${1} = ${!1}"; fi } +# d_print "message" -- print a debug message +function d_print { if [ "$ARG" == "-d" -a -n "$1" ]; then echo -e "d >> $1"; fi } +#---------- DEBUG_END ---------- + +PROJECT_DIR="$(cd "$(dirname $0)" && pwd)" +d_showVar PROJECT_DIR + +function gbs_profile { +perl -e " +use Config::Tiny; +my \$Config = Config::Tiny->read( \"\$ENV{HOME}/.gbs.conf\" ); +my \$profile = \$Config->{general}->{profile}; +\$profile =~ s/profile.//; +print \$profile;" +} + +PROFILE=`gbs_profile` +RPM_DIR="$HOME/GBS-ROOT/local/repos/$PROFILE/armv7l/RPMS" +d_showVar RPM_DIR + +function add_module { + # argument check + if [ -z "$1" ]; then echo "Usage: `basename $0` addmod [module_lib_name]"; exit 1; fi + + MODULE_NAME=$1 + d_showVar MODULE_NAME + MODULE_NAME_C=$(echo $MODULE_NAME | sed -e 's/-\([a-z]\)/\U\1/' -e 's/^\([a-z]\)/\U\1/') + d_showVar MODULE_NAME_C + MODULE_NAME_U=$(echo $MODULE_NAME | sed -e 's/-/_/') + d_showVar MODULE_NAME_U +# MODULE_LIBNAME=${2:-capi-$MODULE_NAME} + MODULE_LIBNAME=$1 + d_showVar MODULE_LIBNAME + + echo "Adding $MODULE_NAME module to project..." + d_bp + cd $PROJECT_DIR + # prepare .spec file + echo "-- Generating packaging/core-$MODULE_NAME-tests.spec file" + if [ ! -d packaging ]; then mkdir packaging; fi + sed -e "s:\[MODULE_NAME\]:$MODULE_NAME:g" -e "s:\[MODULE_LIBNAME\]:$MODULE_LIBNAME:g" \ + templates/core-\[module_name\]-tests.spec > packaging/core-$MODULE_NAME-tests.spec + # prepare src directory + mkdir src/$MODULE_NAME + echo "-- Generating src/$MODULE_NAME/CMakeLists.txt file" + sed -e "s:%{MODULE_NAME}:$MODULE_NAME:g" -e "s:%{MODULE_LIBNAME}:$MODULE_LIBNAME:g" \ + templates/src-directory/CMakeLists.txt > src/$MODULE_NAME/CMakeLists.txt + echo "-- Generating src/$MODULE_NAME/tct-$MODULE_NAME-core.c file" + sed -e "s:%{MODULE_NAME}:$MODULE_NAME:g" \ + templates/src-directory/tct-\[module_name\]-core.c > src/$MODULE_NAME/tct-$MODULE_NAME-core.c + echo "-- Generating src/$MODULE_NAME/utc-$MODULE_NAME.c file" + sed -e "s:%{MODULE_NAME_U}:$MODULE_NAME_U:g" -e "s:%{MODULE_NAME_C}:$MODULE_NAME_C:g" \ + templates/src-directory/utc-\[module_name\].c > src/$MODULE_NAME/utc-$MODULE_NAME.c + echo "Task finished successfully" +} + +function rm_module { + # argument check + if [ -z "$1" ]; then echo "Usage: `basename $0` rmmod "; exit 1; fi + + MODULE_NAME=$1 + d_showVar MODULE_NAME + + echo "Removing $MODULE_NAME module from project..." + d_bp + echo "---- Updating /opt/tct/packages/package_list.xml" + scripts/tcpackageslistsgen.sh $MODULE_NAME /opt/tct/packages/package_list.xml 1 + if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + # echo "---- Updating test plans" + # scripts/tcpackageslistsgen.sh $MODULE_NAME /opt/tct/manager/plan/*.xml 1 + # if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + + cd $PROJECT_DIR + echo "-- Removing packaging/core-$MODULE_NAME-tests.spec file" + rm packaging/core-$MODULE_NAME-tests.spec + echo "-- Removing src/$MODULE_NAME directory" + rm -r src/$MODULE_NAME + echo "Task finished successfully" +} + +function build { + if [ -n "$1" ]; then + (cd src/$1; ../../scripts/tcheadgen.sh tct-$1-core.h) + if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + cp packaging/core-$1-tests.spec ../packaging + cp .gitignore-without-autogenerated-files .gitignore + gbs build -A armv7l --spec core-$1-tests.spec --include-all --keep-packs | \ + tee build.log | stdbuf -o0 sed -e 's/error:/\x1b[1;91m&\x1b[0m/' \ + -e 's/warning:/\x1b[93m&\x1b[0m/' + rm ../packaging/core-$1-tests.spec + cp .gitignore-with-autogenerated-files .gitignore + else + echo "Build requires a module name" + exit 1 + fi +} + +function inst { + if [ -z "$1" ] + then + for mod in `ls -1 src/ | grep -v CMakeLists` + do + + if [ $mod != 'common' ] && [ $mod != 'manual' ]; then + + PKG_NAME="core-$mod-tests" + d_showVar PKG_NAME + VER=$(cat packaging/$PKG_NAME.spec | awk '/^Version:/ { print $2; exit; }') + d_showVar VER + PKG_VNAME="$PKG_NAME-$VER" + d_showVar PKG_VNAME + PKG_FNAME="$PKG_VNAME-0.armv7l.rpm" + d_showVar PKG_FNAME + + if [ -f "$RPM_DIR/$PKG_FNAME" ] + then + inst $mod + echo "" + fi + fi + done + else + cd $PROJECT_DIR + # setting variables + MOD_NAME="$1" + d_showVar MOD_NAME + PKG_NAME="core-$MOD_NAME-tests" + d_showVar PKG_NAME + VER=$(cat packaging/$PKG_NAME.spec | awk '/^Version:/ { print $2; exit; }') + d_showVar VER + PKG_VNAME="$PKG_NAME-$VER" + d_showVar PKG_VNAME + PKG_FNAME="$PKG_VNAME-0.armv7l.rpm" + d_showVar PKG_FNAME + TCT_DIR="opt/tct-$MOD_NAME-core-tests" + d_showVar TCT_DIR + + echo "Deploying $MOD_NAME suite to tct-mgr..." + d_bp + # prepare tct directory and files + echo "-- Preparing suite .zip file..." + echo "---- Creating /tmp/$TCT_DIR directory" + rm -r /tmp/opt > /dev/null 2>&1 + mkdir -p /tmp/$TCT_DIR + # README + echo "---- Copying /tmp/$TCT_DIR" + cp templates/tct-package/README /tmp/$TCT_DIR + # rpm + echo "---- Copying /tmp/$TCT_DIR package" + cp $RPM_DIR/$PKG_FNAME /tmp/$TCT_DIR + if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + # inst.sh + echo "---- Generating /tmp/$TCT_DIR/inst.sh file" + sed -e "s:%{PKG_NAME}:\"$PKG_NAME\":g" -e "s:%{PKG_FULLNAME}:\"$PKG_FNAME\":g" \ + -e "s:%{PKG_DIR}:\"/opt/usr/media/tct/$TCT_DIR\":g" \ + templates/tct-package/inst.sh > /tmp/$TCT_DIR/inst.sh + chmod a+x /tmp/$TCT_DIR/inst.sh + # tests.xml + echo "---- Generating /tmp/$TCT_DIR" + scripts/tctestsgen.sh $MOD_NAME /tmp/$TCT_DIR target + if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + # zip + echo "---- Preparing /tmp/tct/packages/tct-$MOD_NAME-core-tests-2.2.1-1.zip file" + # clear old zips + rm -r /tmp/tct/packages > /dev/null 2>&1 + mkdir -p /tmp/tct/packages + # create new zip + ( cd /tmp; zip -r /tmp/tct/packages/tct-$MOD_NAME-core-tests-2.2.1-1.zip opt > /dev/null 2>&1; ) + # deployment + echo "-- Suite deployment..." + echo "---- Copying /opt/tct/packages/tct-$MOD_NAME-core-tests-2.2.1-1.zip" + cp /tmp/tct/packages/tct-$MOD_NAME-core-tests-2.2.1-1.zip /opt/tct/packages/ + echo "---- Updating /opt/tct/packages/package_list.xml" + scripts/tcpackageslistsgen.sh $MOD_NAME /opt/tct/packages/package_list.xml 0 + if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + # echo "---- Updating test plans" + # for file in `grep -r tct-$MOD_NAME-core-tests /opt/tct/manager/plan/ | cut -d: -f1 | uniq` + # do + # scripts/tcpackageslistsgen.sh $MOD_NAME $file + # done + # scripts/tcpackageslistsgen.sh $MOD_NAME /opt/tct/manager/plan/Full_test.xml + # if [ $? -ne 0 ]; then echo "Aborting..."; exit 1; fi + echo "Task finished successfully" + fi +} + +if [ -z "$1" ]; then + # usage note + echo "Usage: `basename $0` [module_lib_name]" + exit 1 +elif [ "addmod" == "$1" ]; then + # add new module + add_module $2 $3 +elif [ "rmmod" == "$1" ]; then + # remove module + rm_module $2 +elif [ "build" == "$1" ]; then + # build the binary + build $2 +elif [ "install" == "$1" ]; then + # install + inst $2 +else + echo "Invalid subcommand: $1" +fi