diff options
Diffstat (limited to 'examples/eclipse_automation_test.py')
-rwxr-xr-x | examples/eclipse_automation_test.py | 5897 |
1 files changed, 5897 insertions, 0 deletions
diff --git a/examples/eclipse_automation_test.py b/examples/eclipse_automation_test.py new file mode 100755 index 00000000000..85b7a3535a2 --- /dev/null +++ b/examples/eclipse_automation_test.py @@ -0,0 +1,5897 @@ +#!/usr/bin/python +# Copyright + +# DESCRIPTION +# This is eclipse automation base class and test cases file + + + +import unittest, time, re, sys, getopt, os, logging, string, errno, exceptions +from time import sleep + +import shutil, argparse, ConfigParser, platform, json +from iniparser import IniParser +import getpass, subprocess +from dogtail import tree +from dogtail.tree import predicate +from datetime import datetime +from dogtail.rawinput import keyCombo, pressKey, typeText +from dogtail.procedural import FocusApplication +from configVariables import * +import httplib +import urllib2 +import pexpect + + +class NoParsingFilter(logging.Filter): + def filter(self, record): + return record.levelno == 100 + +class testcase(object): + + def __init__(self, test_case): + self.test_case = test_case + + def __call__(self, func): + def wrapped_f(*args): + return func(*args) + wrapped_f.test_case = self.test_case + wrapped_f.__name__ = func.__name__ + return wrapped_f + + +def LogResults(original_class): + orig_method = original_class.run + + inifile = IniParser() + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + commit = inifile.getValue("settings-eclipse.ini", "Run", "commit") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + name_of_file = 'results-eclipse-' + eclipse_version +'.log' + path_of_file = '/home/'+getpass.getuser()+'/eclipse-results/' + param1 + '/' + param2 + "-" + dateofrun + "/" + logfile=path_of_file+name_of_file + + from time import strftime, gmtime + caller = os.path.basename(sys.argv[0]) + #timestamp = strftime('%Y%m%d%H%M%S',gmtime()) + #logfile = os.path.join(os.getcwd(),'results-'+caller+'.'+timestamp+'.log') + linkfile = os.path.join(os.getcwd(),'results-'+caller+'.log') + + #rewrite the run method of unittest.TestCase to add testcase logging + def run(self, result, *args, **kws): + orig_method(self, result, *args, **kws) + passed = True + testMethod = getattr(self, self._testMethodName) + #if test case is decorated then use it's number, else use it's name + try: + test_case = testMethod.test_case + except AttributeError: + test_case = self._testMethodName + + class_name = str(testMethod.im_class).split("'")[1] + + #create custom logging level for filtering. + custom_log_level = 100 + logging.addLevelName(custom_log_level, 'RESULTS') + + def results(self, message, *args, **kws): + if self.isEnabledFor(custom_log_level): + self.log(custom_log_level, message, *args, **kws) + logging.Logger.results = results + + logging.basicConfig(filename=logfile, + filemode='w', + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + datefmt='%H:%M:%S', + level=custom_log_level) + for handler in logging.root.handlers: + handler.addFilter(NoParsingFilter()) + local_log = logging.getLogger(caller) + + #check status of tests and record it + + for (name, msg) in result.errors: + if (self._testMethodName == str(name).split(' ')[0]) and (class_name in str(name).split(' ')[1]): + local_log.results("Testcase "+str(test_case)+": ERROR") + local_log.results("Testcase "+str(test_case)+":\n"+msg) + passed = False + for (name, msg) in result.failures: + if (self._testMethodName == str(name).split(' ')[0]) and (class_name in str(name).split(' ')[1]): + local_log.results("Testcase "+str(test_case)+": FAILED") + local_log.results("Testcase "+str(test_case)+":\n"+msg) + passed = False + for (name, msg) in result.skipped: + if (self._testMethodName == str(name).split(' ')[0]) and (class_name in str(name).split(' ')[1]): + local_log.results("Testcase "+str(test_case)+": SKIPPED") + passed = False + if passed: + local_log.results("Testcase "+str(test_case)+": PASSED") + + # Create symlink to the current log + if os.path.exists(linkfile): + os.remove(linkfile) + os.symlink(logfile, linkfile) + + original_class.run = run + + return original_class + + +########################################### +# # +# PART II: base class # +# # +########################################### + +@LogResults +class eclipse_cases_base(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.log = cls.logger_create() + + def setUp(self): + #self.parser.read('eclipse_test.cfg') + + pass + + @staticmethod + def logger_create(): + + + inifile = IniParser() + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + name_of_file = 'eclipse-' + eclipse_version + "-" +param1 + "-" + param2 + "-" + dateofrun +".log" + path_of_file = '/home/'+getpass.getuser()+'/eclipse-results/' + param1 + '/' + param2 + "-" + dateofrun + "/" + log_file=path_of_file+name_of_file + + if not os.path.exists(path_of_file): + os.makedirs(path_of_file) + #log_file = "eclipse-auto-" + time.strftime("%Y%m%d%H%M%S") + ".log" + + #if os.path.exists("eclipse-auto.log"): os.remove("eclipse-auto.log") + #os.symlink(log_file, "eclipse-auto.log") + + log = logging.getLogger("eclipse") + log.setLevel(logging.DEBUG) + + fh = logging.FileHandler(filename=log_file) + fh.setLevel(logging.DEBUG) + + ch = logging.StreamHandler(sys.stdout) + ch.setLevel(logging.INFO) + + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + fh.setFormatter(formatter) + ch.setFormatter(formatter) + + log.addHandler(fh) + log.addHandler(ch) + + return log + + + def tearDown(self): + + + app = tree.root.application('Eclipse') + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + frames_number = len(frames) + if (frames_number == 0): + self.log.info("can not find frames") + while frames_number > 1: + keyCombo("<<Alt><F4>") + print frames_number + frames_number-= 1 + + + + def create_tree(self, eclipse_version, param1, param2, dateofrun): + + nameofrun = "run-"+ param1 + "-" + param2 + "-" + dateofrun + self.log.info("# Step : Name of run: %s"%(nameofrun)) + + #create folder for eclipse-run + eclipse_run = '/home/' + getpass.getuser() + '/eclipse-run/' + if not os.path.exists(eclipse_run): + os.makedirs(eclipse_run) + self.log.info("# Step : Create directory : %s" %(eclipse_run)) + + #create folder run-param1-param2-date of run in eclipse-run + run_path=eclipse_run + nameofrun + if not os.path.exists(run_path): + os.makedirs(run_path) + self.log.info("# Step : Create directory : %s" %(run_path)) + + #create folder download under eclipse-run/run-param1-param2-dateofrun. + download_path = run_path + "/download" + if not os.path.exists(download_path): + os.makedirs(download_path) + self.log.info("# Step : Create directory : %s" %(download_path)) + + #create folder installed under eclipse-run/run-param1-param2-dateofrun. + installed_path = run_path + "/installed" + if not os.path.exists(installed_path): + os.makedirs(installed_path) + self.log.info("# Step : Create directory : %s" %(installed_path)) + + + #create folder version of eclipse(luna/kepler/mars) under eclipse-run/run-param1-param2-dateofrun. + version_path = run_path + "/"+eclipse_version + if not os.path.exists(version_path): + os.makedirs(version_path) + self.log.info("# Step : Create directory : %s" %(version_path)) + + + #create folder for eclipse-results + eclipse_result = '/home/' + getpass.getuser() + '/eclipse-results/' + if not os.path.exists(eclipse_result): + os.makedirs(eclipse_result) + self.log.info("# Step : Create directory : %s" %(eclipse_result)) + + + #create folder for release-results + release_result = eclipse_result + "/releases" + if not os.path.exists(release_result): + os.makedirs(release_result) + self.log.info("# Step : Create directory : %s" %(release_result)) + + #create folder for nightly-results + nightly_result = eclipse_result + "/nightly" + if not os.path.exists(nightly_result): + os.makedirs(nightly_result) + self.log.info("# Step : Create directory : %s" %(nightly_result)) + + + def download_basic_things(self, param1, param2, dateofrun): + + dogtail_scripts_path = subprocess.check_output("pwd", shell=True) + examples_path = dogtail_scripts_path.strip() + + download_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + '/download/' + os.chdir(download_path) + adt_archive="adt_installer.tar.bz2" + adt_archive_path = download_path + adt_archive + + if os.path.exists(adt_archive_path): + self.log.info("* Check : Found adt-archive on %s-%s"%(param1,param2)) + else: + self.log.info("# Step : Download adt-archive for %s-%s"%(param1,param2)) + if not "rc" in param2: + adt_link = "https://autobuilder.yoctoproject.org/pub/" + param1 + "/" + param2 + "/adt-installer/" + adt_archive + else: + adt_link = "https://autobuilder.yoctoproject.org/pub/" + param1 + "/" + param2 + "/adt-installer-QA/" + adt_archive + + #verify adt_link + try: + response = urllib2.urlopen(adt_link) + self.log.info("* Check : Url is : " + str(adt_link) ) + self.log.info("* Check : Response from url is : " + str(response.code)) + os.system("wget -q " +adt_link) + self.log.info("# Step : Wget " + str(adt_link) ) + except urllib2.HTTPError, message: + self.fail("Message from url is : " + str(message.code)) + except urllib2.URLError, urlerror: + self.fail("Message from url is : " + str(urlerror.args)) + + + + adt_path = download_path + 'adt-installer' + if os.path.exists(adt_path): + self.log.info("* Check : Found folder adt-installer on %s-%s"%(param1,param2)) + else: + os.system("tar jxf "+adt_archive) + self.log.info("# Step : Extract adt-archive") + + + poky_path = download_path + "poky/" + if os.path.exists(poky_path): + self.log.info("* Check : Found folder poky on %s-%s folder"%(param1,param2)) + else: + os.system("git clone git://git.yoctoproject.org/poky") + self.log.info("# Step : Clone poky") + + # download poky2 + poky2_path = download_path + "poky2/" + if os.path.exists(poky2_path): + self.log.info("* Check : Found folder poky2 on %s-%s folder"%(param1,param2)) + else: + os.system("git clone git://git.yoctoproject.org/poky poky2") + self.log.info("# Step : Clone poky2") + + #download toolchain + os.chdir(download_path) + + toolchain_i586 = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 + "/" + "/toolchain/x86_64/" + "/|grep sato-i586|sed \'s/<[^>]*>//g\'|awk -F\"./.sh\" \'{print $1}'", shell=True) + toolchain_i586_split = str(toolchain_i586.split(".sh")[0]).strip() + ".sh" + toolchain_i586_link = "http://autobuilder.yoctoproject.org/pub/" + param1 + "/" + param2 + "/toolchain/x86_64/" + toolchain_i586_split + toolchain_path=download_path + toolchain_i586_split + + if os.path.exists(toolchain_path): + self.log.info("* Check : Found toolchain %s in download folder "%(toolchain_i586_split)) + else: + self.log.info("# Step : Download toolchain %s"%(toolchain_i586_split)) + try: + response = urllib2.urlopen(toolchain_i586_link) + self.log.info("* Check : Url is : " + str(toolchain_i586_link) ) + self.log.info("* Check : Response from url is : " + str(response.code)) + os.system("wget -q " + toolchain_i586_link) + self.log.info("# Step : Wget " + str(toolchain_i586_link)) + except urllib2.HTTPError, message: + self.fail("Message from url is : " + str(message.code)) + except urllib2.URLError, urlerror: + self.fail("Message from url is : " + str(urlerror.args)) + + + os.chdir(examples_path) + + + + + def download_plugin_and_eclipse_version(self, eclipse_version, param1, param2, dateofrun): + + dogtail_scripts_path = subprocess.check_output("pwd", shell=True) + examples_path = dogtail_scripts_path.strip() + + version_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + '/' + eclipse_version + '/' + os.chdir(version_path) + + #download eclipse-plugin + archive_parent_link = "http://autobuilder.yoctoproject.org/pub/" + str(param1) + "/" + str(param2) + "/" + archive = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 + "/" + "eclipse-plugin/" + eclipse_version +"/|grep archive|sed \'s/<[^>]*>//g\'|awk -F\".zip\" \'{print $1}'", shell=True) + archive_link = str(archive_parent_link) + "eclipse-plugin/" + eclipse_version + "/" + archive.strip().split("\n" , 1)[0] + ".zip" + + + archive_plugin_path = version_path + archive.strip().split("\n" , 1)[0]+".zip" + + if os.path.exists(archive_plugin_path): + self.log.info("* Check : Found eclipse-%s plugin archive"%(eclipse_version)) + else: + self.log.info("# Step : Download eclipse-%s plugin archive"%(eclipse_version)) + try: + response = urllib2.urlopen(archive_link) + self.log.info("* Check : Url is : " + str(archive_link) ) + self.log.info("* Check : Response from url is : " + str(response.code)) + os.system("wget -q " + archive_link) + self.log.info("# Step : Wget " + str(archive_link)) + except urllib2.HTTPError, message: + self.fail("Message from url is : " + str(message.code)) + except urllib2.URLError, urlerror: + self.fail("Message from url is : " + str(urlerror.args)) + + #download eclipse-poky for eclipse-version(luna/kepler/mars) + + version_poky_parent_link = "http://autobuilder.yoctoproject.org/pub/" + str(param1) + "/" + str(param2) + "/" + version_poky = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 +"/|grep eclipse-poky-" + eclipse_version +"|sed 's/<[^>]*>//g'|awk -F\".tar.bz2\" \'{print $1}\'", shell=True) + + if not "rc" in param2: + version_poky_link = version_poky_parent_link + version_poky.strip().split("\n" , 2)[1] + ".tar.bz2" + archive_eclipse_path = version_path + version_poky.strip().split("\n" , 2)[1] + ".tar.bz2" + else: + version_poky_link = version_poky_parent_link + version_poky.strip().split("\n" , 1)[0] + ".tar.bz2" + archive_eclipse_path = version_path + version_poky.strip().split("\n" , 1)[0] + ".tar.bz2" + + if os.path.exists(archive_eclipse_path): + self.log.info("* Check : Found eclipse-%s poky archive"%(eclipse_version)) + else: + self.log.info("# Step : Download eclipse-%s poky archive"%(eclipse_version)) + try: + response = urllib2.urlopen(version_poky_link) + self.log.info("* Check : Url is : " + str(version_poky_link) ) + self.log.info("* Check : Response from url is : " + str(response.code)) + os.system("wget -q " + version_poky_link) + self.log.info("# Step : Wget " + str(archive_link)) + except urllib2.HTTPError, message: + self.fail("Message from url is : " + str(message.code)) + except urllib2.URLError, urlerror: + self.fail("Message from url is : " + str(urlerror.args)) + + #extract eclipse-poky + + if not "rc" in param2: + poky_archive = version_poky.strip().split("\n" , 2)[1] + ".tar.bz2" + else: + poky_archive = version_poky.strip().split("\n" , 1)[0] + ".tar.bz2" + + os.system("tar jxf " + poky_archive) + self.log.info("# Step : Extract : %s"%(poky_archive)) + + os.chdir(examples_path) + + def install_basic_things(self, param1, param2, commit, dateofrun): + + dogtail_scripts_path = subprocess.check_output("pwd", shell=True) + examples_path = dogtail_scripts_path.strip() + + run_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + download_path = run_path + '/download/' + + toolchain_i586 = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 + "/" + "/toolchain/x86_64/" + "/|grep sato-i586|sed \'s/<[^>]*>//g\'|awk -F\"./.sh\" \'{print $1}'", shell=True) + tch_file = toolchain_i586.split(".sh")[0].strip() + ".sh" + + os.chdir(download_path) + os.system("chmod +x %s" %tch_file) + toolchain_installed_path = run_path + "/installed/toolchain" + + if os.path.exists(toolchain_installed_path): + self.log.info("* Check : Found toolchain %s installed"%(tch_file)) + else: + self.log.info("# Step : Install toolchain : %s" %(tch_file)) + + tch = pexpect.spawn("sh " + str(tch_file)) + tch.expect("Enter target directory for SDK") + tch.sendline(toolchain_installed_path) + tch.expect("Proceed[Y/n]?") + tch.sendline("Y") + i = tch.expect(['Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.','SDK has been successfully set up and is ready to be used.'], timeout=600) + if i==0: + self.log.warning("Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.") + elif i==1: + self.log.info("# Step : SDK has been successfully set up and is ready to be used.") + + + #bitbake meta-ide-support and core-image-sato-sdk + poky_path = download_path + "poky/" + os.chdir(poky_path) + os.system("git checkout " + commit) + os.chdir(examples_path) + os.system("bash build_meta_ide.sh %s" %(poky_path)) + + self.log.info("# Step : Build meta-ide-support") + adt_path = download_path + 'adt-installer' + adt_archive="adt_installer.tar.bz2" + + if os.path.exists(adt_path): + self.log.info("* Check : Found adt extracted") + else: + os.chdir(download_path) + #extract adt archive + os.system("tar jxf "+ adt_archive) + self.log.info("# Step : Extract : %s" %(adt_archive)) + + #install adt + adt_path = download_path + 'adt-installer' + os.chdir(adt_path) + adt_installed_path = run_path + "/installed/adt" + + if os.path.exists(adt_installed_path): + self.log.info("* Check : Found adt installed") + else: + self.log.info("# Step : Install adt-installer") + + child = pexpect.spawn("./adt_installer") + child.expect("Please enter the install location") + child.sendline(adt_installed_path) + child.expect("Please enter your selections here:") + child.sendline("s") + i = child.expect(['# Yocto ADT has been successfully installed.','# Meet errors', '# Please check'], timeout=15000) + if i==0: + self.log.info("# Step : Yocto ADT has been successfully installed") + elif i==1: + self.fail("Meet errors and can not install ADT") + elif i==2: + self.fail("Please download another ADT") + + os.chdir(examples_path) + + def install_eclipse_version(self, param1, param2, eclipse_version, dateofrun): + + dogtail_scripts_path = subprocess.check_output("pwd", shell=True) + examples_path = dogtail_scripts_path.strip() + + run_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + download_path = run_path + '/download/' + + #install eclipse + version_poky = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 +"/|grep eclipse-poky-" + eclipse_version +"|sed 's/<[^>]*>//g'|awk -F\".tar.bz2\" \'{print $1}\'", shell=True) + + if not "rc" in param2: + version_poky_directory = version_poky.strip().split("\n" , 2)[1] + else: + version_poky_directory = version_poky.strip().split("\n" , 1)[0] + + eclipse_poky_path = run_path + '/' + eclipse_version + "/" + version_poky_directory +"/scripts" + launch_path = eclipse_poky_path + "/eclipse/eclipse" + + if os.path.exists(launch_path): + self.log.info("* Check : Found eclipse %s installed " %(eclipse_version)) + else: + os.chdir(eclipse_poky_path) + os.system("./setup.sh") + self.log.info("# Step : Install eclipse %s " %(eclipse_version)) + + + ##command_to_build_plugin = "ECLIPSE_HOME=" + eclipse_poky_path + "/eclipse ./build.sh " + eclipse_version + "-master " + "master " + eclipse_version + "-master" + ##os.system(command_to_build_plugin) + ###self.log.info("# Step : Build plugin") + + os.chdir(examples_path) + + + def start_eclipse(self, param1, param2, eclipse_version, dateofrun): + + + dogtail_scripts_path = subprocess.check_output("pwd", shell=True) + examples_path = dogtail_scripts_path.strip() + + + + version_poky = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 +"/|grep eclipse-poky-" + eclipse_version +"|sed 's/<[^>]*>//g'|awk -F\".tar.bz2\" \'{print $1}\'", shell=True) + version_poky_directory = version_poky.strip().split("\n" , 1)[0] + eclipse_poky_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + str(param1) + "-" + str(param2) + "-" + str(dateofrun) +"/" + str(eclipse_version) + "/" + version_poky_directory + + eclipse_path = eclipse_poky_path + "/scripts/eclipse/" + os.chdir(eclipse_path) + os.system('./eclipse &') + self.log.info("# Step : Starting eclipse from %s \n" %(eclipse_path)) + + time.sleep(10) + self.log.info("# Step : Waiting to start eclipse %s" %(eclipse_version)) + + #os.system("cd -") + + #dogtail_path = "/home/" + getpass.getuser() + "/yocto/dogtail-0.9.0/examples" + #os.chdir(dogtail_path) + os.chdir(examples_path) + + + def install_eclipse_plugin(self, param1, param2, eclipse_version, dateofrun): + + workspace_path = "/home/" + getpass.getuser() + '/eclipse-run/' + "run-" + str(param1) + "-" + str(param2) + "-"+ str(dateofrun) + "/" + str(eclipse_version)+"/workspace" + + app = tree.root.application('Eclipse') + + found = 1 + if os.path.exists(workspace_path): + pass + else: + try: + workspace = app.child(name = worspacelauncher_frame, roleName = frame_rolename) + self.log.info("* Check : Workspace Launcher is Open") + except: + found = 0 + self.log.info("can not find Workspace Launcher frame") + + if found == 1: + text = workspace.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.log.info("can not find text boxes") + + + text[0].click() + self.log.info("# Step : Click on box <<Workspace>>") + text[0].text = workspace_path + self.log.info("* Check : Insert Workspace Location") + + try: + checkBox = workspace.findChildren(predicate.GenericPredicate(roleName=checkbox_rolename)) + self.log.info("* Check : Found check box <<Use this as the default and do no ask again>>") + except: + self.fail("can not find check box <<Use this as the default and do no ask again>") + + + + checkBox[0].click() + self.log.info("# Step : Click on check box <<Use project specific settings>>") + + try: + ok = workspace.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("OK push button not sensitive") + + time.sleep(60) + print "sleep 60" + + eclipse = app.child(roleName=frame_rolename) + + try: + YPT = eclipse.child(name = yocto_project_tools_menu, roleName = menu_rolename) + self.log.info("* Check : Found YoctoProjectTools menu") + self.log.info("* Check : Plugin it's already installed") + except: + self.log.info("* Step : Install plugin .........") + try: + helpmenu = eclipse.child(name = help_menu, roleName = menu_rolename) + self.log.info("* Check : Found Help menu") + except: + self.fail("can not find Help menu") + + + helpmenu.click() + self.log.info("# Step : Click on menu <<Help>>") + + try: + install_new_software = helpmenu.child(name=installnewsoftware_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Install New Software...>> menu item") + except: + self.fail("can not find Install New Software... menu item") + + install_new_software.click() + self.log.info("# Step : Click on menu item <<Install New Software...>>") + + try: + install = app.child(name=install_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Install>> frame") + except: + self.fail("can not find Install frame") + + try: + addbutton = install.child(name = add_button, roleName = button_rolename) + self.log.info("* Check : Found Add... push button") + except: + self.fail("can not find Add... push button") + + + addbutton.click() + self.log.info("# Step : Click on box <<Add...>>") + + try: + addrepository = app.child(name=addrepository_frame , roleName=frame_rolename) + self.log.info("* Check : Found <<Add Repository>> frame") + except: + self.fail("can not find Add Repository frame") + + text = addrepository.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + archive = subprocess.check_output("curl -s http://autobuilder.yoctoproject.org/pub/" + param1 + "/"+ param2 + "/" + "eclipse-plugin/" + eclipse_version +"/|grep archive|sed \'s/<[^>]*>//g\'|awk -F\".zip\" \'{print $1}'", shell=True) + plugin = archive.strip().split("\n" , 1)[0] + ".zip" + plugin_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun +"/" + eclipse_version + + location = "jar:file:" + plugin_path + "/" + plugin + "!/" + + text[1].click() + self.log.info("# Step : Click on box <<Location>>") + text[1].text = location + self.log.info("* Check : Insert Location") + + try: + ok = addrepository.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + + if (ok.sensitive): + time.sleep(2) + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("OK push button not sensitive") + + try: + selectAll = install.child(name = selectall_button, roleName = button_rolename) + self.log.info("* Check : Found Select All push button") + except: + self.fail("can not find Select All push button") + + + selectAll.click() + self.log.info("# Step : Click on box <<Select All>>") + + try: + next = install.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.fail("can not find Next push button") + + + time.sleep(4) + + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + next.click() + self.log.info("# Step : Click <<Next>>") + else: + self.fail("Next push button not sensitive") + + + print "sleep 60" + time.sleep(60) + print "sleep 60" + time.sleep(60) + print "sleep 60" + time.sleep(60) + print "sleep 60" + time.sleep(60) + + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + next.click() + self.log.info("# Step : Click <<Next>>") + else: + self.fail("Next push button not sensitive") + + try: + acceptTerms = install.child(name= acceptterms_button, roleName = radiobutton_rolename) + self.log.info("* Check : Found I accept the terms of the license agreement radio button") + except: + self.fail("can not find I accept the terms of the license agreement radio button") + + + acceptTerms.click() + self.log.info("# Step : Click on radio button <<I accept the terms of the license agreement>>") + + try: + finish = install.child(name=finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + + + + if (finish.sensitive): + self.log.info("* Check : Found Finish push button sensitive") + finish.doubleClick() + time.sleep(2) + self.log.info("# Step : Click <<Finish>>") + else: + self.fail("Finish push button not sensitive") + + print "sleep 60" + time.sleep(60) + + print "sleep 40" + time.sleep(40) + print "sleep 40" + time.sleep(40) + + try: + securityWarning = app.child(name=securitywarning_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Security Warning>> frame") + except: + self.log.info("can not find Security Warning frame") + + try: + ok = securityWarning.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + + if (ok.sensitive): + time.sleep(2) + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("OK push button not sensitive") + + print "sleep 100" + time.sleep(100) + + try: + softwareUpdates= app.child(name=softwareupdates_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Software Updates>> frame") + except: + self.fail("can not find Software Updates frame") + + try: + yes = softwareUpdates.child(name=yes_button, roleName = button_rolename) + self.log.info("* Check : Found Yes push button") + except: + self.fail("can not find Yes push button") + + if (yes.sensitive): + self.log.info("* Check : Found Yes push button sensitive") + yes.click() + self.log.info("# Step : Click on button <<Yes>>") + else: + self.fail("Yes push button not sensitive") + + print "sleep 90" + time.sleep(90) + print "sleep 35" + time.sleep(35) + print "sleep 45" + time.sleep(45) + + + def restart_and_close_welcome(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + helpmenu = eclipse.child(name = help_menu, roleName = menu_rolename) + self.log.info("* Check : Found Help menu") + except: + self.fail("can not find Help menu") + + helpmenu.click() + self.log.info("# Step : Click on menu <<Help>>") + + try: + searchitem = helpmenu.child(name=search_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Search>> menu item") + except: + self.fail("can not find Search menu item") + + searchitem.click() + self.log.info("# Step : Click on menu item <<Search>>") + + time.sleep(3) + + try: + filemenu = eclipse.child(name = file_menu, roleName = menu_rolename) + self.log.info("* Check : Found File menu") + except: + self.fail("can not find File menu") + + filemenu.click() + self.log.info("# Step : Click on menu <<File>>") + + try: + restartitem = filemenu.child(name = restart_item, roleName = menuitem_rolename) + self.log.info("* Check : Found Restart menu") + except: + self.fail("can not find Restart menu") + + restartitem.click() + self.log.info("# Step : Click on menu item <<Search>>") + + self.log.info("# Step : Waiting to restart ......") + time.sleep(10) + + def close_eclipse(self): + + app = tree.root.application("Eclipse") + eclipse = app.child(roleName=frame_rolename) + + try: + filemenu = eclipse.child(name = file_menu, roleName = menu_rolename) + self.log.info("* Check : Found File menu") + except: + self.fail("can not find File menu") + + filemenu.click() + self.log.info("# Step : Click on menu <<File>>") + + try: + exititem = filemenu.child(name = exit_item, roleName = menuitem_rolename) + self.log.info("* Check : Found Exit menu item") + except: + self.fail("can not find Exit menu item") + + exititem.click() + self.log.info("# Step : Select <<Exit>> menu item") + + def verify_frame(self,name_of_frame): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + myFrame = app.child(name = name_of_frame, roleName='frame') + self.log.info("* Check : Window %s is Open " %name_of_frame) + except: + self.fail("FAIL: can not find %s frame " %name_of_frame) + sys.exit(1) + + def click_menu(self, name_of_menu, parent): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + menu = parent.child(name = name_of_menu, roleName = menu_rolename) + self.log.info("* Check : Found %s menu " %name_of_menu) + except: + self.fail("FAIL: can not find %s menu " %name_of_menu) + sys.exit(1) + + menu.click() + self.log.info("# Step : Click on menu <<%s>>" %name_of_menu) + + def click_button(self,name_of_button, name_of_frame): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + button = myFrame.child(name = name_of_button, roleName = 'push button') + self.log.info("* Check : Found %s push button " %name_of_button) + except: + self.fail("FAIL: can not find %s push button" %name_of_button) + sys.exit(1) + + + if (button.sensitive): + button.click() + self.log.info("# Step : Click on <<%s>>" %name_of_button) + else: + self.fail("FAIL: button %s is not clickable" %name_of_button) + sys.exit(1) + + + def doubleClick_button(self,name_of_button, name_of_frame): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + button = myFrame.child(name = name_of_button, roleName = 'push button') + self.log.info("* Check : Found %s push button " %name_of_button) + except: + self.fail("FAIL: can not find %s push button" %name_of_button) + + try: + button.doubleClick() + self.log.info("# Step : Click on <<%s>>" %name_of_button) + except: + self.fail("FAIL: could not double click %s button" %name_of_button) + sys.exit(1) + + def click_pageTab(self, name_of_pageTab, name_of_frame): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + pageTab = myFrame.child(name = name_of_pageTab, roleName = 'page tab') + self.log.info("* Check : Found %s page tab " %name_of_pageTab) + except: + self.fail("FAIL: can not find %s page tab" %name_of_pageTab) + sys.exit(1) + + try: + pageTab.click() + self.log.info("# Step : Click on <<%s>>" %name_of_pageTab) + except: + self.fail("FAIL: could not click %s page tab" %name_of_pageTab) + sys.exit(1) + + + + def click_tableCell(self, name_of_tableCell, name_of_frame): + + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + tableCell = myFrame.child(name = name_of_tableCell, roleName = 'table cell') + self.log.info("* Check : Found %s table cell " %name_of_tableCell) + except: + self.fail("FAIL: can not find %s table cell" %name_of_tableCell) + + try: + tableCell.click() + self.log.info("# Step : Click on <<%s>>" %name_of_tableCell) + except: + self.fail("FAIL: could not click %s table cell" %name_of_tableCell) + sys.exit(1) + + + + def doubleclick_tableCell(self,name_of_tableCell, name_of_frame): + + app = tree.root.application('Eclipse') + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + tableCell = myFrame.child(name = name_of_tableCell, roleName = 'table cell') + self.log.info("* Check : Found %s table cell " %name_of_tableCell) + except: + self.fail("FAIL: can not find %s table cell" %name_of_tableCell) + + try: + tableCell.doubleClick() + self.log.info("# Step : Double click on <<%s>>" %name_of_tableCell) + except: + self.fail("FAIL: could not double click on %s" %name_of_tableCell) + sys.exit(1) + + + + def insert_text(self, myText, fieldNumber, name_of_frame): + """ + :param myText: + :param fieldNumber: + :param name_of_frame: + :return: + """ + app = tree.root.application('Eclipse') + myFrame = app.child(name = name_of_frame, roleName='frame') + + text = myFrame.findChildren(predicate.GenericPredicate(roleName = 'text')) + if (len(text) < 1): + self.fail("FAIL: can not find any text boxes") + + try: + text[fieldNumber].click() + self.log.info("# Step : Click on box") + except: + self.fail("FAIL: can not find text boxe %s" %fieldNumber) + sys.exit(1) + + try: + text[fieldNumber].text = myText + self.log.info("# Step : Insert text on box: %s" %myText) + except: + self.fail("FAIL: could not insert %s in " %myText) + sys.exit(1) + + + def select_from_dropdown_list(self,myMenuItem, dropDownNumber, name_of_frame): + """ + :param myMenuItem: + :param dropDownNumber: + :param name_of_frame: + :return: + """ + app = tree.root.application('Eclipse') + myFrame = app.child(name = name_of_frame, roleName='frame') + comboBox = myFrame.findChildren(predicate.GenericPredicate(roleName='combo box')) + + if (len(comboBox) > 1): + self.log.info("* Check : Found drop-down lists") + else: + self.fail("FAIL: can not find combo boxes") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = myFrame.child(name='Cancel', roleName = 'push button') + if (cancel_close.sensitive): + cancel_close.click() + + comboBox[dropDownNumber].click() + self.log.info("# Step : Click on drop-down list = %s" %dropDownNumber) + + try: + dropDownItem = myFrame.child(name = myMenuItem, roleName='menu item') + self.log.info("* Check : Found %s menu item" %myMenuItem) + except: + self.fail("FAIL: can not find %s menu item" %myMenuItem) + + dropDownItem.click() + self.log.info("# Step : Select <<%s>>" %myMenuItem) + + def select_radioButton(self, MyRadioButton, name_of_frame): + + app = tree.root.application('Eclipse') + + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + radioButton = myFrame.child(name = MyRadioButton, roleName = 'radio button') + self.log.info("* Check : Found %s radio button" %MyRadioButton) + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = myFrame.child(name='Cancel', roleName = 'push button') + if (cancel_close.sensitive): + cancel_close.click() + self.fail("FAIL: can not find %s radio button" %MyRadioButton) + + radioButton.click() + self.log.info("# Step : Click on %s radio button" %MyRadioButton) + + + def select_checkBox(self,myCheckBox, name_of_frame): + + app = tree.root.application('Eclipse') + + myFrame = app.child(name = name_of_frame, roleName='frame') + + try: + checkBox = myFrame.child(name = myCheckBox, roleName = 'check box') + self.log.info("* Check : Found %s check box" %myCheckBox) + except: + self.fail("FAIL: can not find %s check box" %myCheckBox) + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = myFrame.child(name='Cancel', roleName = 'push button') + if (cancel_close.sensitive): + cancel_close.click() + + checkBox.click() + self.log.info("# Step : Click on %s check box" %myCheckBox) + + + def verifyMessage(self,myMessage): + + app = tree.root.application('Eclipse') + + myFrame = app.child(name = 'Android Driver Development Kit', roleName='frame') + text = myFrame.findChildren(predicate.GenericPredicate(roleName = 'text')) + nrText = len(text) + + if (nrText < 1): + self.fail("FAIL: can not find text boxes") + + text[nrText-1].click() + self.log.info("# Step : Click on text") + last_lines = text[nrText-1].text.strip().split("\n")[-3:] + + self.log.info("* Check : Text on box: %s" %last_lines) + + if any(myMessage in line for line in last_lines): + self.log.info("* Check : Found message: %s" %myMessage) + else: + self.fail("FAIL: can not find message: %s" %myMessage) + + + + def configure_standard_profile(self, toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + # try to found window menu + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name=preferences_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Preferences>> menu item") + except: + self.fail("can not find Preferences menu item") + + + windowitem.click() + self.log.info("# Step : Click on menu item <<Preferences>>") + + try: + preferences = app.child(name = preferences_frame, roleName = frame_rolename) + self.log.info("* Check : Window Preferences is Open") + except: + self.fail("can not find Preferences frame") + + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + try: + yoctoProjectADT = app.child(name = YP_ADT_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Yocto Project ADT button") + except: + self.fail("can not find Yocto Project ADT table cell") + + yoctoProjectADT.click() + self.log.info("# Step : Click on <<Yocto Project ADT>>") + + comboBox = preferences.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + + try: + crossCompiler = preferences.child(name = toolchainType, roleName = radiobutton_rolename) + self.log.info("* Check : Found toolchain type radio button") + except: + self.fail("can not find toolchain type radio button") + + crossCompiler.click() + self.log.info("# Step : Click on radio button <<" + str(toolchainType)+">>") + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + text[3].click() + self.log.info("# Step : Click on box <<Toolchain Root Location>>") + text[3].text = toolchainAdr + self.log.info("* Check : Insert Toolchain Root Location") + + text[4].click() + self.log.info("# Step : Click on box <<Sysroot Location>>") + text[4].text = sysrootAdr + self.log.info("* Check : Insert Sysroot Location") + + if (len(comboBox) > 1): + self.log.info("* Check : Found menu drop-down list Target Arhitecture") + comboBox[1].click() + self.log.info("# Step : Click on menu drop-down list <<Target Arhitecture>>") + else: + self.fail("can not find combo boxes") + + try: + targetArchitecture = preferences.child(name = targetArch, roleName=menuitem_rolename) + self.log.info("* Check : Found " + str(targetArch) + " menu item") + except: + self.fail("can not find " + str(targetArch) + " menu item") + + + targetArchitecture.click() + self.log.info("# Step : Select <<" + str(targetArch) + ">>") + + try: + targetOptions = preferences.child(name = targetType , roleName = radiobutton_rolename) + self.log.info("* Check : Found target type radio button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find target type radio button") + + + + targetOptions.click() + self.log.info("# Step : Click on radio button <<QEMU>>") + + if (targetType == "QEMU"): + text[5].click() + self.log.info("# Step : Click on box <<Kernel>>") + text[5].text = kernelAdr + self.log.info("* Check : Insert location for bzImage") + + try: + applyPref = preferences.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + self.fail("can not find Apply push button") + + + try: + general = app.child(name = general_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found General button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find General table cell") + + + + general.click() + self.log.info("# Step : Click on <<General>>") + + if (applyPref.sensitive): + applyPref.click() + #applyPref.doubleClick() + self.log.info("# Step : Click <<Apply>> to save Standard Profile") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + try: + ok = preferences.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("OK push button not sensitive") + + + + + def work_around_preferences_frame(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + self.click_menu(window_menu,eclipse) + + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + + #window.click() + #self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name = preferences_item, roleName = menuitem_rolename) + self.log.info("* Check : Found <<Preferences>> menu item") + except: + self.fail("can not find Preferences menu item") + + windowitem.click() + self.log.info("# Step : Click on menu item <<Preferences>>") + + try: + preferences = app.child(name = preferences_frame, roleName = frame_rolename) + self.log.info("* Check : Window Preferences is Open") + except: + self.fail("can not find Preferences frame") + + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + try: + yoctoProjectADT = app.child(name = YP_ADT_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Yocto Project ADT button") + except: + self.fail("can not find Yocto Project ADT table cell") + + yoctoProjectADT.click() + self.log.info("# Step : Click on <<Yocto Project ADT>>") + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + text[3].click() + self.log.info("# Step : Click on box <<Toolchain Root Location>>") + text[3].text = "Input a long text to modify size of this frame---> workaround" + self.log.info("* Check : Insert text for work around") + + try: + general = app.child(name = general_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found General button") + except: + self.fail("can not find General table cell") + + + + general.click() + self.log.info("# Step : Click on <<General>>") + + try: + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + self.log.info("* Check : Found Cancel push button") + except: + self.fail("can not find Cancel push button") + + cancel_close.click() + self.log.info("# Step : Click on <<Cancel>>") + + + def createProject(self, projectname, typeproject, searchtype, author, copyrightproject): + + app = tree.root.application("Eclipse") + eclipse = app.child(roleName=frame_rolename) + + try: + project = eclipse.child(name = file_menu, roleName = menu_rolename) + self.log.info("* Check : Found File menu") + except: + self.fail("can not find File menu") + + + project.select() + self.log.info("# Step : Click on menu <<File>>") + + try: + newmenu = project.child(name = new_menu, roleName = menu_rolename) + self.log.info("* Check : Found New menu") + except: + self.fail("can not find New menu") + + + newmenu.select() + self.log.info("# Step : Select <<New>> menu") + + try: + projectitem = newmenu.child(name = project_item , roleName = menuitem_rolename) + self.log.info("* Check : Found <<Project...>> menu item") + except: + self.fail("can not find Project... menu item") + + + projectitem.click() + self.log.info("# Step : Click on menu item <<Project...>>") + + try: + new_proj = app.child(name = new_project_frame, roleName = frame_rolename) + self.log.info("* Check : New Project frame") + except: + self.fail("can not find New Project frame") + + + text = new_proj.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + text[0].click() + self.log.info("# Step : Click on box <<Wizards>>") + text[0].text = typeproject + self.log.info("* Check : Insert type of project") + + try: + next = new_proj.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = new_proj.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Next push button") + + time.sleep(4) + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + #next.doubleClick() + next.click() + self.log.info("# Step : Click <<Next>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = new_proj.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Next push button not sensitive") + + + try: + cProject = app.child(name = str(typeproject) + ' ', roleName = frame_rolename) + self.log.info("* Check : Found " + str(typeproject) + " frame") + except: + self.fail("can not find" + str(typeproject) + " frame") + + + text = cProject.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + time.sleep(5) + #text[0].click() + #self.log.info("# Step : Click on box <<Project Name >>") + typeText(projectname) + #text[0].text = projectname + self.log.info("* Check : Insert name of project") + + if eclipse_version == 'mars': + try: + executable = cProject.child(name = executable_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found " + str(typeproject) + " frame Executable table cell") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = cProject.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Executable table cell") + + executable.actions['expand or contract'].do() + self.log.info("# Step : Expand or contract") + time.sleep(3) + + try: + yocto = cProject.child(name = YPADT_AutotoolsP_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found %s table cell" %(YPADT_AutotoolsP_tablecell)) + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step" %(YPADT_AutotoolsP_tablecell)) + cancel_close = cProject.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + self.fail("can not find %s table cell"%(YPADT_AutotoolsP_tablecell)) + + + yocto.actions['expand or contract'].do() + self.log.info("# Step : Expand Yocto Project ADT Autotools Project table cell") + + yocto.click() + keyCombo("<<Page_Down>") + time.sleep(2) + + tablecell = cProject.findChildren(predicate.GenericPredicate(name = searchtype, roleName = tablecell_rolename)) + nrTablecell = len(tablecell) + keyCombo("<<Page_Down>") + tablecell[nrTablecell-1].click() + + else: + try: + tree_table = cProject.child(name = projecttype_treetable, roleName = treetable_rolename) + self.log.info("* Check : Found Project type tree table") + except: + self.fail("can not find Project type tree table") + + try: + executable = tree_table.child(name = executable_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found " + str(typeproject) + " frame Executable table cell") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = cProject.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Executable table cell") + + + executable.actions['expand or contract'].do() + self.log.info("# Step : Expand or contract") + + try: + yocto = tree_table.child(name = YPADT_AutotoolsP_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Yocto Project ADT Autotools Project table cell") + except: + self.fail("can not find Yocto Project ADT Autotools Project table cell") + + + yocto.actions['expand or contract'].do() + self.log.info("# Step : Expand Yocto Project ADT Autotools Project table cell") + + yocto.click() + + keyCombo("<<Page_Down>") + time.sleep(2) + + tablecell = tree_table.findChildren(predicate.GenericPredicate(name = searchtype, roleName = tablecell_rolename)) + nrTablecell = len(tablecell) + + keyCombo("<<Page_Down>") + + tablecell[nrTablecell-1].click() + + try: + next = cProject.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = cProject.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Next push button") + + + + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + #next.doubleClick() + next.click() + self.log.info("# Step : Click <<Next>>") + else: + self.fail("Next push button not sensitive") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = cProject.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + text = cProject.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + if (len(text) < 1): + self.fail("can not find text boxes") + + # am schimbat 3 cu 2 si 4 cu 3 + text[3].click() + self.log.info("# Step : Click on box <<Author>>") + text[3].text = author + self.log.info("* Check : Insert Author") + + text[4].click() + self.log.info("# Step : Click on box <<Copyright notice>>") + text[4].text = copyrightproject + self.log.info("* Check : Insert Copyrght notice") + + try: + finish = cProject.child(name=finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = cProject.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + if (finish.sensitive): + self.log.info("* Check : Found Finish push button sensitive") + finish.doubleClick() + time.sleep(2) + self.log.info("# Step : Click <<Finish>>") + else: + self.fail("Finish push button not sensitive") + + + + def add_new_profile(self, newprofileName): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name=preferences_item, roleName = menuitem_rolename) + self.log.info("* Check : Found <<Preferences>> menu item") + except: + self.fail("can not find Preferences menu item") + + + windowitem.click() + self.log.info("# Step : Click on menu item <<Preferences>>") + + try: + preferences = app.child(name = preferences_frame, roleName = frame_rolename) + self.log.info("* Check : Window Preferences is Open") + except: + self.fail("can not find Preferences frame") + + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + try: + yoctoProjectADT = app.child(name = YP_ADT_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Yocto Project ADT button") + + except: + self.fail("can not find Yocto Project ADT table cell") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + yoctoProjectADT.click() + self.log.info("# Step : Click on <<Yocto Project ADT>>") + + try: + saveAs = preferences.child(name = saveAs_button, roleName = button_rolename) + self.log.info("* Check : Found Save as push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Save as push button") + + + + saveAs.click() + self.log.info("# Step : Click <<Save as ...>>") + + try: + saveAsProfile = app.child(name = saveAs_frame, roleName = frame_rolename) + self.log.info("* Check : Found Save as new cross development profile frame") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Save as new cross development profile frame") + + + try: + inputProfileName = saveAsProfile.child(roleName = text_rolename) + self.log.info("* Check : Found box to input Profile Name") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find text") + + + inputProfileName.click() + self.log.info("# Step : Click on box <<Profile Name>>") + + inputProfileName.text = newprofileName + + self.log.info("* Check : Insert Profile Name") + + found = 1 + try: + ok = saveAsProfile.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("can not find OK push button sensitive") + + + + comboBox = preferences.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + + if (len(comboBox) > 0): + comboBox[0].click() + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + + try: + preferences.child(name=newprofileName, roleName=menuitem_rolename).click() + self.log.info("* Check : Found profile name menu item") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find profile name menu item") + + + + try: + general = app.child(name = general_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found General button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find General table cell") + + general.click() + self.log.info("# Step : Click on <<General>>") + + try: + applyPref = preferences.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Apply push button") + + + if (applyPref.sensitive): + applyPref.click() + self.log.info("# Step : Click <<Apply>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + try: + ok = preferences.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("OK push button not sensitive") + + + + def open_perspective(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + found = 1 + try: + openPersp = app.child(name = open_perspective_frame, roleName = frame_rolename) + self.log.info("* Check : Found Open Associated Perspective") + except: + found = 0 + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + + if found == 1: + try: + yes = openPersp.child(name=yes_button, roleName = button_rolename) + self.log.info("* Check : Found Yes push button") + except: + self.fail("can not find Yes push button") + + + if (yes.sensitive): + self.log.info("* Check : Found Yes push button sensitive") + yes.click() + #yes.doubleClick() + self.log.info("# Step : Click on button <<Yes>>") + else: + self.fail("Yes push button not sensitive") + + + + def reconfigure_project(self,projectname): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + text[nrText-1].click() + self.log.info("# Step : Click on box <<Quick Access>>") + text[nrText-1].text='Reconfigure Project' + self.log.info("# Step : Insert <<Reconfigure Project>> on box <<Quick Access>>") + + try: + reconfig = app.child(name = reconfigureproject_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found C Reconfigure Project table cell") + reconfig.click() + self.log.info("# Step : Click on box <<Reconfigure Project >>") + except: + keyCombo("<<Esc>") + self.log.warning("can not find Reconfigure Project table cell on Quick Access") + try: + project = eclipse.child(name = projectname, roleName=tablecell_rolename) + self.log.info("* Check : Found <<" +str(projectname) + ">> table cell") + except: + self.fail("can not find " +str(projectname) + " table cell") + + + project.click() + self.log.info("* Step : Click on project <<" +str(projectname) + ">>") + + keyCombo("<<Shift><F10>") + time.sleep(2) + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + pressKey("Enter") # Reconfigure project + + time.sleep(10) + + + + def verify_console(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + text[nrText-1].click() + self.log.info("# Step : Click on box <<Quick Access>>") + text[nrText-1].text='Console' + self.log.info("# Step : Insert <<Console>> on box <<Quick Access>>") + + try: + console = app.child(name = console_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Console") + except: + self.fail("can not find Problems table cell") + + console.click() + self.log.info("# Step : Click on box <<Close Project>>") + + text[nrText-2].click() + #self.log.info("# Step : Click on" + str(projectname) + " Console") + time.sleep(3) + if "error" in text[nrText-2].text: + self.log.info("# Step : Output from Console:") + self.log.info(str(text[nrText-2].text)) + else: + self.fail("Error found in Console") + + try: + clearconsole = eclipse.child(description=clear_console_description, roleName = button_rolename) + self.log.info("* Check : Found Clear Console push button") + except: + self.fail("can not find Clear Console push button") + + + clearconsole.click() + self.log.info("# Step : Click on button <<Clear Console>>") + + def verify_profile(self, projectname, toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr, newprofileName): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + try: + project = eclipse.child(name = project_menu, roleName = menu_rolename) + self.log.info("* Check : Found Project menu") + except: + self.fail("can not find Project menu") + + project.click() + self.log.info("# Step : Click on menu <<Project>>") + + try: + targetProfiles = project.child(name = targetprofiles_menu, roleName = menu_rolename) + self.log.info("* Check : Found Project Target Profiles menu") + except: + self.fail("can not find Target Profiles menu") + + + targetProfiles.select() + self.log.info("# Step : Select <<Target Profiles>> menu") + + # try to avoid a display bug. Need to select Target Profiles twice to see profileitem with name = newprofileName + + targetProfiles.deselect() + self.log.info("# Step : Exit <<Target Profiles>> menu") + + project.deselect() + self.log.info("# Step : Exit <<Project>> menu") + + project.click() + self.log.info("# Step : Click on menu <<Project>>") + + targetProfiles.select() + self.log.info("# Step : Select <<Target Profiles>> menu") + + try: + profileitem = targetProfiles.child(name = newprofileName , roleName = radio_menu_item_rolename) + self.log.info("* Check : Found <<"+ str(newprofileName) + ">> menu item") + except: + self.fail("can not find" +str(newprofileName) + ">> menu item") + + + targetProfiles.deselect() + self.log.info("# Step : Exit <<Target Profiles>> menu") + + project.deselect() + self.log.info("# Step : Exit <<Project>> menu") + + try: + project = eclipse.child(name = project_menu, roleName = menu_rolename) + self.log.info("* Check : Found Project menu") + except: + self.fail("can not find Project menu") + + + project.select() + self.log.info("# Step : Click on menu <<Project>>") + + try: + changeYPSettings = project.child(name = changeYPsettings_item, roleName = menuitem_rolename) + self.log.info("* Check : Found Change Yocto Project Settings menu item") + except: + self.fail("can not find Change Yocto Project Settings menu item") + + + changeYPSettings.click() + self.log.info("# Step : Select <<Change Yocto Project Settings menu >> menu item") + + try: + projectProperties = app.child(name = 'Properties for ' + str(projectname) + " ", roleName = frame_rolename) + self.log.info("* Check : Window Properties for " + str(projectname) + " is Open") + except: + self.fail("can not find Properties for " + str(projectname) + " frame") + + + comboBox = projectProperties.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + if (len(comboBox) > 1): + self.log.info("* Check : Found menu drop-down list Target Arhitecture") + if str(newprofileName) in str(comboBox[0]): + self.log.info("* Check : Profile is saved correctly") + else: + self.log.warning("# Warning : Profile is not saved correctly saved") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + + try: + checkBox = projectProperties.findChildren(predicate.GenericPredicate(roleName=checkbox_rolename)) + self.log.info("* Check : Found check box <<Use project specific settings>>") + except: + self.fail("can not find check box <<Use project specific settings>") + + checkBox[0].click() + self.log.info("# Step : Click on check box <<Use project specific settings>>") + + try: + crosscompiler = projectProperties.child(name = toolchainType, roleName = radiobutton_rolename) + self.log.info("* Check : Found toolchain type radio button") + except: + self.fail("can not find toolchain type radio button") + + crosscompiler.click() + self.log.info("# Step : Click on radio button <<" + str(toolchainType) + ">>") + + text = projectProperties.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + text[2].click() + self.log.info("# Step : Click on box <<Toolchain Root Location>>") + if text[2].text == toolchainAdr: + self.log.info("* Check : Toolchain Root Location is saved correctly") + else: + self.log.warning("# Warning : Toolchain Root Location is not saved correctly saved") + + + text[3].click() + self.log.info("# Step : Click on box <<Sysroot Location>>") + if text[3].text == sysrootAdr: + self.log.info("* Check : Sysroot Location is saved correctly") + else: + self.log.warning("# Warning : Sysroot Location is not saved correctly saved") + + if (len(comboBox) > 1): + self.log.info("* Check : Found menu drop-down list Target Arhitecture") + if str(targetArch) in str(comboBox[1]): + self.log.info("* Check : Target Arhitecture is saved correctly") + else: + self.log.warning("# Warning : Target Arhitecture is not saved correctly saved") + + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + try: + targetT = projectProperties.child(name = targetType , roleName = radiobutton_rolename) + self.log.info("* Check : Found target type radio button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find target type radio button") + + + targetT.click() + self.log.info("# Step : Click on radio button <<QEMU>>") + + if (targetType == "QEMU"): + text[4].click() + self.log.info("# Step : Click on box <<Kernel>>") + if text[4].text == kernelAdr: + self.log.info("* Check : Kernel Location is saved correctly") + else: + self.log.warning("# Warning : Kernel Locationis not saved correctly saved") + + try: + applyPref = projectProperties.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Apply push button") + + + if (applyPref.sensitive): + applyPref.doubleClick() + self.log.info("# Step : Click <<Apply>> to save Standard Profile") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + + try: + ok = projectProperties.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = projectProperties.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("OK push button not sensitive") + + + + def rename_profile(self, newprofileName, renameprofile): + + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name=preferences_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Preferences>> menu item") + except: + self.fail("can not find Preferences menu item") + + + windowitem.click() + self.log.info("# Step : Click on menu item <<Preferences>>") + + try: + preferences = app.child(name = preferences_frame, roleName = frame_rolename) + self.log.info("* Check : Window Preferences is Open") + except: + self.fail("can not find Preferences frame") + + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + try: + yoctoProjectADT = app.child(name = YP_ADT_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Yocto Project ADT button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Yocto Project ADT table cell") + + + + yoctoProjectADT.click() + self.log.info("# Step : Click on <<Yocto Project ADT>>") + + comboBox = preferences.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + + if (len(comboBox) > 1): + self.log.info("* Check : Found menu drop-down list Target Arhitecture") + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Target Arhitecture>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + try: + preferences.child(name=newprofileName, roleName=menuitem_rolename).click() + self.log.info("* Check : Found profile name menu item") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find profile name menu item") + + + try: + Rename = preferences.child(name = rename_button, roleName = button_rolename) + self.log.info("* Check : Found Rename push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Rename push button") + + + Rename.click() + self.log.info("# Step : Click <<Rename>>") + + try: + renameProfile = app.child(name = rename_frame, roleName = frame_rolename) + self.log.info("* Check : Found Rename cross development profile frame") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Rename cross development profile frame") + + + try: + inputrenameProfileName = renameProfile.child(roleName = text_rolename) + self.log.info("* Check : Found box to Rename Profile") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find text") + + + inputrenameProfileName.click() + self.log.info("# Step : Click on box <<Profile Name>>") + + inputrenameProfileName.text = renameprofile #RenameProfile" + + self.log.info("* Check : Insert Profile Name") + + found = 1 + try: + ok = renameProfile.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + try: + cancel = renameProfile.child(name=cancel_button, roleName = button_rolename) + self.log.info("* Check : Found Cancel push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel.sensitive): + cancel.click() + self.fail("can not find Cancel push button") + + + if (len(comboBox) > 0): + comboBox[0].click() + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + + try: + preferences.child(name=renameprofile, roleName=menuitem_rolename).click() + self.log.info("* Check : Found Rename profile menu item") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find profile name menu item") + + try: + general = app.child(name = general_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found General button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find General table cell") + + + general.click() + self.log.info("# Step : Click on <<General>>") + + try: + applyPref = preferences.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Apply push button") + + + if (applyPref.sensitive): + applyPref.click() + self.log.info("# Step : Click <<Apply>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + try: + ok = preferences.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("OK push button not sensitive") + + try: + updateProfile = app.child(name = update_frame, roleName = frame_rolename) + self.log.info("* Check : Found Update cross development profile frame") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Update cross development profile frame") + + + try: + ok = updateProfile.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + cancel_close = updateProfile.child(name=cancel_button, roleName = button_rolename) + self.log.info("* Check : Found Cancel push button") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button sensitive") + + + def remove_yocto_profile(self, renameprofile): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name=preferences_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Preferences>> menu item") + except: + self.fail("can not find Preferences menu item") + + + windowitem.click() + self.log.info("# Step : Click on menu item <<Preferences>>") + + try: + preferences = app.child(name = preferences_frame, roleName = frame_rolename) + self.log.info("* Check : Window Preferences is Open") + except: + self.fail("can not find Preferences frame") + + + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + cancel_close = preferences.child(name=cancel_button, roleName = button_rolename) + + try: + yoctoProjectADT = app.child(name = YP_ADT_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found Yocto Project ADT button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Yocto Project ADT table cell") + + + yoctoProjectADT.click() + self.log.info("# Step : Click on <<Yocto Project ADT>>") + + comboBox = preferences.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + if (len(comboBox) > 1): + self.log.info("* Check : Found menu drop-down list Target Arhitecture") + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Target Arhitecture>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + try: + preferences.child(name=renameprofile, roleName=menuitem_rolename).click() + self.log.info("* Check : Found profile name menu item") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find profile name menu item") + + + try: + Remove = preferences.child(name = remove_button, roleName = button_rolename) + self.log.info("* Check : Found Remove push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + + Remove.click() + self.log.info("# Step : Click <<Remove>>") + + try: + removeProfile = app.child(name = remove_frame, roleName = frame_rolename) + self.log.info("* Check : Found Remove cross development profile frame") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Remove cross development profile frame") + + + try: + ok = removeProfile.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + ok.click() + self.log.info("# Step : Click <<OK>>") + + try: + general = app.child(name = general_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found General button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find General table cell") + + + general.click() + self.log.info("# Step : Click on <<General>>") + + try: + applyPref = preferences.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Apply push button") + + + if (applyPref.sensitive): + applyPref.click() + self.log.info("# Step : Click <<Apply>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + + try: + ok = preferences.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("OK push button not sensitive") + + + + try: + updateProfile = app.child(name = update_frame, roleName = frame_rolename) + self.log.info("* Check : Found Update cross development profile frame") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Update cross development profile frame") + + + try: + ok = updateProfile.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + cancel = updateProfile.child(name=cancel_button, roleName = button_rolename) + self.log.info("* Check : Found Cancel push button") + if (cancel.sensitive): + cancel.click() + self.fail("can not find OK push button sensitive") + + + def close_project(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + + #text[nrText-1].click() + #self.log.info("# Step : Click on box <<Quick Access>>") + #text[nrText-1].text='Close Project' + #self.log.info("# Step : Insert <<Close Project>> on box <<Quick Access>>") + + try: + keyCombo("<<Shift><F10>") # Right Click + pressKey("s") # Shortcut for close Project + #reconfig = app.child(name = 'Close Project - Close the selected project', roleName = tablecell_rolename) + self.log.info("* Check : Found Close Project") + except: + self.fail("can not find Close Project table cell") + + + #reconfig.click() + #self.log.info("# Step : Click on box <<Close Project>>") + + def delete_project(self, projectname, typeproject): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + keyCombo("<<Esc>") + keyCombo("<<Esc>") + try: + project = eclipse.child(name = projectname, roleName=tablecell_rolename) + self.log.info("* Check : Found <<" +str(projectname) + ">> table cell") + except: + self.fail("can not find " +str(projectname) + " table cell") + + + project.click() + self.log.info("* Step : Click on project <<" +str(projectname) + ">>") + + keyCombo("<<Esc>") + keyCombo("<<Esc>") + keyCombo("<<Shift><F10>") + time.sleep(2) + keyCombo("Down") + keyCombo("Down") + pressKey("d") + time.sleep(2) + pressKey("Enter") # Delete project + + try: + deleteresources = app.child(name=delete_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Delete Resources>> frame") + except: + self.fail("can not find Delete Resources frame") + + + time.sleep(3) + + if "New Yocto Project" in typeproject: + pass + else: + deletecombobox = deleteresources.findChildren(predicate.GenericPredicate(roleName=checkbox_rolename)) + deletecombobox[0].click() + self.log.info("# Step : Click on check box <<Delete project contents on disk>>") + + try: + ok = deleteresources.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = deleteresources.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + ok.click() + self.log.info("# Step : Click on button <<OK>>") + + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + if (len(frames) == 0): + self.fail("can not find frames") + + + found = 1 + try: + deleteresources = frames[2] #app.child(name=delete_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Delete Resources>> frame") + except: + found = 0 + + if found == 1: + try: + continuebutton = deleteresources.child(name=continue_button, roleName = button_rolename) + self.log.info("* Check : Found Continue push button") + except: + self.log.info("can not find Continue push button") + + + if (continuebutton.sensitive): + self.log.info("* Check : Found Continue push button sensitive") + time.sleep(2) + continuebutton.click() + self.log.info("# Step : Click on button <<Continue>>") + else: + self.fail("Continue push button not sensitive") + + + def close_perspective(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + time.sleep(2) + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + if eclipse_version == "mars": + + try: + perspective = window.child(name = perspective_menu, roleName = menu_rolename) + self.log.info("* Check : Found Perspective menu") + except: + self.fail("can not find Window menu") + + + perspective.select() + self.log.info("# Step : Click on menu <<Perspective>>") + + try: + perspectiveitem = perspective.child(name=closeperspective_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Close Perspective>> menu item") + + except: + self.fail("can not find Close Perspective menu item") + + time.sleep(3) + perspectiveitem.click() + self.log.info("# Step : Click on menu item <<Close Perspective>>") + + else: + try: + windowitem = window.child(name=closeperspective_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Close Perspective>> menu item") + except: + self.fail("can not find Close Perspective menu item") + + + windowitem.click() + self.log.info("# Step : Click on menu item <<Close Perspective>>") + + + def set_network_preferences_to_direct(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name=preferences_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Preferences>> menu item") + + except: + self.fail("can not find Preferences menu item") + + + windowitem.click() + self.log.info("# Step : Click on menu item <<Preferences>>") + + try: + preferences = app.child(name = preferences_frame, roleName = frame_rolename) + self.log.info("* Check : Window Preferences is Open") + except: + self.fail("can not find Preferences frame") + + cancel_close = preferences.child(name = cancel_button, roleName = button_rolename) + + text = preferences.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + time.sleep(3) + typeText("Network Connections") + time.sleep(3) + keyCombo("Down") + keyCombo("Down") + self.log.info("# Step : Select <<Network Connections>>") + + comboBox = preferences.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + if (len(comboBox) < 1): + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + else: + self.log.info("* Check : Found drop-down list ") + + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Active Provider>>") + + try: + directitem = preferences.child(name=direct_item, roleName=menuitem_rolename) + self.log.info("* Check : Found Direct menu item") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + #cancel_close.click() + cancel_close.doubleClick() + self.fail("can not find Direct menu item") + + + directitem.click() + self.log.info("# Step : Click on <<Direct>> menu item") + + try: + applyPref = preferences.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Apply push button") + + + try: + general = app.child(name = general_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found General button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + self.fail("can not find General table cell") + + + general.click() + self.log.info("# Step : Click on <<General>>") + + if (applyPref.sensitive): + self.log.info("* Check : Found Apply push button sensitive") + + applyPref.click() + self.log.info("# Step : Click <<Apply>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + + try: + ok = preferences.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("OK push button not sensitive") + + + + def build_project(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + project = eclipse.child(name = project_menu, roleName = menu_rolename) + self.log.info("* Check : Found Project menu") + except: + self.fail("can not find Project menu") + + + project.click() + self.log.info("# Step : Click on menu <<Project>>") + + try: + build = project.child(name=buildproject_item, roleName=menuitem_rolename) + self.log.info("* Check : Found Build Project menu item") + except: + self.fail("can not find Build Project menu item") + + + if (build.sensitive): + build.click() + self.log.info("# Step : Click on menu item <<Build Project>>") + else: + self.fail("Build Project menu item not sensitive") + + + + def launch_qemu_from_eclipse(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + run = eclipse.child(name = run_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run menu") + except: + self.fail("can not find Run menu") + + + run.select() + self.log.info("# Step : Select <<Run>> menu") + + try: + externalTools = run.child(name = externaltools_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run External Tools menu") + except: + self.fail("can not find External Tools menu") + + + externalTools.select() + self.log.info("# Step : Select <<External Tools>> menu") + + externalTools.deselect() + self.log.info("# Step : Exit <<External Tools>> menu") + + run.deselect() + self.log.info("# Step : Exit <<Run>> menu") + + try: + run = eclipse.child(name = run_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run menu") + except: + self.fail("can not find Run menu") + + + run.select() + self.log.info("# Step : Select <<Run>> menu") + + try: + externalTools = run.child(name = externaltools_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run External Tools menu") + except: + self.fail("can not find External Tools menu") + + + externalTools.select() + self.log.info("# Step : Select <<External Tools>> menu") + + try: + qemu = externalTools.child(name = qemu_item , roleName = menuitem_rolename) + + self.log.info("* Check : Found <<1 qemu_i586-poky-linux>> menu item") + except: + try: + qemu = externalTools.child(name = qemu2_item , roleName = menuitem_rolename) + self.log.info("* Check : Found <<1 qemu_i586-poky-linux>> menu item") + except: + if eclipse_version == 'mars': + pass + else: + self.fail("can not find qemu menu item") ### + + + #qemu.click() + #time.sleep(3) + + + #self.log.info("# Step : Click on menu item <<1 qemu_i586-poky-linux>>") + #time.sleep(2) + + externalTools.deselect() + self.log.info("# Step : Exit <<External Tools>> menu") + time.sleep(3) + + run.deselect() + self.log.info("# Step : Exit <<Run>> menu") + + + def new_connection_for_run(self,eclipse_version): + + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + runConfig = app.child(name=runconfiguration_frame, roleName=frame_rolename) + + inifile = IniParser() + ip = inifile.getValue("settings-eclipse.ini", "SSH", "ip") + conncectionId = datetime.now().strftime("-%d-%m-%Y %H:%M:%S") + connection = ip +' SSH ' + conncectionId + + try: + new = runConfig.child(name = new_button, roleName = button_rolename) + self.log.info("* Check : Found New push button") + except: + self.fail("can not find New push button") + + + new.click() + self.log.info("# Step : Click on <<New...>push button") + + newConnection = app.child(name=newconnection_frame, roleName = frame_rolename) + text = newConnection.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + text[0].click() + self.log.info("# Step : Click on box <<System type>>") + text[0].text = 'SSH Only' + self.log.info("* Check : Insert <<SSH Only>> as System type") + + + try: + sshOnly = newConnection.child(name = ssh_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found SSH Only table cell") + except: + self.fail("can not find SSH Only table cell") + + + sshOnly.click() + self.log.info("# Step : Click on box <<System type>>") + + try: + next = newConnection.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.fail("can not find Next push button") + + + next.click() + self.log.info("# Step : Click <<Next>>") + + text = newConnection.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + if eclipse_version == 'kepler' or eclipse_version == 'luna': + text[0].click() + else: + pass + + keyCombo("<<Ctrl><a>") + + + self.log.info("# Step : Click on box <<Host name>>") + #text[0].text = ip + typeText(ip) + #text[0].text = ip + self.log.info("* Check : Insert ip of QEMU as hostname") + + + if eclipse_version == 'kepler' or eclipse_version == 'luna': + text[1].click() + self.log.info("# Step : Click on box <<Connection name>>") + text[1].text = connection + self.log.info("* Check : Insert Connection name") + + else: + text[2].click() + self.log.info("# Step : Click on box <<Connection name>>") + text[2].text = connection + self.log.info("* Check : Insert Connection name") + + + #text[0].click() + #text[0].text = ip + + try: + finish = newConnection.child(name = finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + + + finish.click() + self.log.info("# Step : Click on box <<Finish>>") + + + def run_project(self , projectname, searchtype, eclipse_version): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + try: + run = eclipse.child(name = run_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run menu") + except: + self.fail("can not find Run menu") + + + run.select() + self.log.info("# Step : Click on menu <<Run>>") + + try: + runitem = run.child(name=runconfiguration_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Run Configurations...>> menu item") + except: + self.fail("can not find Run Configurations menu item") + + + time.sleep(3) + runitem.click() + self.log.info("# Step : Click on menu item <<Run Configurations...>>") + + try: + runConfig = app.child(name=runconfiguration_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Run Configurations>> frame") + except: + self.fail("can not find Run Configurations frame") + + + time.sleep(3) + typeText(str(projectname)) + + time.sleep(10) + keyCombo("Enter") + + + self.new_connection_for_run(eclipse_version) + self.log.info("# Step : Create a new Connection") + + text = runConfig.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + if (len(text) < 6): + self.fail("can not find text boxes") + + if eclipse_version=="mars": + text[4].click() + self.log.info("# Step : Click on box <<Remote Absolute File Path for C/C++ App>>") + text[4].text = '/home/root/' + str(projectname) + self.log.info("* Check : Insert Remote Absolute File Path for C/C++ App") + else: + text[5].click() + self.log.info("# Step : Click on box <<Remote Absolute File Path for C/C++ App>>") + text[5].text = '/home/root/' + str(projectname) + self.log.info("* Check : Insert Remote Absolute File Path for C/C++ App") + + if "Hello World GTK C" in str(searchtype): + if eclipse_version=='mars': + text[5].click() + text[5].text = 'export DISPLAY=:0.0' + else: + text[6].click() + text[6].text = 'export DISPLAY=:0.0' + + cancel_close = runConfig.child(name = close_button, roleName = button_rolename) + + try: + run = runConfig.child(name=run_button, roleName = button_rolename) + self.log.info("* Check : Found Run push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Run push button") + + + if (run.sensitive): + self.log.info("* Check : Found Run push button sensitive") + run.click() + self.log.info("# Step : Click on button <<Run>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Run push button not sensitive") + + + found = 1 + try: + enterPassword = app.child(name=enterpassword_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Enter Password>> frame") + except: + found = 0 + + if found == 1: + text = enterPassword.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + if (len(text) == 0): + self.fail("can not find text boxes") + + text[0].click() + self.log.info("# Step : Click on box <<User ID>>") + text[0].text = 'root' + self.log.info("* Check : Insert <<root>> in <<User ID>> box") + + try: + ok = enterPassword.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = enterPassword.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + ok.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + found = 1 + try: + warning = app.child(name=warning_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Warning>> frame") + except: + found = 0 + if found == 1: + try: + yes = warning.child(name=yes_button, roleName = button_rolename) + self.log.info("* Check : Found Yes push button") + except: + self.fail("can not find Yes push button") + + + if (yes.sensitive): + self.log.info("* Check : Found Yes push button sensitive") + yes.click() + self.log.info("# Step : Click on button <<Yes>>") + else: + self.fail("Yes push button not sensitive") + + + if "Hello World GTK C" in str(searchtype): + + var = subprocess.check_output("ssh root@192.168.7.2 \"ps -x | grep " + str(projectname) + "\"", shell=True) + expectedmessage = '/home/root/' + str(projectname) + if str(expectedmessage) in str(var): + self.log.info("* Check : Message from QEMU: " + str(expectedmessage) ) + + subprocess.check_output("ssh root@192.168.7.2 \"killall " + str(projectname) + "\"", shell=True) + self.log.info("# Step : Kill process: " + str(expectedmessage) + "") + else: + var = subprocess.check_output("ssh root@192.168.7.2 \"./" + str(projectname) + "\"", shell=True) + self.log.info("* Check : Message from QEMU: " + str(var)) + + + def change_profile_on_selected_project(self, projectname, newprofileName): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + project = eclipse.child(name = project_menu, roleName = menu_rolename) + self.log.info("* Check : Found Project menu") + except: + self.fail("can not find Project menu") + + + project.click() + self.log.info("# Step : Click on menu <<Project>>") + + try: + changeYPSettings = project.child(name = changeYPsettings_item, roleName = menuitem_rolename) + self.log.info("* Check : Found Change Yocto Project Settings menu item") + except: + keyCombo("<<Esc>") + self.reconfigure_project(projectname) + try: + changeYPSettings = project.child(name = changeYPsettings_item, roleName = menuitem_rolename) + self.log.info("* Check : Found Change Yocto Project Settings menu item") + except: + self.fail("can not find Change Yocto Project Settings menu item") + + + changeYPSettings.click() + self.log.info("# Step : Select <<Change Yocto Project Settings menu >> menu item") + + try: + projectProperties = app.child(name = projectproperties_frame + projectname + " ", roleName = frame_rolename) + self.log.info("* Check : Window Properties for " + str(projectname) + " is Open") + except: + self.fail("can not find Properties for " + str(projectname) + " frame") + + cancel_close = projectProperties.child(name = cancel_button, roleName = button_rolename) + comboBox = projectProperties.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + + if (len(comboBox) > 1): + self.log.info("* Check : Found menu drop-down list Target Arhitecture") + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Target Arhitecture>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find combo boxes") + + try: + projectProperties.child(name=newprofileName, roleName=menuitem_rolename).click() + self.log.info("* Check : Found profile name menu item") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find profile name menu item") + + + try: + applyPref = projectProperties.child(name = apply_button, roleName = button_rolename) + self.log.info("* Check : Found Apply push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Apply push button") + + + if (applyPref.sensitive): + applyPref.doubleClick() + self.log.info("# Step : Click <<Apply>> to save Standard Profile") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Apply push button not sensitive") + + + try: + ok = projectProperties.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + if (cancel_close.sensitive): + cancel_close.click() + self.fail("OK push button not sensitive") + + + def debug_project(self, projectname, searchtype): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + try: + run = eclipse.child(name = run_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run menu") + except: + self.fail("can not find Run menu") + + + run.click() + self.log.info("# Step : Click on menu <<Run>>") + + try: + debugitem = run.child(name=debugconfiguration_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Debug Configurations...>> menu item") + except: + self.fail("can not find Debug Configurations menu item") + + + debugitem.click() + self.log.info("# Step : Click on menu item <<Debug Configurations...>>") + + try: + debugConfig = app.child(name=debugconfiguration_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Debug Configurations>> frame") + except: + self.fail("can not find Debug Configurations frame") + + + text = debugConfig.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + + if (len(text) < 1): + self.fail("can not find text boxes") + + + text[0].click() + #text[0].text = projectname + + typeText(str(projectname)) + #self.log.info("# Step : Insert <<"+ str(projectname)+">> name of project to debug") + + try: + debug = debugConfig.child(name=debug_button, roleName = button_rolename) + self.log.info("* Check : Found Debug push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = debugConfig.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + self.fail("can not find Debug push button") + + + if (debug.sensitive): + self.log.info("* Check : Found Debug push button sensitive") + debug.click() + self.log.info("# Step : Click on button <<Debug>>") + else: + self.log.warning("# Warning : Click <<Close>> and jump to next step") + cancel_close = debugConfig.child(name = close_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Debug push button not sensitive") + + + found = 1 + try: + confirm = app.child(name=confirmperspectiveswitch_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Confirm Perspective Switch >> frame") + except: + found = 0 + + if found == 1: + try: + yes = confirm.child(name=yes_button, roleName = button_rolename) + self.log.info("* Check : Found Yes push button") + except: + self.fail("can not find Yes push button") + + + if (yes.sensitive): + self.log.info("* Check : Found Yes push button sensitive") + yes.doubleClick() + self.log.info("# Step : Click on button <<Yes>>") + else: + self.fail("Yes push button not sensitive") + + + time.sleep(20) + + #var = subprocess.check_output("ssh root@192.168.7.2 \"ps -ef | grep gdbserver " + str(projectname) + "\"", shell=True) + #print var + if eclipse_version == 'mars': + var = subprocess.check_output("ssh root@192.168.7.2 \"killall gdbserver\"", shell=True) + self.log.info("# Step : Kill gdbserver open by : " + str(projectname) + "") + else: + if "Hello World GTK C" in str(searchtype): + var = subprocess.check_output("ssh root@192.168.7.2 \"killall gdbserver\"", shell=True) + self.log.info("# Step : Kill gdbserver open by : " + str(projectname) + "") + + + self.close_perspective() + self.log.info("# Step : Close Debug perspective") + + found = 1 + try: + dateforgdb = datetime.now().strftime("%m/%d/%y, %I:%M %p") + gdbserver = app.child(name= gdbserverdebugger_frame + dateforgdb, roleName=frame_rolename) + self.log.info("* Check : Found <<"+ gdbserverdebugger_frame+">> frame") + except: + found = 0 + if found == 1: + try: + details = gdbserver.child(name=details_button, roleName = button_rolename) + self.log.info("* Check : Found Details push button") + except: + self.fail("can not find Details push button") + + + if (details.sensitive): + self.log.info("* Check : Found Details push button sensitive") + details.click() + self.log.info("# Step : Click on button <<Details>>") + else: + self.fail("Details push button not sensitive") + + + found = 1 + try: + errorconnection = gdbserver.child(name= error_connection_closed, roleName=tablecell_rolename) + except: + found = 0 + if found == 1: + self.log.info("* Warning : Found" + error_connection_closed +" ?????") + try: + ok = gdbserver.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = gdbserver.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + ok.click() + self.log.info("# Step : Click on button <<OK>>") + + def open_other_perspective(self, perspectivename): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + window = eclipse.child(name = window_menu, roleName = menu_rolename) + self.log.info("* Check : Found Window menu") + except: + self.fail("can not find Window menu") + + + window.click() + self.log.info("# Step : Click on menu <<Window>>") + + try: + windowitem = window.child(name=openperspective_menu, roleName=menu_rolename) + self.log.info("* Check : Found <<Open Perspective>> menu") + except: + self.fail("can not find Open Perspective menu") + + + windowitem.select() + self.log.info("# Step : Select menu <<Open Perspective>>") + + try: + otheritem = windowitem.child(name=other_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Other...>> menu item") + + except: + self.fail("can not find Other... menu item") + + + otheritem.click() + self.log.info("# Step : Click on menu item <<Other...>>") + + try: + OpenPerspective = app.child(name = openp_other_erspective_frame, roleName = frame_rolename) + self.log.info("* Check : Open Perspective is Open") + except: + self.fail("can not find Open Perspective frame") + + + try: + perspectiveitem = OpenPerspective.child(name = perspectivename, roleName=tablecell_rolename) + self.log.info("* Check : Found <<" +str(perspectivename) + ">> table cell") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = OpenPerspective.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find " +str(perspectivename) + " table cell") + + + perspectiveitem.click() + self.log.info("# Step : Click on perspective <<" + str(perspectivename) +">>") + + try: + ok = OpenPerspective.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = OpenPerspective.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + ok.click() + self.log.info("# Step : Click on button <<OK>>") + + try: + perspectiveButton = eclipse.child(name = perspectivename, roleName = togglebutton_rolename) + self.log.info("* Check : Found <<" +str(perspectivename) + ">> toggle button") + except: + self.fail("can not find " +str(perspectivename) + ">> toggle button") + + + perspectiveButton.click() + self.log.info("# Step : Click on <<" +str(perspectivename) + ">>") + self.log.info("# Step : Perspective <<" +str(perspectivename) + ">> is open") + + def create_yocto_project(self, projectname, projectlocation, typeproject): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + try: + project = eclipse.child(name = file_menu, roleName = menu_rolename) + self.log.info("* Check : Found File menu") + + except: + self.fail("can not find File menu") + + + project.click() + self.log.info("# Step : Click on menu <<File>>") + + try: + newmenu = project.child(name = new_menu, roleName = menu_rolename) + self.log.info("* Check : Found New menu") + except: + self.fail("can not find New menu") + + + newmenu.select() + self.log.info("# Step : Select <<New>> menu") + + try: + projectitem = newmenu.child(name = project_item , roleName = menuitem_rolename) + self.log.info("* Check : Found <<Project...>> menu item") + except: + self.fail("can not find Project... menu item") + + + projectitem.click() + self.log.info("# Step : Click on menu item <<Project...>>") + + try: + new_proj = app.child(name = new_project_frame, roleName = frame_rolename) + self.log.info("* Check : New Project frame") + except: + self.fail("can not find New Project frame") + + + + text = new_proj.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + text[0].click() + self.log.info("# Step : Click on box <<Wizards>>") + text[0].text = typeproject + self.log.info("* Check : Insert type of project") + + try: + next = new_proj.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = new_proj.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find Next push button") + + + time.sleep(10) + + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + #next.doubleClick() + next.click() + self.log.info("# Step : Click <<Next>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = new_proj.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Next push button not sensitive") + + + try: + BBCProject = app.child(name = yoctoBBcommander_frame, roleName = frame_rolename) + self.log.info("* Check : Found Yocto Project Bitbake Commander frame") + except: + self.fail("can not find Yocto Project Bitbake Commanderframe") + + + text = BBCProject.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + text[1].click() + self.log.info("# Step : Click on box <<Project Name >>") + text[1].text = projectname + self.log.info("* Check : Insert name of project") + + text[2].click() + self.log.info("# Step : Click on box <<Project Location>>") + text[2].text = projectlocation + self.log.info("* Check : Insert location of project") + + + try: + finish = BBCProject.child(name = finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + + + finish.click() + self.log.info("# Step : Click on box <<Finish>>") + + def add_bitbake_recipe(self, projectname, srcURI, description, recipelicense, recipename, pressPopulate): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + try: + project = eclipse.child(name = projectname, roleName=tablecell_rolename) + self.log.info("* Check : Found <<" +str(projectname) + ">> table cell") + except: + self.fail("can not find " +str(projectname) + " table cell") + + + project.click() + self.log.info("* Step : Click on project <<" +str(projectname) + ">>") + + try: + file = eclipse.child(name = file_menu, roleName = menu_rolename) + self.log.info("* Check : Found File menu") + except: + self.fail("can not find File menu") + + + file.click() + self.log.info("# Step : Click on menu <<File>>") + + try: + newmenu = file.child(name = new_menu, roleName = menu_rolename) + self.log.info("* Check : Found New menu") + except: + self.fail("can not find New menu") + + + newmenu.select() + self.log.info("# Step : Select <<New>> menu") + + try: + projectitem = newmenu.child(name = bitbakerecipe_item , roleName = menuitem_rolename) + self.log.info("* Check : Found <<BitBake Recipe>> menu item") + except: + self.fail("can not find BitBake Recipe menu item") + + + projectitem.click() + self.log.info("# Step : Click on menu item <<Project...>>") + + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + if (len(frames) == 0): + self.fail("can not find frames") + + bbrecipe = frames[1] + text = bbrecipe.findChildren(predicate.GenericPredicate(roleName = text_rolename )) + + text[0].click() + self.log.info("# Step : Click on box <<Recipe Directory>>") + recipe_directory = "/" + str(projectname) + + if text[0].text == recipe_directory : + self.log.info("* Check : Recipe directory is correct") + else: + self.fail("Other recipe directory") + + text[1].click() + self.log.info("# Step : Click on box <<SRC_URI>>") + text[1].text = srcURI + self.log.info("* Check : Insert SRC_URI") + + + text[6].click() + self.log.info("# Step : Click on box <<Description>>") + text[6].text = description + self.log.info("* Check : Insert Description") + + + text[7].click() + self.log.info("# Step : Click on box <<License>>") + text[7].text = recipelicense + self.log.info("* Check : Insert License") + + + try: + finish = bbrecipe.child(name = finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + + + if pressPopulate: + try: + populate = bbrecipe.child(name = populate_button, roleName = button_rolename) + self.log.info("* Check : Found Populate... push button") + except: + self.fail("can not find Populate... push button") + + + populate.click() + self.log.info("# Step : Click on box <<Populate...>>") + time.sleep(20) + + if text[2].text == recipename: + self.log.info("* Check : Recipe Name is correct") + else: + self.fail("Recipe Name is not correct") + + self.log.info("# Step : Click on box SRC_URI[md5sum]") + text[3].click() + self.log.info("# Step : Text in box SRC_URI[md5sum]: %s" %(text[3].text) ) + + self.log.info("# Step : Click on box SRC_URI[sha255sum]") + text[4].click() + self.log.info("# Step : Text on box SRC_URI[sha255sum]: %s" %(text[4].text) ) + + self.log.info("# Step : Click on Lincense File CheckSum") + text[5].click() + self.log.info("# Step : Text on box SRC_URI[sha255sum]: %s" %(text[5].text) ) + else: + text[2].click() + self.log.info("# Step : Click on box <<Recipe Name>>") + text[2].text = recipename + self.log.info("* Check : Insert Recipe Name") + + finish.click() + self.log.info("# Step : Click on button <<Finish>>") + + time.sleep(3) + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + + if (nrText == 0): + self.fail("can not find text boxes") + + + if eclipse_version == 'mars': + text[nrText-1].click() + self.log.info("# Step : Click on " + str(projectname) + " Console") + time.sleep(3) + self.log.info("# Step : Output from " + str(projectname) + " Console: %s" %((text[nrText-1].text))) + else: + text[nrText-2].click() + self.log.info("# Step : Click on <<" + str(projectname) + ">> Console") + time.sleep(3) + self.log.info("# Step : Output from " + str(projectname) + " Console: %s "%(text[nrText-2].text)) + + try: + clearconsole = eclipse.child(description=clear_console_description, roleName = button_rolename) + self.log.info("* Check : Found Clear Console push button") + except: + self.fail("can not find Clear Console push button") + + + clearconsole.click() + self.log.info("# Step : Click on button <<Clear Console>>") + + project.actions['expand or contract'].do() + self.log.info("# Step : Expand or contract") + + project.grabFocus() + project.typeText(recipename) + self.log.info("# Step : Search " + str(recipename) + "") + + try: + foundrecipe = eclipse.child(name = recipename, roleName = tablecell_rolename) + self.log.info("* Check : Found recipe: " + str(recipename) + " in BitBake Project <<" + str(projectname) + ">>") + except: + self.fail("can not find " + str(recipename) + "in BitBake Project <<" + str(projectname) + ">>") + + + foundrecipe.click() + self.log.info("# Step : Click on recipe file " + str(recipename) + "") + + project.actions['expand or contract'].do() + self.log.info("# Step : Expand or contract") + + project.click() + self.log.info("* Step : Click on project <<" +str(projectname) + ">>") + + + def start_HOB_or_toaster(self,eclipse_version): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + try: + project = eclipse.child(name = project_menu, roleName = menu_rolename) + self.log.info("* Check : Found Project menu") + except: + self.fail("can not find Project menu") + + + project.select() + self.log.info("# Step : Click on menu <<Project>>") + + if eclipse_version == 'kepler': + + try: + projectitem = project.child(name=launchHob_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Launch HOB>> menu item") + except: + project.deselect() + time.sleep(10) + project.select() + self.log.info("# Step : Click on menu <<Project>>") + + time.sleep(3) + projectitem.click() + self.log.info("# Step : Click on menu item <<Launch HOB>>") + + try: + Launch_HOB = app.child(name = launchHob_frame, roleName = frame_rolename) + self.log.info("* Check : Window Launch HOB is Open") + except: + self.fail("can not find Launch HOB frame") + + + try: + ok = Launch_HOB.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = Launch_HOB.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + time.sleep(2) + ok.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + time.sleep(10) + + app2 = tree.root.application('bitbake') + + try: + Hob = app2.child(name = 'Hob', roleName='frame') + self.log.info("* Check : Window %s is Open " %Hob) + except: + self.fail("FAIL: can not find %s frame " %Hob) + + os.system("killall hob") + + + elif eclipse_version == 'luna': + + try: + projectitem = project.child(name=launchToaster_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Launch Toaster>> menu item") + except: + project.deselect() + time.sleep(10) + project.select() + self.log.info("# Step : Click on menu <<Project>>") + + time.sleep(3) + projectitem.click() + self.log.info("# Step : Click on menu item <<Launch Toaster>>") + + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + if (len(frames) == 0): + self.fail("can not find frames") + + Launch_Toaster = frames[1] + text = Launch_Toaster.findChildren(predicate.GenericPredicate(roleName = text_rolename )) + + text[0].click() + self.log.info("# Step : Click on box <<Toaster Server URL>") + + link_toaster = 'https://www.yoctoproject.org/toaster/' + + if text[0].text == link_toaster : + self.log.info("* Check : Toaster Server URL is correct") + + else: + text[0].click() + text[0].text = link_toaster + try: + ok = Launch_Toaster.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = Launch_Toaster.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + time.sleep(2) + ok.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + time.sleep(10) + app3 = tree.root.application('Firefox') + + try: + Toaster = app3.child(name = 'Toaster - Mozilla Firefox', roleName='frame') + self.log.info("* Check : Window %s is Open " %Toaster) + except: + self.fail("FAIL: can not find %s frame " %Toaster) + + os.system("killall firefox") + + elif eclipse_version == 'mars': + + try: + projectitem = project.child(name=launchToaster_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Launch Toaster>> menu item") + except: + project.deselect() + time.sleep(10) + project.select() + self.log.info("# Step : Click on menu <<Project>>") + + time.sleep(3) + projectitem.click() + self.log.info("# Step : Click on menu item <<Launch Toaster>>") + + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + if (len(frames) == 0): + self.fail("can not find frames") + + Launch_Toaster = frames[2] + text = Launch_Toaster.findChildren(predicate.GenericPredicate(roleName = text_rolename )) + + + text[0].click() + self.log.info("# Step : Click on box <<Toaster Server URL>") + + link_toaster = 'https://www.yoctoproject.org/toaster/' + + if text[0].text == link_toaster : + self.log.info("* Check : Toaster Server URL is correct") + else: + text[0].click() + text[0].text = link_toaster + + try: + ok = Launch_Toaster.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = Launch_Toaster.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + time.sleep(2) + ok.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + try: + toaster_web = eclipse.child(name='Toaster', roleName='document web') + self.log.info("* Check : Found <<Toaster>> document web") + except: + self.fail("can not find Toaster document web") + + + + + time.sleep(10) + + toaster_web.click() + self.log.info("# Step : Click on <<Toaster>> document web") + + + def new_connection_for_debug(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + inifile = IniParser() + debugConfig = app.child(name=debugconfiguration_frame, roleName=frame_rolename) + + ip = inifile.getValue("test.ini", "SSH", "ip") + conncectionId = datetime.now().strftime("%d-%m-%Y %H:%M:%S") + connection = ip +'SSH_' + conncectionId + + try: + new = debugConfig.child(name = new_button, roleName = button_rolename) + self.log.info("* Check : Found New push button") + except: + self.fail("can not find New push button") + + + new.click() + self.log.info("# Step : Click on <<New...>push button") + + newConnection = app.child(name=newconnection_frame, roleName = frame_rolename) + text = newConnection.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + text[0].click() + self.log.info("# Step : Click on box <<System type>>") + text[0].text = 'SSH Only' + self.log.info("* Check : Insert <<SSH Only>> as System type") + + + try: + sshOnly = newConnection.child(name = ssh_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found SSH Only table cell") + except: + self.fail("can not find SSH Only table cell") + + + sshOnly.click() + self.log.info("# Step : Click on box <<System type>>") + + try: + next = newConnection.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.fail("can not find Next push button") + + + next.click() + self.log.info("# Step : Click <<Next>>") + + text = newConnection.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + text[1].click() + self.log.info("# Step : Click on box <<Host name>>") + text[1].text = ip + self.log.info("* Check : Insert ip of QEMU as hostname") + + + + text[2].click() + self.log.info("# Step : Click on box <<Connection name>>") + text[2].text = connection + self.log.info("* Check : Insert Connection name") + + + try: + finish = newConnection.child(name = finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + + + finish.click() + self.log.info("# Step : Click on box <<Finish>>") + + + def debug_project_to_avoid_5163(self,projectname): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + debugConfig = app.child(name=debugconfiguration_frame, roleName=frame_rolename) + + text = eclipse.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + try: + run = eclipse.child(name = run_menu, roleName = menu_rolename) + self.log.info("* Check : Found Run menu") + except: + self.fail("can not find Run menu") + + + time.sleep(2) + + run.click() + self.log.info("# Step : Click on menu <<Run>>") + + try: + debugitem = run.child(name=debugconfiguration_item, roleName=menuitem_rolename) + self.log.info("* Check : Found <<Debug Configurations...>> menu item") + except: + self.fail("can not find Debug Configurations menu item") + + + debugitem.click() + self.log.info("# Step : Click on menu item <<Debug Configurations...>>") + + try: + debugConfig = app.child(name=debugconfiguration_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Debug Configurations>> frame") + except: + self.fail("can not find Debug Configurations frame") + + + time.sleep(3) + + typeText(str(projectname)) + self.log.info("# Step : Insert <<"+ str(projectname)+">> name of project to debug") + time.sleep(3) + keyCombo("Down") + keyCombo("Down") + keyCombo("Down") + keyCombo("Enter") + + + self.new_connection_for_debug() + self.log.info("# Step : Create a new Connection") + + text = debugConfig.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + if (len(text) < 6): + self.fail("can not find text boxes") + + + text[5].click() + self.log.info("# Step : Click on box <<Remote Absolute File Path for C/C++ App>>") + text[5].text = '/home/root/'+ str(projectname) + + self.log.info("* Check : Insert Remote Absolute File Path for C/C++ App") + + try: + debug = debugConfig.child(name=debug_button, roleName = button_rolename) + self.log.info("* Check : Found Debug push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = debugConfig.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + self.fail("can not find Debug push button") + + + if (debug.sensitive): + self.log.info("* Check : Found Debug push button sensitive") + debug.click() + self.log.info("# Step : Click on button <<Debug>>") + else: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = debugConfig.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("Debug push button not sensitive") + + + found = 1 + try: + enterPassword = app.child(name=enterpassword_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Enter Password>> frame") + except: + found = 0 + + if found == 1: + text = enterPassword.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + if (len(text) == 0): + self.fail("can not find text boxes") + + + text[0].click() + self.log.info("# Step : Click on box <<User ID>>") + text[0].text = 'root' + self.log.info("* Check : Insert <<root>> in <<User ID>> box") + + try: + ok = enterPassword.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = enterPassword.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + time.sleep(2) + ok.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + time.sleep(60) + try: + problem_occurred = app.child(name=problemoccurred_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Problem Occurred>> frame") + except: + self.fail("can not find Problem Occurred push button") + + try: + ok = problem_occurred.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + time.sleep(2) + ok.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + + def connection_for_linux_tools(self,linuxToolsItem, linuxToolsFrame): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + ip = inifile.getValue("settings-eclipse.ini", "SSH", "ip") + + + try: + YoctoProjectTools = eclipse.child(name = yocto_project_tools_menu, roleName = menu_rolename) + self.log.info("* Check : Found YoctoProjectTools menu") + except: + self.fail("can not find YoctoProjectTools menu") + + + YoctoProjectTools.click() + self.log.info("# Step : Click on menu <<YoctoProjectTools>>") + time.sleep(2) + + try: + YPTitem = YoctoProjectTools.child(name=linuxToolsItem, roleName=menuitem_rolename) + self.log.info("* Check : Found <<"+linuxToolsItem+">> menu item") + except: + self.fail("can not find "+linuxToolsItem+" menu item") + + YPTitem.click() + self.log.info("# Step : Click on menu item <<"+linuxToolsItem+">>") + + try: + linuxtoolswindow = app.child(name=linuxToolsFrame, roleName=frame_rolename) + self.log.info("* Check : Found <<Perf>> frame") + except: + self.fail("can not find Debug Configurations frame") + + + try: + new = linuxtoolswindow.child(name = new2_button, roleName = button_rolename) + self.log.info("* Check : Found New push button") + except: + self.fail("can not find New push button") + + + new.click() + self.log.info("# Step : Click on <<New>push button") + + newConnection = app.child(name=newconnection_frame, roleName = frame_rolename) + text = newConnection.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + text[0].click() + self.log.info("# Step : Click on box <<System type>>") + text[0].text = 'SSH Only' + self.log.info("* Check : Insert <<SSH Only>> as System type") + + try: + sshOnly = newConnection.child(name = ssh_tablecell, roleName = tablecell_rolename) + self.log.info("* Check : Found SSH Only table cell") + except: + self.fail("can not find SSH Only table cell") + + + sshOnly.click() + self.log.info("# Step : Click on box <<System type>>") + + try: + next = newConnection.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + except: + self.fail("can not find Next push button") + + + next.click() + self.log.info("# Step : Click <<Next>>") + + text = newConnection.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + nrText = len(text) + if (nrText == 0): + self.fail("can not find text boxes") + + + + keyCombo("<<Ctrl><a>") + #text[1].click() + self.log.info("# Step : Click on box <<Host name>>") + #text[1].text = ip + typeText(ip) + self.log.info("* Check : Insert ip of QEMU as hostname") + + conncectionId = datetime.now().strftime("-%d-%m-%Y %H:%M:%S") + connection = ip + ' ' + linuxToolsItem + conncectionId + if eclipse_version == 'mars': + text[2].click() + self.log.info("# Step : Click on box <<Connection name>>") + text[2].text = connection + self.log.info("* Check : Insert Connection name") + elif eclipse_version == 'luna': + text[1].click() + self.log.info("# Step : Click on box <<Connection name>>") + text[1].text = connection + self.log.info("* Check : Insert Connection name") + + try: + finish = newConnection.child(name = finish_button, roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + except: + self.fail("can not find Finish push button") + + finish.click() + self.log.info("# Step : Click on box <<Finish>>") + + + + comboBox = linuxtoolswindow.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + if (len(comboBox) > 0): + self.log.info("* Check : Found menu drop-down list Connection") + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Connection>>") + else: + self.fail("can not find combo boxes") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = linuxtoolswindow.child(name=cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + try: + connectionTools = linuxtoolswindow.child(name = connection, roleName=menuitem_rolename) + self.log.info("* Check : Found " + str(connection) + " menu item") + except: + self.fail("can not find " + str(connection) + " menu item") + + + connectionTools.click() + self.log.info("# Step : Select <<" + str(connection) + ">>") + + try: + ok_tools = linuxtoolswindow.child(name = ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + + + ok_tools.click() + self.log.info("# Step : Click on <<OK>>push button") + + found = 1 + try: + enterPassword = app.child(name=enterpassword_frame, roleName=frame_rolename) + self.log.info("* Check : Found <<Enter Password>> frame") + except: + found = 0 + + if found == 1: + text = enterPassword.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + if (len(text) == 0): + self.fail("can not find text boxes") + + + text[0].click() + self.log.info("# Step : Click on box <<User ID>>") + text[0].text = 'root' + self.log.info("* Check : Insert <<root>> in <<User ID>> box") + + try: + ok_enter = enterPassword.child(name=ok_button, roleName = button_rolename) + self.log.info("* Check : Found OK push button") + except: + self.fail("can not find OK push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = enterPassword.child(name = cancel_button, roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + if (ok_enter.sensitive): + self.log.info("* Check : Found OK push button sensitive") + ok_enter.click() + self.log.info("# Step : Click on button <<OK>>") + else: + self.fail("OK push button not sensitive") + + + + +################################################################### +# # +# PART III: test cases # +# please refer to # +# https://bugzilla.yoctoproject.org/tr_show_case.cgi?case_id=xxx +# # +################################################################### + +# Note: to comply with the unittest framework, we call these test_xxx functions +# from run_eclipsecases.py to avoid calling setUp() and tearDown() multiple times + + +class eclipse_cases(eclipse_cases_base): + + + + ############## + # CASE 24 # + ############## + @testcase(24) + def test_24(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + commit = inifile.getValue("settings-eclipse.ini", "Run", "commit") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + self.log.info('#############################################################################') + self.log.info('### TC 24 - Install Eclipse Using the Headless Build ###') + self.log.info('#############################################################################') + + self.create_tree(eclipse_version, param1, param2, dateofrun) + self.log.info("# Step : Create tree for run") + + self.download_basic_things(param1, param2, dateofrun) + self.log.info("# Step : Download basic things") + + self.download_plugin_and_eclipse_version(eclipse_version, param1, param2, dateofrun) + self.log.info("# Step : Download plugin and eclipse version") + + self.install_basic_things(param1, param2, commit, dateofrun) + self.log.info("# Step : Install basic things") + + self.install_eclipse_version(param1, param2, eclipse_version, dateofrun) + self.log.info("# Step : Install eclipse %s " %(eclipse_version)) + + self.start_eclipse(param1, param2, eclipse_version, dateofrun) + self.log.info("# Step : Start Eclipse %s" %eclipse_version) + + self.install_eclipse_plugin(param1, param2, eclipse_version, dateofrun) + self.log.info("# Step : Install Eclipse %s" %eclipse_version) + time.sleep(10) + self.restart_and_close_welcome() + self.log.info("# Step : Restart Eclipse %s" %eclipse_version) + + + + @testcase(739) + def test_739(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + toolchainType = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Cross_Compiler_Options") + toolchainAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/installed/adt" + sysrootAdr = '/home/' + getpass.getuser() + '/test-yocto/qemux86' + targetArch = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Target_Arhitecture") + targetType = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Target_Options") + kernelAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/adt-installer/download_image/bzImage-qemux86.bin" + + newprofileName = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Cross_development_profiles") + renameprofile = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Cross_development_profiles_rename") + projectname = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC739_eclipse-plugin_support_profiles", "Copyright") + + + self.log.info("#############################################################################") + self.log.info("### TC 739 - eclipse-plugin support profiles ###") + self.log.info("#############################################################################") + + self.work_around_preferences_frame() + self.log.info("# Step : Insert a text in one text box to modify size of frame") + + self.configure_standard_profile(toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr) + self.log.info("# Step : Configure Standard Profile") + + self.add_new_profile(newprofileName) + self.log.info("# Step : Add Profile " + str(newprofileName) + "") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + if eclipse_version == 'mars': + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.verify_profile(projectname, toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr, newprofileName) + self.log.info("# Step : Verify all the information about profile saved") + + self.rename_profile(newprofileName, renameprofile) + self.log.info("# Step : Rename profile") + + self.remove_yocto_profile(renameprofile) + self.log.info("# Step : Remove profile") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + + @testcase(25) + def test_25(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC25_support_SSH_connection_to_Target", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC25_support_SSH_connection_to_Target", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC25_support_SSH_connection_to_Target", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC25_support_SSH_connection_to_Target", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC25_support_SSH_connection_to_Target", "Copyright") + + self.log.info("#############################################################################") + self.log.info("### TC 25 - Support SSH connection to Target ###") + self.log.info("#############################################################################") + + self.set_network_preferences_to_direct() + self.log.info("# Step : Set connection to Direct") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.launch_qemu_from_eclipse() + self.log.info("# Step : Verify if QEMU appears in External Tools in Eclipse") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + + + @testcase(26) + def test_26(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + toolchainAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/installed/adt" + kernelAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/adt-installer/download_image/bzImage-qemux86.bin" + sysrootAdr = '/home/' + getpass.getuser() + '/test-yocto/qemux86' + + toolchainType = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Cross_Compiler_Options") + targetArch = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Target_Arhitecture") + targetType = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Target_Options") + projectname = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC26_Persistent_Yocto_Project_ADT_Settings", "Copyright") + + self.log.info("#############################################################################") + self.log.info("### TC 26 - Persistent Yocto Project ADT settings ###") + self.log.info("#############################################################################") + + self.configure_standard_profile(toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr) + self.log.info("# Step : Configure Standard Profile") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project( projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + @testcase(27) + def test_27(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + + toolchainAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/installed/adt" + kernelAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/adt-installer/download_image/bzImage-qemux86.bin" + sysrootAdr = '/home/' + getpass.getuser() + '/test-yocto/qemux86' + + toolchainType = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Cross_Compiler_Options") + targetArch = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Target_Arhitecture") + targetType = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Target_Options") + + + projectname = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Copyright") + + newprofileName = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Cross_development_profiles_2") + renameprofile = inifile.getValue("settings-eclipse.ini", "TC27_Change_Yocto_Project_ADT_Settings_profile", "Cross_development_profiles_2") + + + self.log.info("#############################################################################") + self.log.info("### TC 27 - Change Yocto Project ADT Settings profile ###") + self.log.info("#############################################################################") + + self.configure_standard_profile(toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr) + self.log.info("# Step : Configure Standard Profile") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.add_new_profile(newprofileName) + self.log.info("# Step : Add Profile " + str(newprofileName) ) + + self.change_profile_on_selected_project(projectname, newprofileName) + self.log.info("# Step : Change Profile") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.remove_yocto_profile(renameprofile) + self.log.info("# Step : Remove profile") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + @testcase(385) + def test_385(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + toolchainAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/installed/adt" + kernelAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/adt-installer/download_image/bzImage-qemux86.bin" + sysrootAdr = '/home/' + getpass.getuser() + '/test-yocto/qemux86' + + toolchainType = inifile.getValue("settings-eclipse.ini", "TC385_ADT-installer_Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_ADT", "Cross_Compiler_Options") + targetArch = inifile.getValue("settings-eclipse.ini", "TC385_ADT-installer_Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_ADT", "Target_Arhitecture") + targetType = inifile.getValue("settings-eclipse.ini", "TC385_ADT-installer_Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_ADT", "Target_Options") + + + self.log.info("##########################################################################################################") + self.log.info("###TC 385 - ADT-installer - Configure Eclipse plugin with the toolchain and sysroot installed using ADT###") + self.log.info("##########################################################################################################") + + self.configure_standard_profile(toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr) + self.log.info("# Step : Configure standard profile") + + + + @testcase(38) + def test_38(self): + + + projectname = inifile.getValue("settings-eclipse.ini", "TC38_ADT-installer_C_Build_Hello_World_ANSI_C_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC38_ADT-installer_C_Build_Hello_World_ANSI_C_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC38_ADT-installer_C_Build_Hello_World_ANSI_C_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC38_ADT-installer_C_Build_Hello_World_ANSI_C_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC38_ADT-installer_C_Build_Hello_World_ANSI_C_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("#############################################################################") + self.log.info("###TC 38 - ADT-installer - C - Build Hello World ANSI C Autotools Project ###") + self.log.info("#############################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + @testcase(39) + def test_39(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC39_ADT-installer_C++_Build_Hello_World_C++_Autotools project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC39_ADT-installer_C++_Build_Hello_World_C++_Autotools project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC39_ADT-installer_C++_Build_Hello_World_C++_Autotools project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC39_ADT-installer_C++_Build_Hello_World_C++_Autotools project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC39_ADT-installer_C++_Build_Hello_World_C++_Autotools project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("#############################################################################") + self.log.info("### TC 39 - ADT-installer - C++ - Build Hello World C++ Autotools Project ###") + self.log.info("#############################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype, eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + @testcase(377) + def test_377(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC377_ADT-installer_C_Build_Hello_World_GTK_C_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC377_ADT-installer_C_Build_Hello_World_GTK_C_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC377_ADT-installer_C_Build_Hello_World_GTK_C_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC377_ADT-installer_C_Build_Hello_World_GTK_C_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC377_ADT-installer_C_Build_Hello_World_GTK_C_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + + self.log.info("#############################################################################") + self.log.info("###TC 377 - ADT-installer - C - Build Hello World GTK C Autotools Project###") + self.log.info("#############################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + @testcase(386) + def test_386(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + toolchainAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/installed/toolchain" + kernelAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/adt-installer/download_image/bzImage-qemux86.bin" + sysrootAdr = '/home/' + getpass.getuser() + '/test-yocto/qemux86' + + toolchainType = inifile.getValue("settings-eclipse.ini", "TC386_Relocatable_SDK_Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_Relocatable_SDK", "Cross_Compiler_Options") + targetArch = inifile.getValue("settings-eclipse.ini", "TC386_Relocatable_SDK_Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_Relocatable_SDK", "Target_Arhitecture") + targetType = inifile.getValue("settings-eclipse.ini", "TC386_Relocatable_SDK_Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_Relocatable_SDK", "Target_Options") + + self.log.info("########################################################################################################################") + self.log.info("###TC 386 - Relocatable SDK - Configure Eclipse plugin with the toolchain and sysroot installed using Relocatable SDK###") + self.log.info("########################################################################################################################") + + self.work_around_preferences_frame() + self.log.info("# Step : Insert a text in one text box to modify size of frame") + + self.configure_standard_profile(toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr) + self.log.info("# Step : Configure standard profile") + + + @testcase(373) + def test_373(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC373_Relocatable_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC373_Relocatable_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC373_Relocatable_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC373_Relocatable_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC373_Relocatable_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("################################################################################") + self.log.info("###TC 373 - Relocatable SDK - C - Build Hello World ANSI C Autotools Project ###") + self.log.info("################################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + + @testcase(379) + def test_379(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC379_Relocatable_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC379_Relocatable_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC379_Relocatable_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC379_Relocatable_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC379_Relocatable_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + + self.log.info("##############################################################################") + self.log.info("###TC 379 - Relocatable SDK - C++ - Build Hello World C++ Autotools Project###") + self.log.info("##############################################################################") + + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + + @testcase(378) + def test_378(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC378_Relocatable_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC378_Relocatable_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC378_Relocatable_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC378_Relocatable_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC378_Relocatable_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("################################################################################") + self.log.info("###TC 378 - Relocatable SDK - C - Build Hello World GTK C Autotools Project###") + self.log.info("################################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + + @testcase(387) + def test_387(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + + poky_path = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/poky/" + toolchainAdr = poky_path + "build/" + kernelAdr = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/download/adt-installer/download_image/bzImage-qemux86.bin" + + sysrootAdr = '/home/' + getpass.getuser() + '/test-yocto/qemux86' + toolchainType = inifile.getValue("settings-eclipse.ini", "TC387_User_Built_SDK-Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_User_Built_SDK", "Cross_Compiler_Options") + targetArch = inifile.getValue("settings-eclipse.ini", "TC387_User_Built_SDK-Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_User_Built_SDK", "Target_Arhitecture") + targetType = inifile.getValue("settings-eclipse.ini", "TC387_User_Built_SDK-Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_User_Built_SDK", "Target_Options") + + #kernelAdr = poky_path +"build/tmp/deploy/images/qemux86/bzImage-qemux86.bin" + #sysrootAdr = poky_path + "build/tmp/sysroots/qemux86" + #sysrootAdr = inifile.getValue("settings-eclipse.ini", "TC387_User_Built_SDK-Configure_Eclipse_plugin_with_the_toolchain_and_sysroot_installed_using_User_Built_SDK", "Sysroot_Location") + + self.log.info("########################################################################################################################") + self.log.info("### TC 387 - User Built SDK - Configure Eclipse plugin with the toolchain and sysroot installed using User Built SDK ###") + self.log.info("########################################################################################################################") + + self.work_around_preferences_frame() + self.log.info("# Step : Insert a text in one text box to modify size of frame") + + self.configure_standard_profile(toolchainType, toolchainAdr, sysrootAdr, targetArch, targetType, kernelAdr) + + + + @testcase(374) + def test_374(self): + + + projectname = inifile.getValue("settings-eclipse.ini", "TC374_User_Built_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC374_User_Built_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC374_User_Built_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC374_User_Built_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC374_User_Built_SDK_C_Build_Hello_World_ANSI_C_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("################################################################################") + self.log.info("### TC 374 - User Built SDK - C - Build Hello World ANSI C Autotools Project ###") + self.log.info("################################################################################") + + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + + + @testcase(380) + def test_380(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC380_User_Built_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC380_User_Built_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC380_User_Built_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC380_User_Built_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC380_User_Built_SDK_C++_Build_Hello_World_C++_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("################################################################################") + self.log.info("### TC 380 - User Built SDk - C++ - Build Hello World C++ Autotools Project ###") + self.log.info("################################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + @testcase(42) + def test_42(self): + + projectname = inifile.getValue("settings-eclipse.ini", "TC42_User_Built_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC42_User_Built_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Wizards") + searchtype = inifile.getValue("settings-eclipse.ini", "TC42_User_Built_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Search") + author = inifile.getValue("settings-eclipse.ini", "TC42_User_Built_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Author") + copyrightproject = inifile.getValue("settings-eclipse.ini", "TC42_User_Built_SDK_C_Build_Hello_World_GTK_C_Autotools_Project", "Copyright") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + self.log.info("################################################################################") + self.log.info("### TC 42 - User Built SDK - C - Build Hello World GTK C Autotools Project ###") + self.log.info("################################################################################") + + self.createProject(projectname, typeproject, searchtype, author, copyrightproject) + self.log.info("# Step : Create Project") + + self.open_perspective() + self.log.info("# Step : Change Perspective") + + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + if eclipse_version == 'mars': + self.reconfigure_project(projectname) + self.log.info("# Step : Reconfigure Project") + + self.build_project() + self.log.info("# Step : Build Project") + + self.run_project(projectname, searchtype,eclipse_version) + self.log.info("# Step : Run Project") + + + self.debug_project(projectname, searchtype) + self.log.info("# Step : Debug Project") + + + #check_passed3ewb = verify_console() + #ewb + #self.log.info("# Step : Verify problems") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close C/C++ perspective") + + + @testcase(388) + def test_388(self): + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + projectlocation = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun +'/download/' + + projectname = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "Wizards") + perspectivename = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "Perspective_name") + srcURI = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "SRC_URI") + description = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "Description") + recipelicense = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "License") + recipename = inifile.getValue("settings-eclipse.ini", "TC388_BB_Commander-Create_a_User_customized_recipe", "Recipe_name") + + self.log.info("################################################################################") + self.log.info("### TC 388 - BB Commander - Create a User customized recipe ###") + self.log.info("################################################################################") + + self.open_other_perspective(perspectivename) + self.log.info("# Step : Create BB Commander Project") + + self.create_yocto_project(projectname, projectlocation, typeproject) + self.log.info("# Step : Create BB Commander Project") + + self.add_bitbake_recipe(projectname, srcURI, description,recipelicense,recipename, pressPopulate=False) + self.log.info("# Step : Create BitBake Recipe") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close BitBake Commander perspective") + + + + @testcase(153) + def test_153(self): + + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + projectlocation = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + '/download/' + + projectname = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "Project_name") + typeproject = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "Wizards") + perspectivename = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "Perspective_name") + srcURI = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "SRC_URI") + description = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "Description") + recipelicense = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "License") + recipename = inifile.getValue("settings-eclipse.ini", "TC153_BB_Commander-Create_a_customized_recipeu_using_a_source_package", "Recipe_name") + + self.log.info("################################################################################") + self.log.info("### TC 153 - BB Commander - Create a customized recipe using a source package###") + self.log.info("################################################################################") + + self.open_other_perspective(perspectivename) + self.log.info("# Step : Create BB Commander Project") + + self.create_yocto_project(projectname, projectlocation, typeproject) + self.log.info("# Step : Create BB Commander Project") + + self.add_bitbake_recipe(projectname, srcURI, description, recipelicense, recipename, pressPopulate=True) + self.log.info("# Step : Create BitBake Recipe") + + self.close_project() + self.log.info("# Step : Close Project") + + self.delete_project(projectname, typeproject) + self.log.info("# Step : Delete Project") + + self.close_perspective() + self.log.info("# Step : Close BitBake Commander perspective") + + + @testcase(159) + def test_159(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + poky = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + '/download/poky' + workspace = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/" + eclipse_version + '/workspace/' + kernelArch = inifile.getValue("settings-eclipse.ini", "TC159_Yocto-BSP", "Kernel_Arhitecture") + if (kernelArch == "qemu"): + qemuArch = inifile.getValue("settings-eclipse.ini", "TC159_Yocto-BSP", "Qemu_Arhitecture") + else: + qemuArch = "" + kernel = inifile.getValue("settings-eclipse.ini", "TC159_Yocto-BSP", "Kernel") + kernelBranch = inifile.getValue("settings-eclipse.ini", "TC159_Yocto-BSP", "Kernel_branch") + + projectNameId = datetime.now().strftime("%d-%m-%Y-%H:%M:%S") + projectName = 'BSP_' + projectNameId + + + self.log.info("################################################################################") + self.log.info("### TC 159 - Yocto-BSP tool ###") + self.log.info("################################################################################") + + + try: + YoctoProjectTools = eclipse.child(name = 'YoctoProjectTools', roleName = menu_rolename) + self.log.info("* Check : Found YoctoProjectTools menu") + + except: + self.fail("can not find YoctoProjectTools menu") + + + YoctoProjectTools.click() + self.log.info("# Step : Click on menu <<YoctoProjectTools>>") + time.sleep(2) + + + try: + YPTitem = YoctoProjectTools.child(name='yocto-bsp', roleName=menuitem_rolename) + self.log.info("* Check : Found <<yocto-bsp>> menu item") + + except: + self.fail("can not find yocto-bsp menu item") + + + YPTitem.click() + self.log.info("# Step : Click on menu item <<yocto-bsp>>") + + app = tree.root.application('Eclipse') + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + if (len(frames) == 0): + self.fail("can not find frames") + + + yoctoBsp = frames[1] + text = yoctoBsp.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + + text[0].click() + self.log.info("# Step : Click on box <<Metadata location>>") + text[0].text = poky + self.log.info("* Check : Insert Metadata location") + + + text[1].click() + self.log.info("# Step : Click on box <<Build location>>") + text[1].text = workspace + 'build' + projectName + self.log.info("* Check : Insert Build location") + + + text[2].click() + self.log.info("# Step : Click on box <<BSP Name>>") + text[2].text = projectName + self.log.info("* Check : Insert BSP Name") + + + text[3].click() + self.log.info("# Step : Click on box <<BSP output location>>") + text[3].text = workspace + 'output' + projectName + self.log.info("* Check : Insert BSP output location") + + + comboBox = yoctoBsp.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + if (len(comboBox) < 4): + self.fail("can not find combo boxes") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + else: + self.log.info("* Check : Found menu drop-down list Kernel Architecture") + + + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Kernel Architecture>>") + + try: + yoctoBsp.child(name=kernelArch, roleName=menuitem_rolename).click() + self.log.info("* Check : Found kernel architecture name menu item") + + except: + self.fail("can not find kernel architecture name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + comboBox[1].click() + self.log.info("# Step : Select <<qemu>>") + + print "sleep 4" + time.sleep(4) + + try: + if eclipse_version =='luna' or eclipse_version=='mars': + keyCombo("Down") + + pressKey("Enter") + + #yoctoBsp.child(name="i386", roleName='menu item').click() + self.log.info("* Check : Found qemu architecture name menu item") + self.log.info("# Step : Select Qemu Architecture <<x86_64>>") + except: + self.fail("can not find qemu architecture name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + try: + next = yoctoBsp.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + + except: + self.fail("can not find Next push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + time.sleep(2) + next.doubleClick() + self.log.info("# Step : Click <<Next>>") + else: + self.fail("Next push button not sensitive") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + comboBox[2].click() + self.log.info("* Check : Found kernel name menu item") + try: + yoctoBsp.child(name = kernel, roleName=menuitem_rolename).click() + time.sleep(6) + self.log.info("# Step : Select kernel<<linux-yocto_3.19>>") + except: + self.fail("can not find kernel name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + + comboBox[3].click() + self.log.info("* Check : Found kernel branch menu item") + + try: + yoctoBsp.child(kernelBranch, roleName=menuitem_rolename).click() + self.log.info("# Step : Select kernel branch <<standard/base>>") + except: + self.fail("can not find kernel name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + time.sleep(10) + + try: + finish = yoctoBsp.child(name = 'Finish', roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + + except: + self.fail("can not find Finish push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + finish.click() + self.log.info("# Step : Click <<Finish>>") + + newYoctoBSP = app.child(name = 'Yocto-BSP ', roleName = frame_rolename) + try: + ok = newYoctoBSP.child(name='OK', roleName = button_rolename) + self.log.info("* Check : Found OK push button") + + except: + self.fail("can not find OK push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = '&Cancel ', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("OK push button not sensitive") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + + if (os.path.exists(workspace + 'build' + projectName)): + self.log.info('# Step : Create ' + workspace + 'build' + projectName + "") + else: + self.log.info("error: " + workspace + 'build' + projectName + " not created") + + if (os.path.exists(workspace + 'output' + projectName)): + self.log.info('# Step : Create ' + workspace + 'output' + projectName + "") + else: + self.log.info("error: " + workspace + 'output' + projectName + " not created") + + + + @testcase(157) + def test_157(self): + + app = tree.root.application('Eclipse') + eclipse = app.child(roleName=frame_rolename) + + param1 = inifile.getValue("settings-eclipse.ini", "Run", "param1") + param2 = inifile.getValue("settings-eclipse.ini", "Run", "param2") + dateofrun = inifile.getValue("settings-eclipse.ini", "Run", "date") + eclipse_version= inifile.getValue("settings-eclipse.ini", "Run", "eclipse_version") + + poky = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + '/download/poky' + + workspace = '/home/' + getpass.getuser() + '/eclipse-run/' + "run-" + param1 + "-" + param2 + "-" + dateofrun + "/" + eclipse_version + '/workspace/' + kernelArch = inifile.getValue("settings-eclipse.ini", "TC157_Yocto-BSP", "Kernel_Arhitecture") + if (kernelArch == "qemu"): + qemuArch = inifile.getValue("settings-eclipse.ini", "TC157_Yocto-BSP", "Qemu_Arhitecture") + else: + qemuArch = "" + kernel = inifile.getValue("settings-eclipse.ini", "TC157_Yocto-BSP", "Kernel") + kernelBranch = inifile.getValue("settings-eclipse.ini", "TC157_Yocto-BSP", "Kernel_branch") + + projectNameId = datetime.now().strftime("%d-%m-%Y-%H:%M:%S") + projectName = 'BSP_' + projectNameId + + + self.log.info("################################################################################") + self.log.info("### TC 157 - Yocto-BSP tool ###") + self.log.info("################################################################################") + + + try: + YoctoProjectTools = eclipse.child(name = 'YoctoProjectTools', roleName = menu_rolename) + self.log.info("* Check : Found YoctoProjectTools menu") + except: + self.fail("can not find YoctoProjectTools menu") + + YoctoProjectTools.click() + self.log.info("# Step : Click on menu <<YoctoProjectTools>>") + time.sleep(2) + + + try: + YPTitem = YoctoProjectTools.child(name='yocto-bsp', roleName=menuitem_rolename) + self.log.info("* Check : Found <<yocto-bsp>> menu item") + + except: + self.fail("can not find yocto-bsp menu item") + + YPTitem.click() + self.log.info("# Step : Click on menu item <<yocto-bsp>>") + + + frames = app.findChildren(predicate.GenericPredicate(roleName = frame_rolename)) + if (len(frames) == 0): + self.fail("can not find frames") + + yoctoBsp = frames[1] + text = yoctoBsp.findChildren(predicate.GenericPredicate(roleName = text_rolename)) + + message_with_empty_metadata_location = 'Enter the required fields(with *) to create new Yocto Project BSP!' + + text[0].click() + self.log.info("# Step : Click on box <<Metadata location>>") + #text[0].text = wrong_poky_path + self.log.info("* Check : Insert Metadata location") + + + if text[4].text == message_with_empty_metadata_location: + self.log.info("* Check : Found message: %s" %(message_with_empty_metadata_location)) + else: + self.fail("can not find %s" %(message_with_empty_metadata_location)) + + + message_with_invalid_metadata_location = ' Invalid meta data location: Make sure it exists and is a directory!' + + text[0].click() + self.log.info("# Step : Click on box <<Metadata location>>") + text[0].text = "dsadasdasd" + self.log.info("* Check : Insert Metadata location") + + + if text[4].text == message_with_invalid_metadata_location: + self.log.info("* Check : Found message: %s" %(message_with_invalid_metadata_location)) + else: + self.fail("can not find %s" %(message_with_invalid_metadata_location)) + + + wrong_poky_path = '"/home/scripts"' + message_with_no_poky_in_metadata_location = ' Make sure yocto-bsp exists under %s and is executable!' %(wrong_poky_path) + + text[0].click() + self.log.info("# Step : Click on box <<Metadata location>>") + text[0].text = "/home" + self.log.info("* Check : Insert Metadata location") + + if text[4].text == message_with_no_poky_in_metadata_location: + self.log.info("* Check : Found message: %s" %(message_with_no_poky_in_metadata_location)) + else: + self.fail("can not find %s" %(message_with_no_poky_in_metadata_location)) + + + text[0].click() + self.log.info("# Step : Click on box <<Metadata location>>") + text[0].text = poky + self.log.info("* Check : Insert Metadata location") + + text[2].click() + self.log.info("# Step : Click on box <<BSP Name>>") + text[2].text = projectName + self.log.info("* Check : Insert BSP Name") + + comboBox = yoctoBsp.findChildren(predicate.GenericPredicate(roleName=combobox_rolename)) + if (len(comboBox) < 4): + self.fail("can not find combo boxes") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + else: + self.log.info("* Check : Found menu drop-down list Kernel Architecture") + + + comboBox[0].click() + self.log.info("# Step : Click on menu drop-down list <<Kernel Architecture>>") + + try: + yoctoBsp.child(name=kernelArch, roleName=menuitem_rolename).click() + self.log.info("* Check : Found kernel architecture name menu item") + + except: + self.fail("can not find kernel architecture name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + comboBox[1].click() + self.log.info("# Step : Select <<qemu>>") + + print "sleep de 4" + time.sleep(4) + + try: + if eclipse_version =='luna' or eclipse_version=='mars': + keyCombo("Down") + + pressKey("Enter") + + #yoctoBsp.child(name="i386", roleName='menu item').click() + self.log.info("* Check : Found qemu architecture name menu item") + self.log.info("# Step : Select Qemu Architecture <<x86_64>>") + except: + self.fail("can not find qemu architecture name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + try: + next = yoctoBsp.child(name = next_button, roleName = button_rolename) + self.log.info("* Check : Found Next push button") + + except: + self.fail("can not find Next push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + if (next.sensitive): + self.log.info("* Check : Found Next push button sensitive") + time.sleep(2) + next.doubleClick() + self.log.info("# Step : Click <<Next>>") + else: + self.fail("Next push button not sensitive") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + + comboBox[2].click() + self.log.info("* Check : Found kernel name menu item") + try: + yoctoBsp.child(name = kernel, roleName=menuitem_rolename).click() + time.sleep(6) + self.log.info("# Step : Select kernel<<linux-yocto_4.1>>") + except: + self.fail("can not find kernel name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + time.sleep(2) + cancel_close.click() + + comboBox[3].click() + self.log.info("* Check : Found kernel branch menu item") + + try: + yoctoBsp.child(kernelBranch, roleName=menuitem_rolename).click() + self.log.info("# Step : Select kernel branch <<standard/base>>") + except: + self.fail("can not find kernel name menu item") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + time.sleep(10) + + try: + finish = yoctoBsp.child(name = 'Finish', roleName = button_rolename) + self.log.info("* Check : Found Finish push button") + + except: + self.fail("can not find Finish push button") + self.log.warning("# Warning : Click <<Cancel>> and jump to next step") + cancel_close = yoctoBsp.child(name = 'Cancel', roleName = button_rolename) + if (cancel_close.sensitive): + cancel_close.click() + + finish.click() + self.log.info("# Step : Click <<Finish>>") + + newYoctoBSP = app.child(name = 'Yocto-BSP ', roleName = frame_rolename) + try: + ok = newYoctoBSP.child(name='OK', roleName = button_rolename) + self.log.info("* Check : Found OK push button") + + except: + self.fail("can not find OK push button") + + if (ok.sensitive): + self.log.info("* Check : Found OK push button sensitive") + ok.click() + self.log.info("# Step : Click <<OK>>") + else: + self.fail("OK push button not sensitive") + + if (os.path.exists(poky + '/meta-' + projectName)): + self.log.info('# Step : Create ' + poky + '/meta-' + projectName + "") + else: + self.fail("error: " + poky + 'meta-' + projectName + " not created") + + @testcase(31) + def test_31(self): + + + self.log.info("#############################################################################") + self.log.info("### TC 31 - Linux tools - Perf ###") + self.log.info("#############################################################################") + + linuxToolsItem = perf_item + linuxToolsFrame = perf_frame + + self.connection_for_linux_tools(linuxToolsItem, linuxToolsFrame) + self.log.info("# Step : New SSH connection for %s" %(linuxToolsItem)) + + keyCombo("Enter") + time.sleep(4) + + typeText("perf top") + time.sleep(4) + keyCombo("Enter") + + @testcase(32) + def test_32(self): + + linuxToolsItem = powertop_item + linuxToolsFrame = powertop_frame + + + self.log.info("#############################################################################") + self.log.info("### TC 32 - Linux tools - PowerTop ###") + self.log.info("#############################################################################") + + self.connection_for_linux_tools(linuxToolsItem, linuxToolsFrame) + self.log.info("# Step : New SSH connection for" +linuxToolsItem) + + + + + |