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