| # -*-coding:utf-8 -* |
| |
| # Copyright (c) 2011-2015, Intel Corporation |
| # All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without modification, |
| # are permitted provided that the following conditions are met: |
| # |
| # 1. Redistributions of source code must retain the above copyright notice, this |
| # list of conditions and the following disclaimer. |
| # |
| # 2. Redistributions in binary form must reproduce the above copyright notice, |
| # this list of conditions and the following disclaimer in the documentation and/or |
| # other materials provided with the distribution. |
| # |
| # 3. Neither the name of the copyright holder nor the names of its contributors |
| # may be used to endorse or promote products derived from this software without |
| # specific prior written permission. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
| # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
| # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR |
| # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| """ |
| Export and import settings and domains from file testcases |
| |
| List of tested functions : |
| -------------------------- |
| - [exportDomainsWithSettingsXML] function |
| - [importDomainsWithSettingsXML] function |
| - [exportDomainsXML] function |
| - [importDomainsXML] function |
| |
| Test cases : |
| ------------ |
| - Testing importDomainsWithSettingsXML nominal case |
| - Testing exportDomainsWithSettingsXML nominal case |
| - Testing exportDomainsXML/importDomainsXML nominal case |
| - Testing import errors |
| - Testing export errors |
| """ |
| import os, commands |
| import unittest |
| from Util.PfwUnitTestLib import PfwTestCase |
| from Util import ACTLogging |
| log=ACTLogging.Logger() |
| |
| class TestCases(PfwTestCase): |
| |
| def setUp(self): |
| |
| self.pfw.sendCmd("setTuningMode", "on") |
| self.param_name_01 = "/Test/Test/TEST_DIR/UINT16" |
| self.filesystem_01 = os.environ["PFW_RESULT"] + "/UINT16" |
| self.param_name_02 = "/Test/Test/TEST_DOMAIN_0/Param_00" |
| self.filesystem_02 = os.environ["PFW_RESULT"] + "/Param_00" |
| self.param_name_03 = "/Test/Test/TEST_DOMAIN_1/Param_12" |
| self.filesystem_03 = os.environ["PFW_RESULT"] + "/Param_12" |
| |
| pfw_test_tools=os.environ["PFW_TEST_TOOLS"] |
| self.reference_xml = pfw_test_tools+"/xml/XML_Test/Reference_Compliant.xml" |
| self.initial_xml = pfw_test_tools+"/xml/TestConfigurableDomains.xml" |
| self.temp_config="f_Config_Backup" |
| self.temp_domain="f_Domains_Backup" |
| self.temp_xml=pfw_test_tools+"/f_temp.xml" |
| |
| self.nb_domains_in_reference_xml=3 |
| self.nb_conf_per_domains_in_reference_xml=[2,2,2] |
| |
| def tearDown(self): |
| self.pfw.sendCmd("setTuningMode", "off", expectSuccess=None) |
| if os.path.exists(self.temp_domain): |
| os.remove(self.temp_domain) |
| if os.path.exists(self.temp_config): |
| os.remove(self.temp_config) |
| if os.path.exists(self.temp_xml): |
| os.remove(self.temp_xml) |
| |
| def test_01_importDomainsWithSettingsXML_Nominal_Case(self): |
| """ |
| Testing importDomainsWithSettingsXML nominal case |
| ------------------------------------------------- |
| Test case description : |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| - import a reference XML |
| - check Domains |
| - check Configuration |
| - restore Configuration |
| - check Parameters |
| Tested commands : |
| ~~~~~~~~~~~~~~~~~ |
| - [createConfiguration] function |
| Used commands : |
| ~~~~~~~~~~~~~~~ |
| - [restoreConfiguration] function |
| - [listDomains] function |
| - [listConfiguration] function |
| - [getRules] function |
| - [getParameter] function |
| Expected result : |
| ~~~~~~~~~~~~~~~~~ |
| - all operations succeed |
| """ |
| log.D(self.test_01_importDomainsWithSettingsXML_Nominal_Case.__doc__) |
| |
| #Import a reference XML file |
| log.I("Import Domains with settings from %s"%(self.reference_xml)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "") |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml)) |
| |
| #Check number of domain(3 domains are setup in the reference XML, initially only one domains is declared) |
| # Domains listing using "listDomains" command |
| log.I("Current domains listing") |
| log.I("Command [listDomains]") |
| out, err = self.pfw.sendCmd("listDomains","","") |
| assert err == None, log.E("Command [listDomains] : %s"%(err)) |
| log.I("Command [listDomains] - correctly executed") |
| # Domains listing backup |
| domainBackup = out.strip('\r\n').splitlines() |
| log.I("Actual domains: %s" % domainBackup) |
| assert len(domainBackup)==self.nb_domains_in_reference_xml, log.F("Number of listed domains is not compliant with the file %s - expected : %s domains, found domains %s"%(self.reference_xml,self.nb_domains_in_reference_xml, domainBackup)) |
| |
| #Check number of config per domain(2 config per domains are setup in the reference XML) |
| # Config listing |
| domain_basename="Domain_" |
| for index in range(self.nb_domains_in_reference_xml): |
| domain_name=domain_basename+str(index+1) |
| log.I("Listing config for domain %s"%(domain_name)) |
| out, err = self.pfw.sendCmd("listConfigurations",domain_name,"") |
| assert err == None, log.E("Command [listConfigurations %s] : %s"%(domain_name,err)) |
| log.I("Command [listConfigurations %s] - correctly executed"%(domain_name)) |
| f_Config_Backup = open(self.temp_config, "w") |
| f_Config_Backup.write(out.strip('\r\n')) |
| f_Config_Backup.close() |
| f_Config_Backup = open(self.temp_config, "r") |
| config_nbr = 0 |
| line=f_Config_Backup.readline() |
| while line!="": |
| line=f_Config_Backup.readline() |
| config_nbr+=1 |
| f_Config_Backup.close() |
| assert config_nbr==self.nb_conf_per_domains_in_reference_xml[index], log.F("Number of listed config for %s is not compliant with the file %s - expected : %s - found : %s"%(domain_name, self.reference_xml,self.nb_conf_per_domains_in_reference_xml[index], config_nbr)) |
| log.I("Config checking : OK") |
| |
| #Check number of config per domain(2 config per domains are setup in the reference XML) |
| # Config listing |
| conf_basename="Conf_" |
| for index_domain in range(3): |
| for index_conf in range(2): |
| domain_name=domain_basename+str(index_domain+1) |
| conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf) |
| log.I("Get rule for domain %s - conf %s"%(domain_name,conf_name)) |
| out, err = self.pfw.sendCmd("getRule",domain_name,conf_name) |
| assert err == None, log.E("Command [getRules %s %s] : %s"%(domain_name,conf_name,err)) |
| assert out !="", log.F("No rules loaded for domain %s conf %s"%(domain_name,conf_name)) |
| log.I("Rules checking : OK") |
| |
| #Restore config |
| conf_basename="Conf_" |
| for index_domain in range(3): |
| for index_conf in range(2): |
| domain_name=domain_basename+str(index_domain+1) |
| conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf) |
| log.I("Restore config %s for domain %s"%(conf_name,domain_name)) |
| out, err = self.pfw.sendCmd("restoreConfiguration",domain_name,conf_name) |
| assert err == None, log.E("Command [restoreConfiguration %s %s] : %s"%(domain_name,conf_name,err)) |
| assert out =="Done", log.F("When restoring configuration %s for domain %s"%(conf_name,domain_name)) |
| log.I("Restore configurations: OK") |
| |
| #set Tuning Mode off to check parameter value |
| self.pfw.sendCmd("setTuningMode", "off") |
| |
| #Check parameter values |
| #UINT16 |
| expected_value="0" |
| hex_value="0x0" |
| log.I("UINT16 parameter in the conf Conf_1_1= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| expected_value="4" |
| hex_value="0x4" |
| log.I("Param_00 parameter in the conf Conf_2_1= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| expected_value="4" |
| hex_value="0x4" |
| log.I("Param_12 parameter in the conf Conf_3_1= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| log.I("Parameters checking : OK") |
| |
| def test_02_exportDomainsWithSettingsXML_Nominal_Case(self): |
| """ |
| Testing exportDomainsWithSettingsXML nominal case |
| ------------------------------------------------- |
| Test case description : |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| - export domains with settings in temp XML |
| - import a reference XML |
| - restore Configuration |
| - import the temp XML |
| - restore Configuration |
| - check Domains |
| - check Configuration |
| - check Parameters |
| Tested commands : |
| ~~~~~~~~~~~~~~~~~ |
| - [exportDomainsWithSettingsXML] function |
| - [importDomainsWithSettingsXML] function |
| Used commands : |
| ~~~~~~~~~~~~~~~ |
| - [restoreConfiguration] function |
| - [listDomains] function |
| - [listConfiguration] function |
| - [getRules] function |
| - [getParameter] function |
| Expected result : |
| ~~~~~~~~~~~~~~~~~ |
| - all operations succeed |
| """ |
| log.D(self.test_02_exportDomainsWithSettingsXML_Nominal_Case.__doc__) |
| |
| ### INIT Domains Settings #### |
| |
| #Import a reference XML file |
| |
| log.I("Import Domains with initial settings from %s"%(self.reference_xml)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "") |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| init_filesystem_01 = open(self.filesystem_01).read()[:-1] |
| init_filesystem_02 = open(self.filesystem_02).read()[:-1] |
| init_filesystem_03 = open(self.filesystem_03).read()[:-1] |
| |
| ### END OF INIT ### |
| |
| #Export in a temp XML file |
| log.I("Export Domains with initial settings in %s"%(self.temp_xml)) |
| out, err = self.pfw.sendCmd("exportDomainsWithSettingsXML",self.temp_xml, "") |
| assert err == None, log.E("Command [exportDomainsWithSettingsXML %s] : %s"%(self.temp_xml,err)) |
| assert out == "Done", log.F("When using function exportDomainsWithSettingsXML %s]"%(self.temp_xml)) |
| |
| #Change the value of checked parameters |
| self.pfw.sendCmd("setTuningMode", "on","") |
| out, err = self.pfw.sendCmd("setParameter", self.param_name_01, str(int(init_value_01)+1)) |
| out, err = self.pfw.sendCmd("setParameter", self.param_name_02, str(int(init_value_02)+1)) |
| out, err = self.pfw.sendCmd("setParameter", self.param_name_03, str(int(init_value_03)+1)) |
| #save config |
| domain_basename="Domain_" |
| conf_basename="Conf_" |
| for index_domain in range(3): |
| for index_conf in range(2): |
| domain_name=domain_basename+str(index_domain+1) |
| conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf) |
| log.I("Save config %s for domain %s"%(conf_name,domain_name)) |
| out, err = self.pfw.sendCmd("saveConfiguration",domain_name,conf_name) |
| assert err == None, log.E("Command [saveConfiguration %s %s] : %s"%(domain_name,conf_name,err)) |
| assert out =="Done", log.F("When saving configuration %s for domain %s"%(conf_name,domain_name)) |
| log.I("Save configurations: OK") |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #Check parameter values |
| #UINT16 |
| expected_value=str(int(init_value_01)+1) |
| log.I("UINT16 parameter = %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| expected_value=str(int(init_value_02)+1) |
| log.I("Param_00 parameter= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| expected_value=str(int(init_value_03)+1) |
| log.I("Param_12 parameter= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| |
| #Import the temp XML file |
| self.pfw.sendCmd("setTuningMode", "on","") |
| log.I("Import Domains with settings from %s"%(self.temp_xml)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.temp_xml, "") |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.temp_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.temp_xml)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #Check parameter values |
| #UINT16 |
| expected_value=init_value_01 |
| log.I("UINT16 parameter = %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] == init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| expected_value=init_value_02 |
| log.I("Param_00 parameter= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] == init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| expected_value=init_value_03 |
| log.I("Param_12 parameter= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] == init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| |
| def test_03_exportImportXML_withoutSettings_Nominal_Case(self): |
| """ |
| Testing exportDomainsXML/importDomainsXML nominal case |
| ------------------------------------------------------ |
| Test case description : |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| - export domains in temp XML |
| - import a reference XML |
| - restore Configuration |
| - import the temp XML |
| - restore Configuration |
| - check Domains |
| - check Configuration |
| - check Parameters |
| Tested commands : |
| ~~~~~~~~~~~~~~~~~ |
| - [exportDomainsXML] function |
| - [importDomainsWithSettingsXML] function |
| - [importDomainsXML] function |
| Used commands : |
| ~~~~~~~~~~~~~~~ |
| - [restoreConfiguration] function |
| - [listDomains] function |
| - [listConfiguration] function |
| - [getRules] function |
| - [getParameter] function |
| Expected result : |
| ~~~~~~~~~~~~~~~~~ |
| - all operations succeed |
| - parameter must not change |
| """ |
| log.D(self.test_03_exportImportXML_withoutSettings_Nominal_Case.__doc__) |
| |
| ### INIT Domains Settings #### |
| |
| #Import a reference XML file |
| |
| log.I("Import Domains with initial settings from %s"%(self.reference_xml)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "") |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| init_filesystem_01 = open(self.filesystem_01).read()[:-1] |
| init_filesystem_02 = open(self.filesystem_02).read()[:-1] |
| init_filesystem_03 = open(self.filesystem_03).read()[:-1] |
| |
| ### END OF INIT ### |
| |
| #Export domains without settings in a temp XML file |
| log.I("Export Domains without initial settings in %s"%(self.temp_xml)) |
| out, err = self.pfw.sendCmd("exportDomainsXML",self.temp_xml, "") |
| assert err == None, log.E("Command [exportDomainsXML %s] : %s"%(self.temp_xml,err)) |
| assert out == "Done", log.F("When using function exportDomainsXML %s]"%(self.temp_xml)) |
| |
| #Change the value of checked parameters |
| self.pfw.sendCmd("setTuningMode", "on","") |
| out, err = self.pfw.sendCmd("setParameter", self.param_name_01, str(int(init_value_01)+1)) |
| out, err = self.pfw.sendCmd("setParameter", self.param_name_02, str(int(init_value_02)+1)) |
| out, err = self.pfw.sendCmd("setParameter", self.param_name_03, str(int(init_value_03)+1)) |
| #save config |
| domain_basename="Domain_" |
| conf_basename="Conf_" |
| for index_domain in range(3): |
| for index_conf in range(2): |
| domain_name=domain_basename+str(index_domain+1) |
| conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf) |
| log.I("Save config %s for domain %s"%(conf_name,domain_name)) |
| out, err = self.pfw.sendCmd("saveConfiguration",domain_name,conf_name) |
| assert err == None, log.E("Command [saveConfiguration %s %s] : %s"%(domain_name,conf_name,err)) |
| assert out =="Done", log.F("When saving configuration %s for domain %s"%(conf_name,domain_name)) |
| log.I("Save configurations: OK") |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #Check parameter values |
| #UINT16 |
| expected_value=str(int(init_value_01)+1) |
| log.I("UINT16 parameter = %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| expected_value=str(int(init_value_02)+1) |
| log.I("Param_00 parameter= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| expected_value=str(int(init_value_03)+1) |
| log.I("Param_12 parameter= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| |
| #Import the temp XML file without |
| self.pfw.sendCmd("setTuningMode", "on","") |
| log.I("Import Domains without settings from %s"%(self.temp_xml)) |
| out, err = self.pfw.sendCmd("importDomainsXML",self.temp_xml, "") |
| assert err == None, log.E("Command [importDomainsXML %s] : %s"%(self.temp_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsXML %s]"%(self.temp_xml)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #Check parameter values |
| #UINT16 |
| unexpected_value=init_value_01 |
| log.I("UINT16 parameter = %s"%(unexpected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_01, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| unexpected_value=init_value_02 |
| log.I("Param_00 parameter= %s"%(unexpected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_02, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| unexpected_value=init_value_03 |
| log.I("Param_12 parameter= %s"%(unexpected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s"% (self.param_name_03, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| |
| #Import the reference_XML file without settings |
| self.pfw.sendCmd("setTuningMode", "on","") |
| log.I("Import Domains without settings from %s"%(self.reference_xml)) |
| out, err = self.pfw.sendCmd("importDomainsXML",self.reference_xml, "") |
| assert err == None, log.E("Command [importDomainsXML %s] : %s"%(self.reference_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsXML %s]"%(self.reference_xml)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #Check parameter values |
| #UINT16 |
| unexpected_value=init_value_01 |
| log.I("UINT16 parameter = %s"%(unexpected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_01, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| unexpected_value=init_value_02 |
| log.I("Param_00 parameter= %s"%(unexpected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_02, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| unexpected_value=init_value_03 |
| log.I("Param_12 parameter= %s"%(unexpected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_03, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| |
| @unittest.expectedFailure |
| def test_05_Import_XML_With_Settings_Error_Case(self): |
| """ |
| Testing importDomainsWithSettingsXML error case |
| ----------------------------------------------- |
| Test case description : |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| - import with settings non-compliant XML |
| - import with settings a non-existing XML file |
| - check Domains |
| - check Configuration |
| - check Parameters |
| Tested commands : |
| ~~~~~~~~~~~~~~~~~ |
| - [importDomainsWithSettingsXML] function |
| - [importDomainsXML] function |
| Used commands : |
| ~~~~~~~~~~~~~~~ |
| - [restoreConfiguration] function |
| - [listDomains] function |
| - [listConfiguration] function |
| - [getRules] function |
| - [getParameter] function |
| Expected result : |
| ~~~~~~~~~~~~~~~~~ |
| - all errors are detected, initial domains keep settings |
| """ |
| log.D(self.test_05_Import_XML_With_Settings_Error_Case.__doc__) |
| |
| ### INIT Domains Settings #### |
| #Import a reference XML file |
| |
| log.I("Import Domains with initial settings from %s"%(self.reference_xml)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "") |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml)) |
| |
| self.pfw.sendCmd("setTuningMode", "off","") |
| init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| init_filesystem_01 = open(self.filesystem_01).read()[:-1] |
| init_filesystem_02 = open(self.filesystem_02).read()[:-1] |
| init_filesystem_03 = open(self.filesystem_03).read()[:-1] |
| xml_path=os.environ["PFW_TEST_TOOLS"] + "/xml/XML_Test/" |
| ### END OF INIT ### |
| |
| self.pfw.sendCmd("setTuningMode", "on","") |
| #Import domains and settings from xml with outbound parameter value |
| xml_name="Uncompliant_OutboundParameter.xml" |
| log.I("Import %s with initial settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains and settings from xml using undeclared configurable element |
| xml_name="Uncompliant_UndeclaredConfigurableElement.xml" |
| log.I("Import %s with initial settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains and settings from xml using undeclared parameter |
| xml_name="Uncompliant_UndeclaredParameter.xml" |
| log.I("Import %s with initial settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains and settings from xml using wrong order of configurable element |
| xml_name="Uncompliant_UnorderConfigurableElement.xml" |
| log.I("Import %s with initial settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains and settings from unexistent xml |
| xml_name="Unexistent.xml" |
| log.I("Import %s with initial settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #### check domains and settings #### |
| |
| #Check number of domain(3 domains are setup in the reference XML, initially only one domains is declared) |
| # Domains listing using "listDomains" command |
| log.I("Current domains listing") |
| log.I("Command [listDomains]") |
| out, err = self.pfw.sendCmd("listDomains","","") |
| assert err == None, log.E("Command [listDomains] : %s"%(err)) |
| log.I("Command [listDomains] - correctly executed") |
| # Domains listing backup |
| f_Domains_Backup = open(self.temp_domain, "w") |
| f_Domains_Backup.write(out.strip('\r\n')) |
| f_Domains_Backup.close() |
| f_Domains_Backup = open(self.temp_domain, "r") |
| domains_nbr = 0 |
| line=f_Domains_Backup.readline() |
| while line!="": |
| line=f_Domains_Backup.readline() |
| domains_nbr+=1 |
| f_Domains_Backup.close() |
| log.I("Actual domains number : %s" % domains_nbr) |
| assert domains_nbr==self.nb_domains_in_reference_xml, log.F("Number of listed domains is not compliant with the file %s - expected : %s - found : %s"%(self.reference_xml,self.nb_domains_in_reference_xml, domains_nbr)) |
| #Check number of config per domain(2 config per domains are setup in the reference XML) |
| # Config listing |
| domain_basename="Domain_" |
| for index in range(self.nb_domains_in_reference_xml): |
| domain_name=domain_basename+str(index+1) |
| log.I("Listing config for domain %s"%(domain_name)) |
| out, err = self.pfw.sendCmd("listConfigurations",domain_name,"") |
| assert err == None, log.E("Command [listConfigurations %s] : %s"%(domain_name,err)) |
| log.I("Command [listConfigurations %s] - correctly executed"%(domain_name)) |
| f_Config_Backup = open(self.temp_config, "w") |
| f_Config_Backup.write(out.strip('\r\n')) |
| f_Config_Backup.close() |
| f_Config_Backup = open(self.temp_config, "r") |
| config_nbr = 0 |
| line=f_Config_Backup.readline() |
| while line!="": |
| line=f_Config_Backup.readline() |
| config_nbr+=1 |
| f_Config_Backup.close() |
| assert config_nbr==self.nb_conf_per_domains_in_reference_xml[index], log.F("Number of listed config for %s is not compliant with the file %s - expected : %s - found : %s"%(domain_name, self.reference_xml,self.nb_conf_per_domains_in_reference_xml[index], domains_nbr)) |
| log.I("Config checking : OK") |
| #Check parameter values |
| #UINT16 |
| expected_value=init_value_01 |
| hex_value=init_filesystem_01 |
| log.I("UINT16 parameter in the conf Conf_1_1= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_01).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) |
| #Param_00 |
| expected_value=init_value_02 |
| hex_value=init_filesystem_02 |
| log.I("Param_00 parameter in the conf Conf_2_1= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_02).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) |
| #Param_12 |
| expected_value=init_value_03 |
| hex_value=init_filesystem_03 |
| log.I("Param_12 parameter in the conf Conf_3_1= %s"%(expected_value)) |
| out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") |
| assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err)) |
| assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out)) |
| #Check parameter value on filesystem |
| assert open(self.filesystem_03).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) |
| log.I("Parameters checking : OK") |
| |
| #### END check domains and settings #### |
| |
| |
| @unittest.expectedFailure |
| def test_06_Import_XML_Without_Settings_Error_Case(self): |
| """ |
| Testing import XML without settings error case |
| ---------------------------------------------- |
| Test case description : |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| - import non-compliant XML |
| - import a non-existing XML files |
| - import a reference XML |
| - check Domains |
| - check Configuration |
| - check Parameters |
| Tested commands : |
| ~~~~~~~~~~~~~~~~~ |
| - [importDomainsWithSettingsXML] function |
| - [importDomainsXML] function |
| Used commands : |
| ~~~~~~~~~~~~~~~ |
| - [restoreConfiguration] function |
| - [listDomains] function |
| - [listConfiguration] function |
| - [getRules] function |
| - [getParameter] function |
| Expected result : |
| ~~~~~~~~~~~~~~~~~ |
| - all errors are detected, initial domains keep settings |
| """ |
| log.D(self.test_06_Import_XML_Without_Settings_Error_Case.__doc__) |
| |
| ### INIT Domains Settings #### |
| #Import a reference XML file |
| |
| log.I("Import Domains with initial settings from %s"%(self.reference_xml)) |
| out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "") |
| assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err)) |
| assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml)) |
| |
| self.pfw.sendCmd("setTuningMode", "off","") |
| xml_path=os.environ["PFW_TEST_TOOLS"] + "/xml/XML_Test/" |
| ### END OF INIT ### |
| |
| self.pfw.sendCmd("setTuningMode", "on","") |
| #Import domains from xml with outbound parameter value |
| xml_name="Uncompliant_OutboundParameter.xml" |
| log.I("Import %s without settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains from xml using undeclared configurable element |
| xml_name="Uncompliant_UndeclaredConfigurableElement.xml" |
| log.I("Import %s without settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains from xml using undeclared parameter |
| #xml_name="Uncompliant_UndeclaredParameter.xml" |
| #log.I("Import %s without settings"%(xml_name)) |
| #out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False) |
| #assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err)) |
| #assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| #log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains from xml using wrong order of configurable element |
| xml_name="Uncompliant_UnorderConfigurableElement.xml" |
| log.I("Import %s without settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| #Import domains from unexistent xml |
| xml_name="Unexistent.xml" |
| log.I("Import %s without settings"%(xml_name)) |
| out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False) |
| assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err)) |
| assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name)) |
| log.I("Test OK : %s is not imported"%(xml_name)) |
| self.pfw.sendCmd("setTuningMode", "off","") |
| |
| #### check domains and settings #### |
| |
| #Check number of domain(3 domains are setup in the reference XML, initially only one domains is declared) |
| # Domains listing using "listDomains" command |
| log.I("Current domains listing") |
| log.I("Command [listDomains]") |
| out, err = self.pfw.sendCmd("listDomains","","") |
| assert err == None, log.E("Command [listDomains] : %s"%(err)) |
| log.I("Command [listDomains] - correctly executed") |
| # Domains listing backup |
| f_Domains_Backup = open(self.temp_domain, "w") |
| f_Domains_Backup.write(out.strip('\r\n')) |
| f_Domains_Backup.close() |
| f_Domains_Backup = open(self.temp_domain, "r") |
| domains_nbr = 0 |
| line=f_Domains_Backup.readline() |
| while line!="": |
| line=f_Domains_Backup.readline() |
| domains_nbr+=1 |
| f_Domains_Backup.close() |
| log.I("Actual domains number : %s" % domains_nbr) |
| assert domains_nbr==self.nb_domains_in_reference_xml, log.F("Number of listed domains is not compliant with the file %s - expected %s domains, found domains: %s"%(self.reference_xml,self.nb_domains_in_reference_xml, domains_nbr)) |
| #Check number of config per domain(2 config per domains are setup in the reference XML) |
| # Config listing |
| domain_basename="Domain_" |
| for index in range(self.nb_domains_in_reference_xml): |
| domain_name=domain_basename+str(index+1) |
| log.I("Listing config for domain %s"%(domain_name)) |
| out, err = self.pfw.sendCmd("listConfigurations",domain_name,"") |
| assert err == None, log.E("Command [listConfigurations %s] : %s"%(domain_name,err)) |
| log.I("Command [listConfigurations %s] - correctly executed"%(domain_name)) |
| f_Config_Backup = open(self.temp_config, "w") |
| f_Config_Backup.write(out.strip('\r\n')) |
| f_Config_Backup.close() |
| f_Config_Backup = open(self.temp_config, "r") |
| config_nbr = 0 |
| line=f_Config_Backup.readline() |
| while line!="": |
| line=f_Config_Backup.readline() |
| config_nbr+=1 |
| f_Config_Backup.close() |
| assert config_nbr==self.nb_conf_per_domains_in_reference_xml[index], log.F("Number of listed config for %s is not compliant with the file %s - expected : %s - found : %s"%(domain_name, self.reference_xml,self.nb_conf_per_domains_in_reference_xml[index], domains_nbr)) |
| log.I("Config checking : OK") |
| |
| #### END check domains and settings #### |