# -*-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. """ Creation, renaming and deletion configuration testcases List of tested functions : -------------------------- - [listConfigurations] function - [createConfiguration] function - [deleteConfiguration] function - [renameConfiguration] function Test cases : ------------ - Testing configuration creation error - Testing configuration renaming error - Testing configuration deletion error - Testing nominal case """ import os from Util.PfwUnitTestLib import PfwTestCase from Util import ACTLogging log=ACTLogging.Logger() # Test of Domains - Rename class TestCases(PfwTestCase): def setUp(self): self.pfw.sendCmd("setTuningMode", "on") self.domain_name = "domain_test" self.conf_test = "conf_white" self.conf_test_renamed = "conf_black" self.new_conf_number = 5 def tearDown(self): self.pfw.sendCmd("setTuningMode", "off") def test_Conf_Creation_Error(self): """ Testing configuration creation error ------------------------------------ Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - Create an already existent configuration - Create a configuration with no name specified - Create a configuration on a wrong domain name Tested commands : ~~~~~~~~~~~~~~~~~ - [createConfiguration] function - [createDomain] function - [listConfigurations] function - [deleteConfiguration] function - [deleteDomain] function Expected result : ~~~~~~~~~~~~~~~~~ - no configuration created - existent configurations not affected by error """ log.D(self.test_Conf_Creation_Error.__doc__) # New domain creation for testing purpose log.I("New domain creation for testing purpose : %s" % (self.domain_name)) log.I("command [createDomain]") out, err = self.pfw.sendCmd("createDomain",self.domain_name, "") assert out == "Done", out assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name) log.I("command [createDomain] correctly executed") log.I("Domain %s created" % (self.domain_name)) # New configurations creation for testing purpose for iteration in range (self.new_conf_number): new_conf_name = "".join([self.conf_test, "_", str(iteration)]) log.I("New configuration %s creation for domain %s" % (new_conf_name,self.domain_name)) log.I("command [createConfiguration]") out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,new_conf_name) assert out == "Done", out assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (new_conf_name) log.I("command [createConfiguration] correctly executed") log.I("Configuration %s created for domain %s" % (new_conf_name,self.domain_name)) # Domain configurations listing backup log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations_backup = open("f_configurations_backup", "w") f_configurations_backup.write(out) f_configurations_backup.close() # New configurations creation error log.I("Creating an already existent configurations names") for iteration in range (self.new_conf_number): new_conf_name = "".join([self.conf_test, "_", str(iteration)]) log.I("Trying to create already existent %s configuration for domain %s" % (new_conf_name,self.domain_name)) log.I("command [createConfiguration]") out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,new_conf_name, expectSuccess=False) assert out != "Done", "ERROR : command [createConfiguration] - Error not detected while creating already existent configuration %s" % (new_conf_name) assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (new_conf_name) log.I("command [createConfiguration] correctly executed") log.I("error correctly detected, no configuration created") log.I("Creating a configuration without specifying a name") out, err = self.pfw.sendCmd("createConfiguration",self.domain_name, expectSuccess=False) assert out != "Done", "ERROR : command [createConfiguration] - Error not detected while creating a configuration without specifying a name" assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration" log.I("error correctly detected") log.I("Creating a configuration on a wrong domain name") new_conf_name = "new_conf" out, err = self.pfw.sendCmd("createConfiguration","wrong_domain_name",new_conf_name, expectSuccess=False) assert out != "Done", "ERROR : command [createConfiguration] - Error not detected while creating a configuration on a wrong domain name" assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration" log.I("error correctly detected") # New domain configurations listing log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]" ) out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations = open("f_configurations", "w") f_configurations.write(out) f_configurations.close() # Checking configurations names integrity log.I("Configurations listing conformity check") f_configurations = open("f_configurations", "r") f_configurations_backup = open("f_configurations_backup", "r") listed_conf_backup = f_configurations_backup.read().splitlines() listed_conf = f_configurations.read().splitlines() assert listed_conf==listed_conf_backup, "ERROR : Error while listing configuration %s (found %s)" % (listed_conf_backup, listed_conf) log.I("No change detected, listed configurations names conform to expected values") # New domain deletion log.I("End of test, new domain deletion") log.I("command [deleteDomain]") out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "") assert out == "Done", "ERROR : %s" % (out) assert err == None, "ERROR : command [deleteDomain] - Error while deleting domain %s" % (self.domain_name) log.I("command [deleteDomain] correctly executed") # Closing and deleting temp files f_configurations_backup.close() os.remove("f_configurations_backup") f_configurations.close() os.remove("f_configurations") def test_Conf_Renaming_Error(self): """ Testing configuration renaming error ------------------------------------ Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - Rename a configuration with an already used name - Rename a configuration with no name specified - Rename a configuration on a wrong domain name Tested commands : ~~~~~~~~~~~~~~~~~ - [renameConfiguration] function - [createDomain] function - [listConfigurations] function - [createConfiguration] function - [deleteConfiguration] function - [deleteDomain] function Expected result : ~~~~~~~~~~~~~~~~~ - error detected - no configuration created - existent configurations not affected by error """ log.D(self.test_Conf_Renaming_Error.__doc__) # New domain creation for testing purpose log.I("New domain creation for testing purpose : %s" % (self.domain_name)) log.I("command [createDomain]") out, err = self.pfw.sendCmd("createDomain",self.domain_name, "") assert out == "Done", out assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name) log.I("command [createDomain] correctly executed") log.I("Domain %s created" % (self.domain_name)) # New configurations creation for testing purpose for iteration in range (self.new_conf_number): new_conf_name = "".join([self.conf_test, "_", str(iteration)]) log.I("New configuration %s creation for domain %s" % (new_conf_name,self.domain_name)) log.I("command [createConfiguration]") out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,new_conf_name) assert out == "Done", out assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (new_conf_name) log.I("command [createConfiguration] correctly executed") log.I("Configuration %s created for domain %s" % (new_conf_name,self.domain_name)) # Domain configurations listing backup log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations_backup = open("f_configurations_backup", "w") f_configurations_backup.write(out) f_configurations_backup.close() # New configurations renaming error log.I("renaming a configuration with an already used name") for iteration in range (self.new_conf_number-1): conf_name = "".join([self.conf_test, "_", str(iteration)]) new_conf_name = "".join([self.conf_test, "_", str(iteration+1)]) log.I("Trying to rename %s on domain %s with an already used name : %s" % (conf_name,self.domain_name,new_conf_name)) log.I("command [renameConfiguration]" ) out, err = self.pfw.sendCmd("renameConfiguration",self.domain_name,conf_name,new_conf_name, expectSuccess=False) assert out != "Done", "ERROR : command [renameConfiguration] - Error not detected while renaming configuration %s with an already used name" % (new_conf_name) assert err == None, "ERROR : command [renameConfiguration] - Error while renaming configuration %s" % (new_conf_name) log.I("command [renameConfiguration] correctly executed") log.I("error correctly detected, no configuration renamed") log.I("renaming a configuration without specifying a new name") out, err = self.pfw.sendCmd("renameConfiguration",self.domain_name,new_conf_name, expectSuccess=False) assert out != "Done", "ERROR : command [renameConfiguration] - Error not detected while renaming a configuration without specifying a new name" assert err == None, "ERROR : command [renameConfiguration] - Error while renaming configuration" log.I("error correctly detected, no configuration renamed") log.I("renaming a configuration on a wrong domain name") new_conf_name = "new_conf" out, err = self.pfw.sendCmd("renameConfiguration","wrong_domain_name",new_conf_name,"Configuration", expectSuccess=False) assert out != "Done", "ERROR : command [renameConfiguration] - Error not detected while renaming a configuration on a wrong domain name" assert err == None, "ERROR : command [renameConfiguration] - Error while renaming configuration" log.I("error correctly detected, no configuration renamed") # New domain configurations listing log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations = open("f_configurations", "w") f_configurations.write(out) f_configurations.close() # Checking configurations names integrity log.I("Configurations listing conformity check") f_configurations = open("f_configurations", "r") f_configurations_backup = open("f_configurations_backup", "r") listed_conf_backup = f_configurations_backup.read().splitlines() listed_conf = f_configurations.read().splitlines() assert listed_conf==listed_conf_backup, "ERROR : Error while listing configuration %s (found %s)" % (listed_conf_backup, listed_conf) log.I("No change detected, listed configurations names conform to expected values") # Testing domain deletion log.I("End of test, new domain deletion") log.I("command [deleteDomain]") out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "") assert out == "Done", "ERROR : %s" % (out) assert err == None, "ERROR : command [deleteDomain] - Error while deleting domain %s" % (self.domain_name) log.I("command [deleteDomain] correctly executed") # Closing and deleting temp files f_configurations_backup.close() os.remove("f_configurations_backup") f_configurations.close() os.remove("f_configurations") def test_Conf_Deletion_Error(self): """ Testing configuration deletion error ------------------------------------ Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - Delete a configuration with a non existent name - Delete a configuration with no name specified - Delete a configuration on a wrong domain name Tested commands : ~~~~~~~~~~~~~~~~~ - [deleteConfiguration] function - [createDomain] function - [listConfigurations] function - [createConfiguration] function - [deleteDomain] function Expected result : ~~~~~~~~~~~~~~~~~ - error detected - no configuration created - existent configurations not affected by error """ print self.test_Conf_Renaming_Error.__doc__ # New domain creation for testing purpose log.I("New domain creation for testing purpose : %s" % (self.domain_name)) log.I("command [createDomain]") out, err = self.pfw.sendCmd("createDomain",self.domain_name, "") assert out == "Done", out assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name) log.I("command [createDomain] correctly executed") log.I("Domain %s created" % (self.domain_name)) # New configurations creation for testing purpose for iteration in range (self.new_conf_number): new_conf_name = "".join([self.conf_test, "_", str(iteration)]) log.I("New configuration %s creation for domain %s" % (new_conf_name,self.domain_name)) log.I("command [createConfiguration]") out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,new_conf_name) assert out == "Done", out assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (new_conf_name) log.I("command [createConfiguration] correctly executed") log.I("Configuration %s created for domain %s" % (new_conf_name,self.domain_name)) # Domain configurations listing backup log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations_backup = open("f_configurations_backup", "w") f_configurations_backup.write(out) f_configurations_backup.close() # Configurations deletion errors log.I("Trying various deletions error test cases") log.I("Trying to delete a wrong configuration name on domain %s" % (self.domain_name)) log.I("command [deleteConfiguration]") out, err = self.pfw.sendCmd("deleteConfiguration",self.domain_name,"wrong_configuration_name", expectSuccess=False) assert out != "Done", "ERROR : command [deleteConfiguration] - Error not detected while deleting non existent configuration name" assert err == None, "ERROR : command [deleteConfiguration] - Error while deleting configuration" log.I("command [deleteConfiguration] correctly executed") log.I("error correctly detected, no configuration deleted") log.I("deleting a configuration with no name specified") out, err = self.pfw.sendCmd("deleteConfiguration",self.domain_name, expectSuccess=False) assert out != "Done", "ERROR : command [deleteConfiguration] - Error not detected while deleting a configuration without specifying a name" assert err == None, "ERROR : command [deleteConfiguration] - Error while deleting configuration" log.I("error correctly detected, no configuration deleted") log.I("deleting a configuration on a wrong domain name") out, err = self.pfw.sendCmd("deleteConfiguration","wrong_domain_name",new_conf_name, expectSuccess=False) assert out != "Done", "ERROR : command [deleteConfiguration] - Error not detected while deleting a configuration on a wrong domain name" assert err == None, "ERROR : command [deleteConfiguration] - Error while deleting configuration" log.I("error correctly detected, no configuration deleted") # New domain configurations listing log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations = open("f_configurations", "w") f_configurations.write(out) f_configurations.close() # Checking configurations names integrity log.I("Configurations listing conformity check") f_configurations = open("f_configurations", "r") f_configurations_backup = open("f_configurations_backup", "r") listed_conf_backup = f_configurations_backup.read().splitlines() listed_conf = f_configurations.read().splitlines() assert listed_conf==listed_conf_backup, "ERROR : Error while listing configuration %s (found %s)" % (listed_conf_backup, listed_conf) log.I("No change detected, listed configurations names conform to expected values") # Testing domain deletion log.I("End of test, new domain deletion") log.I("command [deleteDomain]") out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "") assert out == "Done", "ERROR : %s" % (out) assert err == None, "ERROR : command [deleteDomain] - Error while deleting domain %s" % (self.domain_name) log.I("command [deleteDomain] correctly executed") # Closing and deleting temp files f_configurations_backup.close() os.remove("f_configurations_backup") f_configurations.close() os.remove("f_configurations") def test_Nominal_Case(self): """ Testing nominal cases --------------------- Test case description : ~~~~~~~~~~~~~~~~~~~~~~~ - Create new configurations - List domain configurations - Rename configurations - Delete configurations Tested commands : ~~~~~~~~~~~~~~~~~ - [listConfigurations] function - [createConfiguration] function - [renameConfiguration] function - [deleteConfiguration] function - [createDomain] function - [deleteDomain] function Expected result : ~~~~~~~~~~~~~~~~~ - all operations succeed """ log.D(self.test_Nominal_Case.__doc__) # New domain creation log.I("New domain creation for testing purpose : %s" % (self.domain_name)) log.I("command [createDomain]") out, err = self.pfw.sendCmd("createDomain",self.domain_name, "") assert out == "Done", out assert err == None, "ERROR : command [createDomain] - Error while creating domain %s" % (self.domain_name) log.I("command [createDomain] correctly executed") log.I("Domain %s created" % (self.domain_name)) # New configurations creation for iteration in range (self.new_conf_number): new_conf_name = "".join([self.conf_test, "_", str(iteration)]) log.I("New configuration %s creation for domain %s" % (new_conf_name,self.domain_name)) log.I("command [createConfiguration]" ) out, err = self.pfw.sendCmd("createConfiguration",self.domain_name,new_conf_name) assert out == "Done", out assert err == None, "ERROR : command [createConfiguration] - Error while creating configuration %s" % (new_conf_name) log.I("command [createConfiguration] correctly executed") log.I("Configuration %s created for domain %s" % (new_conf_name,self.domain_name)) # Listing domain configurations log.I("Configurations listing for domain %s" % (self.domain_name)) log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names f_configurations = open("f_configurations", "w") f_configurations.write(out) f_configurations.close() # Checking configurations names integrity log.I("Configurations listing conformity check") f_configurations = open("f_configurations", "r") new_conf_names = [self.conf_test + "_" + str(iteration) for iteration in range(self.new_conf_number)] listed_conf = f_configurations.read().strip('\r\n').splitlines() assert listed_conf == new_conf_names, "ERROR : Error while listing configuration, expected '%s', found '%s'" % (new_conf_names, listed_conf) log.I("Listed configurations names conform to expected values") # Configuration renaming log.I("Configurations renaming") for iteration in range (self.new_conf_number): conf_name = "".join([self.conf_test, "_", str(iteration)]) new_conf_name = "".join([self.conf_test_renamed, "_", str(iteration)]) log.I("Configuration %s renamed to %s in domain %s" % (conf_name,new_conf_name,self.domain_name)) log.I("command [renameConfiguration]") out, err = self.pfw.sendCmd("renameConfiguration",self.domain_name,conf_name,new_conf_name) assert out == "Done", out assert err == None, "ERROR : command [renameConfiguration] - Error while renaming configuration %s to %s" % (conf_name,new_conf_name) log.I("command [renameConfiguration] correctly executed") log.I("Configuration %s renamed to %s for domain %s" % (conf_name,new_conf_name,self.domain_name)) # Listing domain configurations log.I("Configurations listing to check configurations renaming") log.I("command [listConfigurations]") out, err = self.pfw.sendCmd("listConfigurations",self.domain_name, "") assert err == None, "ERROR : command [listConfigurations] - Error while listing configurations for domain %s" % (self.domain_name) log.I("command [listConfigurations] correctly executed") # Saving configurations names configurations_renamed = out # Checking configurations names integrity log.I("Configurations listing conformity check") new_conf_names = [self.conf_test_renamed + "_" + str(iteration) for iteration in range(self.new_conf_number)] listed_conf = configurations_renamed.strip('\r\n').splitlines() assert listed_conf == new_conf_names, "ERROR : Error while renaming configuration, expected '%s', found '%s'" % (new_conf_names, listed_conf) log.I("Listed configurations names conform to expected values, renaming successfull") # New domain deletion log.I("End of test, new domain deletion") log.I("command [deleteDomain]") out, err = self.pfw.sendCmd("deleteDomain",self.domain_name, "") assert out == "Done", "ERROR : %s" % (out) assert err == None, "ERROR : command [deleteDomain] - Error while deleting domain %s" % (self.domain_name) log.I("command [deleteDomain] correctly executed") # Closing and deleting temp file f_configurations.close() os.remove("f_configurations")