From: Jose Perez Carranza <jose.perez.carra...@linux.intel.com>

Add a wrapper that  helps to create the required test runs
for a full cycle on master branch.

Signed-off-by: Jose Perez Carranza <jose.perez.carra...@linux.intel.com>
---
 scripts/full-test-cycle-wrapper.sh | 302 +++++++++++++++++++++++++++++++++++++
 1 file changed, 302 insertions(+)
 create mode 100755 scripts/full-test-cycle-wrapper.sh

diff --git a/scripts/full-test-cycle-wrapper.sh 
b/scripts/full-test-cycle-wrapper.sh
new file mode 100755
index 0000000..f52cd96
--- /dev/null
+++ b/scripts/full-test-cycle-wrapper.sh
@@ -0,0 +1,302 @@
+#!/bin/bash
+#
+# Full Test Cycle wrapper
+#
+# Copyright (c) 2017, Intel Corporation.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+#
+# This script is wrapper to create a set of test runs on testo[pia
+# for a full QA execution cycle.
+
+
+#Set variables to be used globally
+export CONFIG_FILE='testopia_update.config'
+export ACTION='create'
+export ENVIRONMETS=""
+export EXECUTION_TYPE=""
+export OPTIONAL=""
+export TEST_PLAN=""
+export IMAGE="core-image-sato-sdk_"
+
+#Go to the main directory of qa-tools
+FILEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+QADIR="`echo $FILEDIR | sed 's/scripts//g'`"
+cd $QADIR
+
+
+display_bars(){
+   if [ $1 == "START"  ]; then
+       echo "|########### CREATING TEST RUNS FOR  - $2 - ############|"
+   elif [ $1 == "END"  ]; then
+        echo "|----------- TEST RUNS COMPLETED FOR - $2 - -------------"
+   fi
+}
+
+
+#Function that creates the Test Runs for specific component
+create_test_run(){
+   #Check if optional parameters are given
+   if [ -z $2  ]; then
+      OPT=""
+   else
+      OPT="-o $2"
+   fi
+
+   #echo "############ CREATING TEST RUNS FOR - $1 - #############"
+   for ENV in "${ENVIRONMETS[@]}"
+   do
+     if [[ $2 == "BSP-MAN"  ]]; then
+         OPT="-o $IMAGE$ENV"
+     fi
+     for EXTP in $EXECUTION_TYPE
+     do
+        #call the script that creates Test Runs
+        ./testopia_update.py --config $CONFIG_FILE -a $ACTION -p "${1}" -c 
$EXTP -b $BRANCH \
+        -e "$ENV"  --project-version $VERSION --project-milestone "$VERSION 
$MILESTONE" \
+        --project-date $PJDATE --project-revision $RELEASE-$REVISION $OPT 
$TEST_PLAN --verbose
+     done
+   done
+   #echo "############ TEST RUNS COMPLETED FOR - $1 - #############"
+   #echo "........................................................."
+
+}
+
+create_yocto(){
+   #BSP MANUALS
+   ENVIRONMETS=("Genericx86_MMAX32" "Genericx86-64_NUC" "Beaglebone-Black" 
"EdgeRouter" "MPC8315e-rdb")
+   EXECUTION_TYPE="MANUAL"
+   create_test_run "${1}" "BSP-MAN"
+
+   #QEMUs Manuals
+   ENVIRONMETS=("qemu-x86" "qemuarm" "qemuarm64" "qemumips" "qemumips64" 
"qemuppc" "qemux86-64")
+   EXECUTION_TYPE="MANUAL"
+   create_test_run "${1}" "core-image-sato-sdk_ANYQEMU"
+
+   #QEMUs Autos
+   EVIRONMETS=("qemu-x86" "qemuarm" "qemuarm64" "qemumips" "qemumips64" 
"qemuppc" "qemux86-64" "qemux86-lsb" "qemux86_64-lsb")
+   ECUTION_TYPE="AUTO"
+   create_test_run "${1}" "core-image-sato-sdk_ANYQEMU"
+
+   #QEMUs Autos LSB
+   ENVIRONMETS=("qemux86-lsb" "qemux86_64-lsb")
+   EXECUTION_TYPE="AUTO"
+   create_test_run "${1}" "core-image-lsb-sdk_ANYQEMU"
+
+   #BSP Autos
+   ENVIRONMETS=("genericx86 - on MMAX32bit" "genericx86-64 on MMAX64" 
"genericx86-64 on NUC" "genericx86-64-WIC on MMAX64" \
+                "genericx86-64-WIC on NUC" "genericx86-WIC on MMAX32"  
"MPC8315e-rdb" "Beaglebone Black" "EdgeRouter")
+   EXECUTION_TYPE="AUTO"
+   create_test_run "${1}" "core-image-sato-sdk_ANYBSP"
+
+   #BSP Autos
+   ENVIRONMETS=("genericx86-64-lsb on NUC" "genericx86-64-lsb on MMAX64" 
"genericx86-lsb on MMAX32bit")
+   EXECUTION_TYPE="AUTO"
+   create_test_run "${1}" "core-image-lsb-sdk_ANYBSP"
+
+}
+
+create_meta-intel(){
+   #BSP MANUALS
+   ENVIRONMETS=("core2-32_MMAX32" "corei7-64_NUC")
+   EXECUTION_TYPE="MANUAL"
+   create_test_run "${1}" "BSP-MAN"
+
+   #BSP Autos
+   ENVIRONMETS=("core2-32_MMAX32" "corei7-64_NUC" "corei7-64_MMAX64" 
"corei7-64_Joule" \
+                "core2-32_WIC_MMAX32" "corei7-64_WIC_NUC" 
"corei7-64_WIC_MMAX64" "corei7-64_WIC_Joule" \
+               "intel-quark_Galileo" "intel-quark_WIC_Galileo")
+
+   EXECUTION_TYPE="AUTO"
+   create_test_run "${1}" "core-image-sato-sdk_ANYBSP"
+
+   #BSP Autos LSB
+   ENVIRONMETS=("core2-32_lsb_MMAX32" "corei7-64_lsb_NUC" 
"corei7-64_lsb_MMAX64" "corei7-64_lsb_Joule")
+
+   EXECUTION_TYPE="AUTO"
+   create_test_run "${1}" "core-image-lsb-sdk_ANYBSP"
+}
+
+
+#Function that set the environments and execution per component
+create_test_cycle(){
+
+    TEST_PLAN=""
+    case "$1" in
+                "ADT")
+                      ENVIRONMETS=("Fedora 25 i686" "Ubuntu 16.04 x86_64")
+                      EXECUTION_TYPE="MANUAL AUTO"
+                       create_test_run "${1}"
+                      ;;
+             "BitBake")
+                      ENVIRONMETS=("Fedora 24 x86_64")
+                      EXECUTION_TYPE="MANUAL"
+                       create_test_run "${1}"
+                      ;;
+           "BSP/QEMU")
+                      if [ $TYPE == "YOCTO"  ]; then
+                         create_yocto $1
+                      else
+                         create_meta-intel $1
+                      fi
+                      ;;
+              "CROPS")
+                       ENVIRONMETS=("Centos 7.1")
+                      EXECUTION_TYPE="AUTO"
+                      OPTIONAL="Toaster Poky"
+                      for OPT in $OPTIONAL
+                       do
+                          create_test_run "${1}" $OPT
+                       done
+                      ;;
+     "Eclipse Plugin")
+                      ENVIRONMETS=("Mars on Fedora 22 x86_64", "Neon on Fedora 
22 x86_64")
+                      EXECUTION_TYPE="MANUAL"
+                      create_test_run "${1}"
+                      ;;
+               "eSDK")
+                       ENVIRONMETS=("Centos 7.1")
+                      EXECUTION_TYPE="AUTO"
+                      OPTIONAL="oeselftest sdkext"
+                      for OPT in $OPTIONAL
+                       do
+                          create_test_run "${1}" $OPT
+                       done
+                      ;;
+     "General Runtime")
+                      ENVIRONMETS=("VMWare Player on Ubuntu")
+                      EXECUTION_TYPE="AUTO"
+                      #This case test plan name is diferent from product name
+                      TEST_PLAN="--test-plan Runtime"
+                      create_test_run "${1}"
+                      ;;
+             "Kernel")
+                      ENVIRONMETS=("Centos 7")
+                      EXECUTION_TYPE="MANUAL"
+                      create_test_run "${1}"
+                      ;;
+         "Meta-yocto")
+                      ENVIRONMETS=("Ubuntu 14.04 x86_64")
+                      EXECUTION_TYPE="MANUAL"
+                      create_test_run "${1}"
+                      ;;
+            "OE-Core")
+                      ENVIRONMETS=("CentOS 7.1 x86_64" "Debian 8 x86_64" 
"Fedora 25 x86_64" "Fedora 24 x86_64" \
+                                   "OpenSuse 13.2 x86_64" "OpenSuse421 x86_64" 
"ubuntu 16.04 x86_64" \
+                                   "Ubuntu 16.10 x86-64")
+                      EXECUTION_TYPE="AUTO"
+                      create_test_run "${1}"
+                      ;;
+            "Runtime")
+                      ENVIRONMETS=("VMWare Player on Ubuntu")
+                      EXECUTION_TYPE="MANUAL"
+                      #This case test plan name is diferen from product name
+                      TEST_PLAN="--test-plan Build-Appliance"
+                      create_test_run "${1}"
+                      ;;
+            "Toaster")
+                      ENVIRONMETS=("Debian 4.3.0-0.bpo.1-amd64")
+                      EXECUTION_TYPE="MANUAL"
+                      OPTIONAL="UI-managed-mode"
+                      create_test_run "${1}" $OPTIONAL
+                      EXECUTION_TYPE="AUTO"
+                      OPTIONAL="UI"
+                      create_test_run "${1}" $OPTIONAL
+                      ;;
+  esac
+}
+
+
+usage(){
+  echo "Usage: ./full-test-cycle-wrapper.sh [-h] || [ [-b] [-p] [-m] [-r] [-l] 
[-d] ]"
+  echo "Arguments:"
+  echo " -h, --help               Show this help message and exit"
+  echo " -t TYPE OF CYCLE {YOCTO,META-INTEL}"
+  echo "                          Type of test cycle, could be YOCTO or 
META-INTEL"
+  echo " -b BRANCH {master,jethro,dizzy,daisy,noexists}, --branch 
{master,jethro,dizzy,daisy,noexists}
+                         Branch for create or update."
+  echo " -p PROJECT VERSION  {2.2 2.3 2.4}
+                          Version of the project."
+  echo " -m PROJECT MILESTONE {M1 M2 M3 M4}
+                          Milestone of the project."
+  echo " -r RELEASE COMMIT {XXXXXX}
+                          SCM Revision of the project, commit of branch 
tested."
+  echo " -c RELEAE CANDIDATE {rc1 rc2 rcX}
+                          Release candidate to be used"
+  echo " -d PROJECT DATE {YYY-MM-DD}
+                          SCM version/revision date of the project."
+  exit
+}
+
+if [[ ( $# == "--help") ||  $# == "-h" || $# -eq 0 ]] ; then
+    usage
+    exit 0
+elif [  $# -ne 14 ]; then
+    echo "ERROR: missing arguments"
+    usage
+    exit 1
+fi
+
+while getopts ":t:b:p:m:r:c:d:" opt
+do
+  case $opt in
+       t) #Check for specific type of QA cycle
+          export TYPE=$OPTARG
+          if [ "$TYPE" != "YOCTO" -a  "$TYPE" != "META-INTEL" ]; then
+              echo "ERROR: TYPE (-t) should be YOCTO or META-INTEL"
+              exit 1
+         fi
+         ;;
+       b) #Creates Test Run for a exection on master
+          export BRANCH=$OPTARG
+          ;;
+       p) #Project version (ie 2.3)
+         export VERSION=$OPTARG
+         ;;
+       m) #Milestone under test
+         export MILESTONE=$OPTARG
+         ;;
+       r) #Project revision
+          export REVISION=$OPTARG
+         ;;
+       c) #Project Release
+          export RELEASE=$OPTARG
+         ;;
+       d) #Project Date YYYY-MM-DD
+         export PJDATE=$OPTARG
+         ;;
+      \?)
+         echo "ERROR: INAVLID OPTION"
+          usage
+          ;;
+  esac
+done
+
+#Initialize the environment
+virtualenv venv
+source venv/bin/activate
+
+## Define components by t ype of test cycle
+if [[ $TYPE == "YOCTO" ]]; then
+    COMPONENTS=("ADT" "BitBake" "BSP/QEMU" "CROPS" "Eclipse Plugin" "eSDK" 
"General Runtime" "Kernel" "Meta-yocto" "OE-Core" "Runtime" "Toaster")
+else
+    COMPONENTS=("BSP/QEMU")
+fi
+
+#start creting all the test runs for the full release cycle
+#per available components
+
+for component in "${COMPONENTS[@]}"
+do
+  display_bars "START" "${component}"
+  create_test_cycle "${component}"
+  display_bars "END" "${component}"
+done
-- 
2.11.0

-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to