# -*-coding:utf-8 -* # Copyright (c) 2011-2015, Intel Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, # are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation and/or # other materials provided with the distribution. # # 3. Neither the name of the copyright holder nor the names of its contributors # may be used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """ All listing and dumping function testcases. List of tested functions : -------------------------- - [dumpDomains] function - [dumpElement] function Test cases : ------------ - Testing dumpDomains function on nominal case - Testing dumpElements function on nominal case """ import commands, os import unittest from Util.PfwUnitTestLib import PfwTestCase from Util import ACTLogging log=ACTLogging.Logger() class TestCases(PfwTestCase): def setUp(self): self.pfw.sendCmd("setTuningMode", "on") pfw_test_tools=os.getenv("PFW_TEST_TOOLS") self.reference_dumpDomains_xml = pfw_test_tools+"/xml/XML_Test/Reference_dumpDomains.xml" self.reference_dumpDomains_file = pfw_test_tools+"/xml/XML_Test/Reference_dumpDomains" self.initial_xml = pfw_test_tools+"/xml/TestConfigurableDomains.xml" self.list_domains=[] self.list_criteria=["Crit_0", "Crit_1"] self.list_parameters=[] self.temp_file="tempfile" self.domain_name = "Domain_0" self.config_name = "Conf_0" def tearDown(self): self.pfw.sendCmd("setTuningMode", "off") if os.path.exists(self.temp_file): os.remove(self.temp_file) def test_01_dumpDomains_Case(self): """ Testing dumpDomains function ---------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - import a reference XML : Reference_DumpDomains.xml - dumpDomains - compare out to a reference file : Reference_DumpDomains Tested commands : ~~~~~~~~~~~~~~~~~ - [dumpDomains] function Used commands : ~~~~~~~~~~~~~~~ - [importDomainsWithSettingsXML] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to dumpDomains is the same than string in the reference file """ log.D(self.test_01_dumpDomains_Case.__doc__) #Import a reference XML file log.I("Import Domains with settings from %s"%(self.reference_dumpDomains_xml)) out, err = self.pfw.sendCmd("importDomainsWithSettingsXML",self.reference_dumpDomains_xml, "") assert err == None, log.E("Command [importDomainsWithSettingsXML %s] : %s"%(self.reference_dumpDomains_xml,err)) assert out == "Done", log.F("When using function importDomainsWithSettingsXML %s]"%(self.reference_dumpDomains_xml)) log.I("Command [dumpDomains]") out, err = self.pfw.sendCmd("dumpDomains","","") assert err == None, log.E("Command [dumpDomains] : %s"%(err)) assert out == commands.getoutput("cat %s"%(self.reference_dumpDomains_file)), log.F("A diff is found between dumpDomains output and %s"%(self.reference_dumpDomains_file)) log.I("Command [dumpDomains] - correctly executed") def test_03_help_Case(self): """ Testing help function --------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - help - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [help] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to help is not empty """ log.D(self.test_03_help_Case.__doc__) log.I("Command [help]") out, err = self.pfw.sendCmd("help","") assert err == None, log.E("Command [help] : %s"%(err)) assert out != "" log.I("Command [help] - correctly executed") def test_04_status_Case(self): """ Testing status function ----------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - status - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [status] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to status is not empty """ log.D(self.test_04_status_Case.__doc__) log.I("Command [status]") out, err = self.pfw.sendCmd("status","") assert err == None, log.E("Command [help] : %s"%(err)) assert out != "" log.I("Command [status] - correctly executed") def test_05_listCriteria_Case(self): """ Testing listCriteria function ----------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listCriteria - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listCriteria] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listCriteria is not empty """ log.D(self.test_05_listCriteria_Case.__doc__) log.I("Command [listCriteria]") out, err = self.pfw.sendCmd("listCriteria","") assert err == None, log.E("Command [listCriteria] : %s"%(err)) assert out != "" log.I("Command [listCriteria] - correctly executed") def test_06_listDomains_Case(self): """ Testing listDomains function ---------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listDomains - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listDomains] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listDomains is not empty """ log.D(self.test_06_listDomains_Case.__doc__) log.I("Command [listDomains]") out, err = self.pfw.sendCmd("listDomains") assert err == None, log.E("Command [listDomains] : %s"%(err)) assert out != "" log.I("Command [listDomains] - correctly executed") @unittest.expectedFailure def test_06_listDomainElements_Case(self): """ Testing listDomains function ---------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listDomainElements - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listDomainElements] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listDomains is not empty """ log.D(self.test_06_listDomainElements_Case.__doc__) log.I("Command [listDomainElements]") out, err = self.pfw.sendCmd("listDomainElements",self.domain_name) assert err == None, log.E("Command [listDomainElements] : %s"%(err)) assert out != "", log.F("Fail when listDomainElements %s: stdout is empty"%(self.domain_name)) log.I("Command [listDomainElements] - correctly executed") @unittest.expectedFailure def test_07_listConfigurations_Case(self): """ Testing listConfigurations function ----------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listConfigurations - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listConfigurations] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listConfigurations is not empty """ log.D(self.test_07_listConfigurations_Case.__doc__) log.I("Command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name) assert err == None, log.E("Command [listConfigurations] : %s"%(err)) assert out != "", log.F("Fail when listConfigurations %s: stdout is empty"%(self.domain_name)) log.I("Command [listConfigurations] - correctly executed") def test_08_listElements_Case(self): """ Testing listElements function ----------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listElements - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listElements] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listElements is not empty """ log.D(self.test_08_listElements_Case.__doc__) log.I("Command [listElements]") out, err = self.pfw.sendCmd("listElements") assert err == None, log.E("Command [listElements] : %s"%(err)) out, err = self.pfw.sendCmd("listElements","/Test/") assert err == None, log.E("Command [listElements /Test/] : %s"%(err)) assert out != "" log.I("Command [listElements] - correctly executed") def test_09_listParameters_Case(self): """ Testing listParameters function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listParameters - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listParameters] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listParameters is not empty """ log.D(self.test_09_listParameters_Case.__doc__) log.I("Command [listParameters]") out, err = self.pfw.sendCmd("listParameters") assert err == None, log.E("Command [listParameters] : %s"%(err)) out, err = self.pfw.sendCmd("listParameters","/Test/") assert err == None, log.E("Command [listParameters /Test/] : %s"%(err)) assert out != "" log.I("Command [listParameters] - correctly executed") def test_10_getElementSize_Case(self): """ Testing getElementSize function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listParameters - getElementSize for all parameters - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [getElementSize] function Used commands : ~~~~~~~~~~~~~~~ - [listParameters] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to getElementSize is not empty """ log.D(self.test_10_getElementSize_Case.__doc__) log.I("Command [listParameters]") out, err = self.pfw.sendCmd("listParameters","/Test/") assert err == None, log.E("Command [listParameters /Test/] : %s"%(err)) assert out != "" log.I("Command [listParameters] - correctly executed") # Write out in temp file f_temp_file = open(self.temp_file, "w") f_temp_file.write(out) f_temp_file.close() # Extract parameter from the temp file f_temp_file = open(self.temp_file, "r") lines = f_temp_file.readlines() f_temp_file.close() for line in lines : if not line.find("/") == -1 : final_position_in_line= line.find("[")-1 self.list_parameters.append(line[0:final_position_in_line]) for parameter in self.list_parameters : out, err = self.pfw.sendCmd("getElementSize",parameter) assert err == None, log.E("Command [getElementSize %s] : %s"%(parameter,err)) assert out != "" out, err = self.pfw.sendCmd("getElementSize","/Test/") assert err == None, log.E("Command [getElementSize /Test/] : %s"%(err)) assert out != "" out, err = self.pfw.sendCmd("getElementSize") assert err == None, log.E("Command [getElementSize /Test/] : %s"%(err)) def test_11_showProperties_Case(self): """ Testing showProperties function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listParameters - showProperties for all parameters - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [showProperties] function Used commands : ~~~~~~~~~~~~~~~ - [listParameters] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to getElementSize is not empty """ log.D(self.test_11_showProperties_Case.__doc__) log.I("Command [listParameters]") out, err = self.pfw.sendCmd("listParameters","/Test/") assert err == None, log.E("Command [listParameters /Test/] : %s"%(err)) assert out != "" log.I("Command [listParameters] - correctly executed") # Write out in temp file f_temp_file = open(self.temp_file, "w") f_temp_file.write(out) f_temp_file.close() # Extract parameter from the temp file f_temp_file = open(self.temp_file, "r") lines = f_temp_file.readlines() f_temp_file.close() for line in lines : if not line.find("/") == -1 : final_position_in_line= line.find("[")-1 self.list_parameters.append(line[0:final_position_in_line]) for parameter in self.list_parameters : out, err = self.pfw.sendCmd("showProperties",parameter) assert err == None, log.E("Command [showProperties %s] : %s"%(parameter,err)) assert out != "" out, err = self.pfw.sendCmd("showProperties","/Test/") assert err == None, log.E("Command [showProperties /Test/] : %s"%(err)) assert out != "" out, err = self.pfw.sendCmd("showProperties") assert err == None, log.E("Command [showProperties] : %s"%(err)) def test_12_listBelongingDomains_Case(self): """ Testing listBelongingDomains function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listParameters - listBelongingDomains for all parameters - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listBelongingDomains] function Used commands : ~~~~~~~~~~~~~~~ - [listParameters] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listBelongingDomains is not empty """ log.D(self.test_12_listBelongingDomains_Case.__doc__) log.I("Command [listParameters]") out, err = self.pfw.sendCmd("listParameters","/Test/") assert err == None, log.E("Command [listParameters /Test/] : %s"%(err)) assert out != "" log.I("Command [listParameters] - correctly executed") # Write out in temp file f_temp_file = open(self.temp_file, "w") f_temp_file.write(out) f_temp_file.close() # Extract parameter from the temp file f_temp_file = open(self.temp_file, "r") lines = f_temp_file.readlines() f_temp_file.close() for line in lines : if not line.find("/") == -1 : final_position_in_line= line.find("[")-1 self.list_parameters.append(line[0:final_position_in_line]) for parameter in self.list_parameters : out, err = self.pfw.sendCmd("listBelongingDomains",parameter) assert err == None, log.E("Command [listBelongingDomains %s] : %s"%(parameter,err)) out, err = self.pfw.sendCmd("listBelongingDomains","/Test/") assert err == None, log.E("Command [listBelongingDomains /Test/] : %s"%(err)) out, err = self.pfw.sendCmd("listBelongingDomains") assert err == None, log.E("Command [listBelongingDomains] : %s"%(err)) def test_13_listAssociatedDomains_Case(self): """ Testing listAssociatedDomains function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listParameters - listAssociatedDomains for all parameters - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listAssociatedDomains] function Used commands : ~~~~~~~~~~~~~~~ - [listParameters] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listBelongingDomains is not empty """ log.D(self.test_13_listAssociatedDomains_Case.__doc__) log.I("Command [listParameters]") out, err = self.pfw.sendCmd("listParameters","/Test/") assert err == None, log.E("Command [listParameters /Test/] : %s"%(err)) log.I("Command [listParameters] - correctly executed") # Write out in temp file f_temp_file = open(self.temp_file, "w") f_temp_file.write(out) f_temp_file.close() # Extract parameter from the temp file f_temp_file = open(self.temp_file, "r") lines = f_temp_file.readlines() f_temp_file.close() for line in lines : if not line.find("/") == -1 : final_position_in_line= line.find("[")-1 self.list_parameters.append(line[0:final_position_in_line]) for parameter in self.list_parameters : out, err = self.pfw.sendCmd("listAssociatedDomains",parameter) assert err == None, log.E("Command [listAssociatedDomains %s] : %s"%(parameter,err)) out, err = self.pfw.sendCmd("listAssociatedDomains","/Test/") assert err == None, log.E("Command [listAssociatedDomains /Test/] : %s"%(err)) def test_14_listAssociatedElements_Case(self): """ Testing listAssociatedElements function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listAssociatedElements - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listAssociatedElements] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listAssociatedElements is not empty """ log.D(self.test_14_listAssociatedElements_Case.__doc__) log.I("Command [listAssociatedElements]") out, err = self.pfw.sendCmd("listAssociatedElements") assert err == None, log.E("Command [listAssociatedElements] : %s"%(err)) log.I("Command [listAssociatedElements] - correctly executed") def test_15_listConflictingElements_Case(self): """ Testing listConflictingElements function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listConflictingElements - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listConflictingElements] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listConflictingElements is not empty """ log.D(self.test_15_listConflictingElements_Case.__doc__) log.I("Command [listConflictingElements]") out, err = self.pfw.sendCmd("listConflictingElements") assert err == None, log.E("Command [listConflictingElements] : %s"%(err)) log.I("Command [listConflictingElements] - correctly executed") def test_16_listRogueElements_Case(self): """ Testing listRogueElements function ------------------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - listRogueElements - check results Tested commands : ~~~~~~~~~~~~~~~~~ - [listRogueElements] function Expected result : ~~~~~~~~~~~~~~~~~ - string stdout due to listRogueElements is not empty """ log.D(self.test_16_listRogueElements_Case.__doc__) log.I("Command [listRogueElements]") out, err = self.pfw.sendCmd("listRogueElements") assert err == None, log.E("Command [listRogueElements] : %s"%(err)) log.I("Command [listRogueElements] - correctly executed")