Home | History | Annotate | Download | only in Functions
      1 # -*-coding:utf-8 -*
      2 
      3 # Copyright (c) 2011-2015, Intel Corporation
      4 # All rights reserved.
      5 #
      6 # Redistribution and use in source and binary forms, with or without modification,
      7 # are permitted provided that the following conditions are met:
      8 #
      9 # 1. Redistributions of source code must retain the above copyright notice, this
     10 # list of conditions and the following disclaimer.
     11 #
     12 # 2. Redistributions in binary form must reproduce the above copyright notice,
     13 # this list of conditions and the following disclaimer in the documentation and/or
     14 # other materials provided with the distribution.
     15 #
     16 # 3. Neither the name of the copyright holder nor the names of its contributors
     17 # may be used to endorse or promote products derived from this software without
     18 # specific prior written permission.
     19 #
     20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
     21 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     22 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     23 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
     24 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     25 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     26 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
     27 # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     29 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     30 
     31 """
     32 Export and import settings and domains from file testcases
     33 
     34 List of tested functions :
     35 --------------------------
     36     - [exportDomainsWithSettingsXML]  function
     37     - [importDomainsWithSettingsXML] function
     38     - [exportDomainsXML] function
     39     - [importDomainsXML] function
     40 
     41 Test cases :
     42 ------------
     43     - Testing importDomainsWithSettingsXML nominal case
     44     - Testing exportDomainsWithSettingsXML nominal case
     45     - Testing exportDomainsXML/importDomainsXML nominal case
     46     - Testing import errors
     47     - Testing export errors
     48 """
     49 import os, commands
     50 import unittest
     51 from Util.PfwUnitTestLib import PfwTestCase
     52 from Util import ACTLogging
     53 log=ACTLogging.Logger()
     54 
     55 class TestCases(PfwTestCase):
     56 
     57     def setUp(self):
     58 
     59         self.pfw.sendCmd("setTuningMode", "on")
     60         self.param_name_01 = "/Test/Test/TEST_DIR/UINT16"
     61         self.filesystem_01 = os.environ["PFW_RESULT"] + "/UINT16"
     62         self.param_name_02 = "/Test/Test/TEST_DOMAIN_0/Param_00"
     63         self.filesystem_02 = os.environ["PFW_RESULT"] + "/Param_00"
     64         self.param_name_03 = "/Test/Test/TEST_DOMAIN_1/Param_12"
     65         self.filesystem_03 = os.environ["PFW_RESULT"] + "/Param_12"
     66 
     67         pfw_test_tools=os.environ["PFW_TEST_TOOLS"]
     68         self.reference_xml = pfw_test_tools+"/xml/XML_Test/Reference_Compliant.xml"
     69         self.initial_xml = pfw_test_tools+"/xml/TestConfigurableDomains.xml"
     70         self.temp_config="f_Config_Backup"
     71         self.temp_domain="f_Domains_Backup"
     72         self.temp_xml=pfw_test_tools+"/f_temp.xml"
     73 
     74         self.nb_domains_in_reference_xml=3
     75         self.nb_conf_per_domains_in_reference_xml=[2,2,2]
     76 
     77     def tearDown(self):
     78         self.pfw.sendCmd("setTuningMode", "off", expectSuccess=None)
     79         if os.path.exists(self.temp_domain):
     80             os.remove(self.temp_domain)
     81         if os.path.exists(self.temp_config):
     82             os.remove(self.temp_config)
     83         if os.path.exists(self.temp_xml):
     84             os.remove(self.temp_xml)
     85 
     86     def test_01_importDomainsWithSettingsXML_Nominal_Case(self):
     87         """
     88         Testing importDomainsWithSettingsXML nominal case
     89         -------------------------------------------------
     90             Test case description :
     91             ~~~~~~~~~~~~~~~~~~~~~~~
     92                 - import a reference XML
     93                 - check Domains
     94                 - check Configuration
     95                 - restore Configuration
     96                 - check Parameters
     97             Tested commands :
     98             ~~~~~~~~~~~~~~~~~
     99                 - [createConfiguration] function
    100             Used commands :
    101             ~~~~~~~~~~~~~~~
    102                 - [restoreConfiguration] function
    103                 - [listDomains] function
    104                 - [listConfiguration] function
    105                 - [getRules] function
    106                 - [getParameter] function
    107             Expected result :
    108             ~~~~~~~~~~~~~~~~~
    109                 - all operations succeed
    110         """
    111         log.D(self.test_01_importDomainsWithSettingsXML_Nominal_Case.__doc__)
    112 
    113         #Import a reference XML file
    114         log.I("Import Domains with settings from %s"%(self.reference_xml))
    115         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "")
    116         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err))
    117         assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml))
    118 
    119         #Check number of domain(3 domains are setup in the reference XML, initially only one domains is declared)
    120         # Domains listing using "listDomains" command
    121         log.I("Current domains listing")
    122         log.I("Command [listDomains]")
    123         out, err = self.pfw.sendCmd("listDomains","","")
    124         assert err == None, log.E("Command [listDomains] : %s"%(err))
    125         log.I("Command [listDomains] - correctly executed")
    126         # Domains listing backup
    127         domainBackup = out.strip('\r\n').splitlines()
    128         log.I("Actual domains: %s" % domainBackup)
    129         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))
    130 
    131         #Check number of config per domain(2 config per domains are setup in the reference XML)
    132         # Config listing
    133         domain_basename="Domain_"
    134         for index in range(self.nb_domains_in_reference_xml):
    135             domain_name=domain_basename+str(index+1)
    136             log.I("Listing config for domain %s"%(domain_name))
    137             out, err = self.pfw.sendCmd("listConfigurations",domain_name,"")
    138             assert err == None, log.E("Command [listConfigurations %s] : %s"%(domain_name,err))
    139             log.I("Command [listConfigurations %s] - correctly executed"%(domain_name))
    140             f_Config_Backup = open(self.temp_config, "w")
    141             f_Config_Backup.write(out.strip('\r\n'))
    142             f_Config_Backup.close()
    143             f_Config_Backup = open(self.temp_config, "r")
    144             config_nbr = 0
    145             line=f_Config_Backup.readline()
    146             while line!="":
    147                 line=f_Config_Backup.readline()
    148                 config_nbr+=1
    149             f_Config_Backup.close()
    150             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))
    151         log.I("Config checking : OK")
    152 
    153         #Check number of config per domain(2 config per domains are setup in the reference XML)
    154         # Config listing
    155         conf_basename="Conf_"
    156         for index_domain in range(3):
    157             for index_conf in range(2):
    158                 domain_name=domain_basename+str(index_domain+1)
    159                 conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf)
    160                 log.I("Get rule for domain %s - conf %s"%(domain_name,conf_name))
    161                 out, err = self.pfw.sendCmd("getRule",domain_name,conf_name)
    162                 assert err == None, log.E("Command [getRules %s %s] : %s"%(domain_name,conf_name,err))
    163                 assert out !="", log.F("No rules loaded for domain %s conf %s"%(domain_name,conf_name))
    164         log.I("Rules checking : OK")
    165 
    166         #Restore config
    167         conf_basename="Conf_"
    168         for index_domain in range(3):
    169             for index_conf in range(2):
    170                 domain_name=domain_basename+str(index_domain+1)
    171                 conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf)
    172                 log.I("Restore config %s for domain %s"%(conf_name,domain_name))
    173                 out, err = self.pfw.sendCmd("restoreConfiguration",domain_name,conf_name)
    174                 assert err == None, log.E("Command [restoreConfiguration %s %s] : %s"%(domain_name,conf_name,err))
    175                 assert out =="Done", log.F("When restoring configuration %s for domain %s"%(conf_name,domain_name))
    176         log.I("Restore configurations: OK")
    177 
    178         #set Tuning Mode off to check parameter value
    179         self.pfw.sendCmd("setTuningMode", "off")
    180 
    181         #Check parameter values
    182         #UINT16
    183         expected_value="0"
    184         hex_value="0x0"
    185         log.I("UINT16 parameter in the conf Conf_1_1= %s"%(expected_value))
    186         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    187         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    188         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out))
    189         #Check parameter value on filesystem
    190         assert open(self.filesystem_01).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    191         #Param_00
    192         expected_value="4"
    193         hex_value="0x4"
    194         log.I("Param_00 parameter in the conf Conf_2_1= %s"%(expected_value))
    195         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    196         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    197         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out))
    198         #Check parameter value on filesystem
    199         assert open(self.filesystem_02).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    200         #Param_12
    201         expected_value="4"
    202         hex_value="0x4"
    203         log.I("Param_12 parameter in the conf Conf_3_1= %s"%(expected_value))
    204         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    205         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    206         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out))
    207         #Check parameter value on filesystem
    208         assert open(self.filesystem_03).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    209         log.I("Parameters checking : OK")
    210 
    211     def test_02_exportDomainsWithSettingsXML_Nominal_Case(self):
    212         """
    213         Testing exportDomainsWithSettingsXML nominal case
    214         -------------------------------------------------
    215             Test case description :
    216             ~~~~~~~~~~~~~~~~~~~~~~~
    217                 - export domains with settings in temp XML
    218                 - import a reference XML
    219                 - restore Configuration
    220                 - import the temp XML
    221                 - restore Configuration
    222                 - check Domains
    223                 - check Configuration
    224                 - check Parameters
    225             Tested commands :
    226             ~~~~~~~~~~~~~~~~~
    227                 - [exportDomainsWithSettingsXML] function
    228                 - [importDomainsWithSettingsXML] function
    229             Used commands :
    230             ~~~~~~~~~~~~~~~
    231                 - [restoreConfiguration] function
    232                 - [listDomains] function
    233                 - [listConfiguration] function
    234                 - [getRules] function
    235                 - [getParameter] function
    236             Expected result :
    237             ~~~~~~~~~~~~~~~~~
    238                 - all operations succeed
    239         """
    240         log.D(self.test_02_exportDomainsWithSettingsXML_Nominal_Case.__doc__)
    241 
    242         ### INIT Domains Settings ####
    243 
    244         #Import a reference XML file
    245 
    246         log.I("Import Domains with initial settings from %s"%(self.reference_xml))
    247         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "")
    248         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err))
    249         assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml))
    250         self.pfw.sendCmd("setTuningMode", "off","")
    251         init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    252         init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    253         init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    254         init_filesystem_01 = open(self.filesystem_01).read()[:-1]
    255         init_filesystem_02 = open(self.filesystem_02).read()[:-1]
    256         init_filesystem_03 = open(self.filesystem_03).read()[:-1]
    257 
    258         ### END OF INIT ###
    259 
    260         #Export in a temp XML file
    261         log.I("Export Domains with initial settings in %s"%(self.temp_xml))
    262         out, err = self.pfw.sendCmd("exportDomainsWithSettingsXML",self.temp_xml, "")
    263         assert err == None, log.E("Command [exportDomainsWithSettingsXML %s] : %s"%(self.temp_xml,err))
    264         assert out == "Done", log.F("When using function exportDomainsWithSettingsXML %s]"%(self.temp_xml))
    265 
    266         #Change the value of checked parameters
    267         self.pfw.sendCmd("setTuningMode", "on","")
    268         out, err = self.pfw.sendCmd("setParameter", self.param_name_01, str(int(init_value_01)+1))
    269         out, err = self.pfw.sendCmd("setParameter", self.param_name_02, str(int(init_value_02)+1))
    270         out, err = self.pfw.sendCmd("setParameter", self.param_name_03, str(int(init_value_03)+1))
    271         #save config
    272         domain_basename="Domain_"
    273         conf_basename="Conf_"
    274         for index_domain in range(3):
    275             for index_conf in range(2):
    276                 domain_name=domain_basename+str(index_domain+1)
    277                 conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf)
    278                 log.I("Save config %s for domain %s"%(conf_name,domain_name))
    279                 out, err = self.pfw.sendCmd("saveConfiguration",domain_name,conf_name)
    280                 assert err == None, log.E("Command [saveConfiguration %s %s] : %s"%(domain_name,conf_name,err))
    281                 assert out =="Done", log.F("When saving configuration %s for domain %s"%(conf_name,domain_name))
    282         log.I("Save configurations: OK")
    283         self.pfw.sendCmd("setTuningMode", "off","")
    284 
    285         #Check parameter values
    286         #UINT16
    287         expected_value=str(int(init_value_01)+1)
    288         log.I("UINT16 parameter = %s"%(expected_value))
    289         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    290         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    291         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out))
    292         #Check parameter value on filesystem
    293         assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    294         #Param_00
    295         expected_value=str(int(init_value_02)+1)
    296         log.I("Param_00 parameter= %s"%(expected_value))
    297         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    298         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    299         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out))
    300         #Check parameter value on filesystem
    301         assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    302         #Param_12
    303         expected_value=str(int(init_value_03)+1)
    304         log.I("Param_12 parameter= %s"%(expected_value))
    305         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    306         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    307         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out))
    308         #Check parameter value on filesystem
    309         assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    310 
    311         #Import the temp XML file
    312         self.pfw.sendCmd("setTuningMode", "on","")
    313         log.I("Import Domains with settings from %s"%(self.temp_xml))
    314         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.temp_xml, "")
    315         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.temp_xml,err))
    316         assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.temp_xml))
    317         self.pfw.sendCmd("setTuningMode", "off","")
    318 
    319         #Check parameter values
    320         #UINT16
    321         expected_value=init_value_01
    322         log.I("UINT16 parameter = %s"%(expected_value))
    323         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    324         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    325         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out))
    326         #Check parameter value on filesystem
    327         assert open(self.filesystem_01).read()[:-1] == init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    328         #Param_00
    329         expected_value=init_value_02
    330         log.I("Param_00 parameter= %s"%(expected_value))
    331         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    332         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    333         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out))
    334         #Check parameter value on filesystem
    335         assert open(self.filesystem_02).read()[:-1] == init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    336         #Param_12
    337         expected_value=init_value_03
    338         log.I("Param_12 parameter= %s"%(expected_value))
    339         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    340         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    341         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out))
    342         #Check parameter value on filesystem
    343         assert open(self.filesystem_03).read()[:-1] == init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    344 
    345     def test_03_exportImportXML_withoutSettings_Nominal_Case(self):
    346         """
    347         Testing exportDomainsXML/importDomainsXML nominal case
    348         ------------------------------------------------------
    349             Test case description :
    350             ~~~~~~~~~~~~~~~~~~~~~~~
    351                 - export domains in temp XML
    352                 - import a reference XML
    353                 - restore Configuration
    354                 - import the temp XML
    355                 - restore Configuration
    356                 - check Domains
    357                 - check Configuration
    358                 - check Parameters
    359             Tested commands :
    360             ~~~~~~~~~~~~~~~~~
    361                 - [exportDomainsXML] function
    362                 - [importDomainsWithSettingsXML] function
    363                 - [importDomainsXML] function
    364             Used commands :
    365             ~~~~~~~~~~~~~~~
    366                 - [restoreConfiguration] function
    367                 - [listDomains] function
    368                 - [listConfiguration] function
    369                 - [getRules] function
    370                 - [getParameter] function
    371             Expected result :
    372             ~~~~~~~~~~~~~~~~~
    373                 - all operations succeed
    374                 - parameter must not change
    375         """
    376         log.D(self.test_03_exportImportXML_withoutSettings_Nominal_Case.__doc__)
    377 
    378         ### INIT Domains Settings ####
    379 
    380         #Import a reference XML file
    381 
    382         log.I("Import Domains with initial settings from %s"%(self.reference_xml))
    383         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "")
    384         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err))
    385         assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml))
    386         self.pfw.sendCmd("setTuningMode", "off","")
    387         init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    388         init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    389         init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    390         init_filesystem_01 = open(self.filesystem_01).read()[:-1]
    391         init_filesystem_02 = open(self.filesystem_02).read()[:-1]
    392         init_filesystem_03 = open(self.filesystem_03).read()[:-1]
    393 
    394         ### END OF INIT ###
    395 
    396         #Export domains without settings in a temp XML file
    397         log.I("Export Domains without initial settings in %s"%(self.temp_xml))
    398         out, err = self.pfw.sendCmd("exportDomainsXML",self.temp_xml, "")
    399         assert err == None, log.E("Command [exportDomainsXML %s] : %s"%(self.temp_xml,err))
    400         assert out == "Done", log.F("When using function exportDomainsXML %s]"%(self.temp_xml))
    401 
    402         #Change the value of checked parameters
    403         self.pfw.sendCmd("setTuningMode", "on","")
    404         out, err = self.pfw.sendCmd("setParameter", self.param_name_01, str(int(init_value_01)+1))
    405         out, err = self.pfw.sendCmd("setParameter", self.param_name_02, str(int(init_value_02)+1))
    406         out, err = self.pfw.sendCmd("setParameter", self.param_name_03, str(int(init_value_03)+1))
    407         #save config
    408         domain_basename="Domain_"
    409         conf_basename="Conf_"
    410         for index_domain in range(3):
    411             for index_conf in range(2):
    412                 domain_name=domain_basename+str(index_domain+1)
    413                 conf_name=conf_basename+str(index_domain+1)+"_"+str(index_conf)
    414                 log.I("Save config %s for domain %s"%(conf_name,domain_name))
    415                 out, err = self.pfw.sendCmd("saveConfiguration",domain_name,conf_name)
    416                 assert err == None, log.E("Command [saveConfiguration %s %s] : %s"%(domain_name,conf_name,err))
    417                 assert out =="Done", log.F("When saving configuration %s for domain %s"%(conf_name,domain_name))
    418         log.I("Save configurations: OK")
    419         self.pfw.sendCmd("setTuningMode", "off","")
    420 
    421         #Check parameter values
    422         #UINT16
    423         expected_value=str(int(init_value_01)+1)
    424         log.I("UINT16 parameter = %s"%(expected_value))
    425         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    426         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    427         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out))
    428         #Check parameter value on filesystem
    429         assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    430         #Param_00
    431         expected_value=str(int(init_value_02)+1)
    432         log.I("Param_00 parameter= %s"%(expected_value))
    433         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    434         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    435         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out))
    436         #Check parameter value on filesystem
    437         assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    438         #Param_12
    439         expected_value=str(int(init_value_03)+1)
    440         log.I("Param_12 parameter= %s"%(expected_value))
    441         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    442         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    443         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out))
    444         #Check parameter value on filesystem
    445         assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    446 
    447         #Import the temp XML file without
    448         self.pfw.sendCmd("setTuningMode", "on","")
    449         log.I("Import Domains without settings from %s"%(self.temp_xml))
    450         out, err = self.pfw.sendCmd("importDomainsXML",self.temp_xml, "")
    451         assert err == None, log.E("Command [importDomainsXML %s] : %s"%(self.temp_xml,err))
    452         assert out == "Done", log.F("When using function importDomainsXML %s]"%(self.temp_xml))
    453         self.pfw.sendCmd("setTuningMode", "off","")
    454 
    455         #Check parameter values
    456         #UINT16
    457         unexpected_value=init_value_01
    458         log.I("UINT16 parameter = %s"%(unexpected_value))
    459         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    460         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    461         assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_01, out))
    462         #Check parameter value on filesystem
    463         assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    464         #Param_00
    465         unexpected_value=init_value_02
    466         log.I("Param_00 parameter= %s"%(unexpected_value))
    467         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    468         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    469         assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_02, out))
    470         #Check parameter value on filesystem
    471         assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    472         #Param_12
    473         unexpected_value=init_value_03
    474         log.I("Param_12 parameter= %s"%(unexpected_value))
    475         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    476         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    477         assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s"% (self.param_name_03, out))
    478         #Check parameter value on filesystem
    479         assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    480 
    481         #Import the reference_XML file without settings
    482         self.pfw.sendCmd("setTuningMode", "on","")
    483         log.I("Import Domains without settings from %s"%(self.reference_xml))
    484         out, err = self.pfw.sendCmd("importDomainsXML",self.reference_xml, "")
    485         assert err == None, log.E("Command [importDomainsXML %s] : %s"%(self.reference_xml,err))
    486         assert out == "Done", log.F("When using function importDomainsXML %s]"%(self.reference_xml))
    487         self.pfw.sendCmd("setTuningMode", "off","")
    488 
    489         #Check parameter values
    490         #UINT16
    491         unexpected_value=init_value_01
    492         log.I("UINT16 parameter = %s"%(unexpected_value))
    493         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    494         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    495         assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_01, out))
    496         #Check parameter value on filesystem
    497         assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    498         #Param_00
    499         unexpected_value=init_value_02
    500         log.I("Param_00 parameter= %s"%(unexpected_value))
    501         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    502         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    503         assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_02, out))
    504         #Check parameter value on filesystem
    505         assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    506         #Param_12
    507         unexpected_value=init_value_03
    508         log.I("Param_12 parameter= %s"%(unexpected_value))
    509         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    510         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    511         assert out != unexpected_value, log.F("BLACKBOARD : Unexpected value found for %s: %s" % (self.param_name_03, out))
    512         #Check parameter value on filesystem
    513         assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    514 
    515     @unittest.expectedFailure
    516     def test_05_Import_XML_With_Settings_Error_Case(self):
    517         """
    518         Testing importDomainsWithSettingsXML error case
    519         -----------------------------------------------
    520             Test case description :
    521             ~~~~~~~~~~~~~~~~~~~~~~~
    522                 - import with settings non-compliant XML
    523                 - import with settings a non-existing  XML file
    524                 - check Domains
    525                 - check Configuration
    526                 - check Parameters
    527             Tested commands :
    528             ~~~~~~~~~~~~~~~~~
    529                 - [importDomainsWithSettingsXML] function
    530                 - [importDomainsXML] function
    531             Used commands :
    532             ~~~~~~~~~~~~~~~
    533                 - [restoreConfiguration] function
    534                 - [listDomains] function
    535                 - [listConfiguration] function
    536                 - [getRules] function
    537                 - [getParameter] function
    538             Expected result :
    539             ~~~~~~~~~~~~~~~~~
    540                 - all errors are detected, initial domains keep settings
    541         """
    542         log.D(self.test_05_Import_XML_With_Settings_Error_Case.__doc__)
    543 
    544         ### INIT Domains Settings ####
    545         #Import a reference XML file
    546 
    547         log.I("Import Domains with initial settings from %s"%(self.reference_xml))
    548         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "")
    549         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err))
    550         assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml))
    551 
    552         self.pfw.sendCmd("setTuningMode", "off","")
    553         init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    554         init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    555         init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    556         init_filesystem_01 = open(self.filesystem_01).read()[:-1]
    557         init_filesystem_02 = open(self.filesystem_02).read()[:-1]
    558         init_filesystem_03 = open(self.filesystem_03).read()[:-1]
    559         xml_path=os.environ["PFW_TEST_TOOLS"] + "/xml/XML_Test/"
    560         ### END OF INIT ###
    561 
    562         self.pfw.sendCmd("setTuningMode", "on","")
    563         #Import domains and settings from xml with outbound parameter value
    564         xml_name="Uncompliant_OutboundParameter.xml"
    565         log.I("Import %s with initial settings"%(xml_name))
    566         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False)
    567         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err))
    568         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    569         log.I("Test OK : %s is not imported"%(xml_name))
    570         #Import domains and settings from xml using undeclared configurable element
    571         xml_name="Uncompliant_UndeclaredConfigurableElement.xml"
    572         log.I("Import %s with initial settings"%(xml_name))
    573         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False)
    574         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err))
    575         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    576         log.I("Test OK : %s is not imported"%(xml_name))
    577         #Import domains and settings from xml using undeclared parameter
    578         xml_name="Uncompliant_UndeclaredParameter.xml"
    579         log.I("Import %s with initial settings"%(xml_name))
    580         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False)
    581         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err))
    582         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    583         log.I("Test OK : %s is not imported"%(xml_name))
    584         #Import domains and settings from xml using wrong order of configurable element
    585         xml_name="Uncompliant_UnorderConfigurableElement.xml"
    586         log.I("Import %s with initial settings"%(xml_name))
    587         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False)
    588         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err))
    589         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    590         log.I("Test OK : %s is not imported"%(xml_name))
    591         #Import domains and settings from unexistent xml
    592         xml_name="Unexistent.xml"
    593         log.I("Import %s with initial settings"%(xml_name))
    594         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",xml_path+xml_name, "", expectSuccess=False)
    595         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(xml_path+xml_name,err))
    596         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    597         log.I("Test OK : %s is not imported"%(xml_name))
    598         self.pfw.sendCmd("setTuningMode", "off","")
    599 
    600         #### check domains and settings ####
    601 
    602         #Check number of domain(3 domains are setup in the reference XML, initially only one domains is declared)
    603         # Domains listing using "listDomains" command
    604         log.I("Current domains listing")
    605         log.I("Command [listDomains]")
    606         out, err = self.pfw.sendCmd("listDomains","","")
    607         assert err == None, log.E("Command [listDomains] : %s"%(err))
    608         log.I("Command [listDomains] - correctly executed")
    609         # Domains listing backup
    610         f_Domains_Backup = open(self.temp_domain, "w")
    611         f_Domains_Backup.write(out.strip('\r\n'))
    612         f_Domains_Backup.close()
    613         f_Domains_Backup = open(self.temp_domain, "r")
    614         domains_nbr = 0
    615         line=f_Domains_Backup.readline()
    616         while line!="":
    617             line=f_Domains_Backup.readline()
    618             domains_nbr+=1
    619         f_Domains_Backup.close()
    620         log.I("Actual domains number : %s" % domains_nbr)
    621         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))
    622         #Check number of config per domain(2 config per domains are setup in the reference XML)
    623         # Config listing
    624         domain_basename="Domain_"
    625         for index in range(self.nb_domains_in_reference_xml):
    626             domain_name=domain_basename+str(index+1)
    627             log.I("Listing config for domain %s"%(domain_name))
    628             out, err = self.pfw.sendCmd("listConfigurations",domain_name,"")
    629             assert err == None, log.E("Command [listConfigurations %s] : %s"%(domain_name,err))
    630             log.I("Command [listConfigurations %s] - correctly executed"%(domain_name))
    631             f_Config_Backup = open(self.temp_config, "w")
    632             f_Config_Backup.write(out.strip('\r\n'))
    633             f_Config_Backup.close()
    634             f_Config_Backup = open(self.temp_config, "r")
    635             config_nbr = 0
    636             line=f_Config_Backup.readline()
    637             while line!="":
    638                 line=f_Config_Backup.readline()
    639                 config_nbr+=1
    640             f_Config_Backup.close()
    641             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))
    642         log.I("Config checking : OK")
    643         #Check parameter values
    644         #UINT16
    645         expected_value=init_value_01
    646         hex_value=init_filesystem_01
    647         log.I("UINT16 parameter in the conf Conf_1_1= %s"%(expected_value))
    648         out, err = self.pfw.sendCmd("getParameter", self.param_name_01, "")
    649         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_01, err))
    650         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_01, expected_value, out))
    651         #Check parameter value on filesystem
    652         assert open(self.filesystem_01).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01)
    653         #Param_00
    654         expected_value=init_value_02
    655         hex_value=init_filesystem_02
    656         log.I("Param_00 parameter in the conf Conf_2_1= %s"%(expected_value))
    657         out, err = self.pfw.sendCmd("getParameter", self.param_name_02, "")
    658         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_02, err))
    659         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_02, expected_value, out))
    660         #Check parameter value on filesystem
    661         assert open(self.filesystem_02).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02)
    662         #Param_12
    663         expected_value=init_value_03
    664         hex_value=init_filesystem_03
    665         log.I("Param_12 parameter in the conf Conf_3_1= %s"%(expected_value))
    666         out, err = self.pfw.sendCmd("getParameter", self.param_name_03, "")
    667         assert err == None, log.E("When setting parameter %s : %s" % (self.param_name_03, err))
    668         assert out == expected_value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name_03, expected_value, out))
    669         #Check parameter value on filesystem
    670         assert open(self.filesystem_03).read()[:-1] == hex_value, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03)
    671         log.I("Parameters checking : OK")
    672 
    673         #### END check domains and settings ####
    674 
    675 
    676     @unittest.expectedFailure
    677     def test_06_Import_XML_Without_Settings_Error_Case(self):
    678         """
    679         Testing import XML without settings error case
    680         ----------------------------------------------
    681             Test case description :
    682             ~~~~~~~~~~~~~~~~~~~~~~~
    683                 - import non-compliant XML
    684                 - import a non-existing XML files
    685                 - import a reference XML
    686                 - check Domains
    687                 - check Configuration
    688                 - check Parameters
    689             Tested commands :
    690             ~~~~~~~~~~~~~~~~~
    691                 - [importDomainsWithSettingsXML] function
    692                 - [importDomainsXML] function
    693             Used commands :
    694             ~~~~~~~~~~~~~~~
    695                 - [restoreConfiguration] function
    696                 - [listDomains] function
    697                 - [listConfiguration] function
    698                 - [getRules] function
    699                 - [getParameter] function
    700             Expected result :
    701             ~~~~~~~~~~~~~~~~~
    702                 - all errors are detected, initial domains keep settings
    703         """
    704         log.D(self.test_06_Import_XML_Without_Settings_Error_Case.__doc__)
    705 
    706         ### INIT Domains Settings ####
    707         #Import a reference XML file
    708 
    709         log.I("Import Domains with initial settings from %s"%(self.reference_xml))
    710         out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_xml, "")
    711         assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_xml,err))
    712         assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_xml))
    713 
    714         self.pfw.sendCmd("setTuningMode", "off","")
    715         xml_path=os.environ["PFW_TEST_TOOLS"] + "/xml/XML_Test/"
    716         ### END OF INIT ###
    717 
    718         self.pfw.sendCmd("setTuningMode", "on","")
    719         #Import domains from xml with outbound parameter value
    720         xml_name="Uncompliant_OutboundParameter.xml"
    721         log.I("Import %s without settings"%(xml_name))
    722         out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False)
    723         assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err))
    724         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    725         log.I("Test OK : %s is not imported"%(xml_name))
    726         #Import domains from xml using undeclared configurable element
    727         xml_name="Uncompliant_UndeclaredConfigurableElement.xml"
    728         log.I("Import %s without settings"%(xml_name))
    729         out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False)
    730         assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err))
    731         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    732         log.I("Test OK : %s is not imported"%(xml_name))
    733         #Import domains from xml using undeclared parameter
    734         #xml_name="Uncompliant_UndeclaredParameter.xml"
    735         #log.I("Import %s without settings"%(xml_name))
    736         #out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False)
    737         #assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err))
    738         #assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    739         #log.I("Test OK : %s is not imported"%(xml_name))
    740         #Import domains from xml using wrong order of configurable element
    741         xml_name="Uncompliant_UnorderConfigurableElement.xml"
    742         log.I("Import %s without settings"%(xml_name))
    743         out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False)
    744         assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err))
    745         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    746         log.I("Test OK : %s is not imported"%(xml_name))
    747         #Import domains from unexistent xml
    748         xml_name="Unexistent.xml"
    749         log.I("Import %s without settings"%(xml_name))
    750         out, err = self.pfw.sendCmd("importDomainsXML",xml_path+xml_name, "", expectSuccess=False)
    751         assert err == None, log.E("Command [importDomainsXML %s] : %s"%(xml_path+xml_name,err))
    752         assert out != "Done", log.F("Error not detected when imported %s]"%(xml_path+xml_name))
    753         log.I("Test OK : %s is not imported"%(xml_name))
    754         self.pfw.sendCmd("setTuningMode", "off","")
    755 
    756         #### check domains and settings ####
    757 
    758         #Check number of domain(3 domains are setup in the reference XML, initially only one domains is declared)
    759         # Domains listing using "listDomains" command
    760         log.I("Current domains listing")
    761         log.I("Command [listDomains]")
    762         out, err = self.pfw.sendCmd("listDomains","","")
    763         assert err == None, log.E("Command [listDomains] : %s"%(err))
    764         log.I("Command [listDomains] - correctly executed")
    765         # Domains listing backup
    766         f_Domains_Backup = open(self.temp_domain, "w")
    767         f_Domains_Backup.write(out.strip('\r\n'))
    768         f_Domains_Backup.close()
    769         f_Domains_Backup = open(self.temp_domain, "r")
    770         domains_nbr = 0
    771         line=f_Domains_Backup.readline()
    772         while line!="":
    773             line=f_Domains_Backup.readline()
    774             domains_nbr+=1
    775         f_Domains_Backup.close()
    776         log.I("Actual domains number : %s" % domains_nbr)
    777         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))
    778         #Check number of config per domain(2 config per domains are setup in the reference XML)
    779         # Config listing
    780         domain_basename="Domain_"
    781         for index in range(self.nb_domains_in_reference_xml):
    782             domain_name=domain_basename+str(index+1)
    783             log.I("Listing config for domain %s"%(domain_name))
    784             out, err = self.pfw.sendCmd("listConfigurations",domain_name,"")
    785             assert err == None, log.E("Command [listConfigurations %s] : %s"%(domain_name,err))
    786             log.I("Command [listConfigurations %s] - correctly executed"%(domain_name))
    787             f_Config_Backup = open(self.temp_config, "w")
    788             f_Config_Backup.write(out.strip('\r\n'))
    789             f_Config_Backup.close()
    790             f_Config_Backup = open(self.temp_config, "r")
    791             config_nbr = 0
    792             line=f_Config_Backup.readline()
    793             while line!="":
    794                 line=f_Config_Backup.readline()
    795                 config_nbr+=1
    796             f_Config_Backup.close()
    797             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))
    798         log.I("Config checking : OK")
    799 
    800         #### END check domains and settings ####
    801