diff options
Diffstat (limited to 'test/functional-tests/PfwTestCase/Domains/tDomain_Configuration_Backup.py')
-rw-r--r-- | test/functional-tests/PfwTestCase/Domains/tDomain_Configuration_Backup.py | 239 |
1 files changed, 239 insertions, 0 deletions
diff --git a/test/functional-tests/PfwTestCase/Domains/tDomain_Configuration_Backup.py b/test/functional-tests/PfwTestCase/Domains/tDomain_Configuration_Backup.py new file mode 100644 index 0000000..51d3d2b --- /dev/null +++ b/test/functional-tests/PfwTestCase/Domains/tDomain_Configuration_Backup.py @@ -0,0 +1,239 @@ +# -*-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. + +""" +Save and restore configuration testcases + +List of tested functions : +-------------------------- + - [saveConfiguration] function + - [restoreConfiguration] function + +Test cases : +------------ + - Testing nominal case + - Testing saveConfiguration errors + - Testing restoreConfiguration errors +""" + +from Util.PfwUnitTestLib import PfwTestCase +from Util import ACTLogging +log=ACTLogging.Logger() + +# Test of Domains - save/restore configuration +class TestCases(PfwTestCase): + def setUp(self): + self.pfw.sendCmd("setTuningMode", "on") + self.domain_name = "Domain_0" + self.conf_1 = "Conf_0" + self.conf_2 = "Conf_1" + self.param_name = "/Test/Test/TEST_DIR/INT8" + + def tearDown(self): + self.pfw.sendCmd("setTuningMode", "off") + + def test_Nominal_Case(self): + """ + Testing nominal case + -------------------- + Test case description : + ~~~~~~~~~~~~~~~~~~~~~~~ + - save a configuration + - restore a configuration + Tested commands : + ~~~~~~~~~~~~~~~~~ + - [saveConfiguration] function + - [restoreConfiguration] function + Expected result : + ~~~~~~~~~~~~~~~~~ + - all operations succeed + """ + log.D(self.test_Nominal_Case.__doc__) + + # Saving original parameter value + log.I("restoring configuration %s from domain %s" % (self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name, self.conf_1) + assert err == None, "Error when restoring configuration %s from domain %s : %s" % (self.conf_1, self.domain_name, err) + assert out == "Done", out + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_1 = int(out) + log.I("saved parameter %s value on %s from domain %s = %s" % (self.param_name, self.conf_1, self.domain_name, Param_saved_1)) + + # Modifying parameter value + log.I("modifying parameter %s value on configuration %s from domain %s" % (self.param_name, self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("setParameter", self.param_name, str(Param_saved_1+1)) + assert err == None, "Error when setting parameter %s : %s" % (self.param_name, err) + log.I("new parameter %s value = %s in place of %s" % (self.param_name, str(Param_saved_1+1), Param_saved_1)) + + # Saving new parameter value + log.I("saving configuration %s from domain %s" % (self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("saveConfiguration", self.domain_name, self.conf_1) + assert err == None, "Error when saving configuration %s from domain %s : %s" % (self.conf_1, self.domain_name, err) + assert out == "Done", out + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_1 = int(out) + log.I("new saved parameter %s value on %s from domain %s = %s" % (self.param_name, self.conf_1, self.domain_name, Param_saved_1)) + + # Modifying and restoring parameter value + log.I("modifying parameter %s value on configuration %s from domain %s" % (self.param_name, self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("setParameter", self.param_name, str(Param_saved_1+1)) + assert err == None, "Error when setting parameter %s : %s" % (self.param_name, err) + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_2 = int(out) + log.I("new parameter %s value on %s = %s in place of %s" % (self.param_name, self.conf_1, str(Param_saved_2), Param_saved_1)) + log.I("restoring configuration %s from domain %s" % (self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name, self.conf_1) + assert err == None, "Error when restoring configuration %s from domain %s : %s" % (self.conf_1, self.domain_name, err) + assert out == "Done", out + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_2 = int(out) + assert Param_saved_2 == Param_saved_1, "Error when restoring configuration %s from domain %s" % (self.conf_1, self.domain_name) + log.I("saving and restoring configuration works fine") + + def test_Save_Config_Error(self): + """ + Testing saveConfiguration error + ------------------------------- + Test case description : + ~~~~~~~~~~~~~~~~~~~~~~~ + - save a configuration with a missing argument + - save a configuration with a wrong domain name + - save a configuration with a wrong configuration name + Tested commands : + ~~~~~~~~~~~~~~~~~ + - [saveConfiguration] function + Expected result : + ~~~~~~~~~~~~~~~~~ + - errors correctly detected + """ + log.D(self.test_Save_Config_Error.__doc__) + # Saving original parameter value and setting a new value to parameter for testing purpose + log.I("restoring configuration %s from domain %s" % (self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name, self.conf_1) + assert err == None, "Error when restoring configuration %s from domain %s : %s" % (self.conf_1, self.domain_name, err) + assert out == "Done", out + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_1 = int(out) + log.I("saved parameter %s value on %s from domain %s = %s" % (self.param_name, self.conf_1, self.domain_name, Param_saved_1)) + log.I("modifying parameter %s value on configuration %s from domain %s" % (self.param_name, self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("setParameter", self.param_name, str(Param_saved_1+1)) + assert err == None, "Error when setting parameter %s : %s" % (self.param_name, err) + log.I("new parameter %s value = %s in place of %s" % (self.param_name, str(Param_saved_1+1), Param_saved_1)) + + # Configuration saving errors + log.I("saving configuration error test cases :") + log.I("saving configuration with a missing argument") + out, err = self.pfw.sendCmd("saveConfiguration", self.domain_name) + assert err == None, "ERROR : Error when saving configuration with a missing argument" + assert out != "Done", "ERROR : Error not detected when saving configuration with a missing argument" + log.I("saving configuration with a wrong domain name") + out, err = self.pfw.sendCmd("saveConfiguration", "Wrong_Domain_Name", self.conf_1) + assert err == None, "ERROR : Error when saving configuration with a wrong domain name" + assert out != "Done", "ERROR : Error not detected when saving configuration with a wrong domain name" + log.I("saving configuration with a wrong configuration name") + out, err = self.pfw.sendCmd("saveConfiguration", self.domain_name, "Wrong_Configuration_Name") + assert err == None, "ERROR : Error when saving configuration with a wrong configuration name" + assert out != "Done", "ERROR : Error not detected when saving configuration with a wrong configuration name" + log.I("saving configuration error test cases : errors correctly detected") + + # Checking that no error has affected original configuration save + log.I("restoring configuration %s from domain %s" % (self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name, self.conf_1) + assert err == None, "error when restoring configuration %s from domain %s : %s" % (self.conf_1, self.domain_name, err) + assert out == "Done", out + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_2 = int(out) + assert Param_saved_2 == Param_saved_1, "error when restoring configuration %s from domain %s, parameter %s affected by configuration saving error" % (self.conf_1, self.domain_name, Param_saved_1) + log.I("Test passed : saving errors correctly detected, no impact on previously saved configuration") + + def test_Restore_Config_Error(self): + """ + Testing restoreConfiguration error + ---------------------------------- + Test case description : + ~~~~~~~~~~~~~~~~~~~~~~~ + - restore a configuration with a missing argument + - restore a configuration with a wrong domain name + - restore a configuration with a wrong configuration name + Tested commands : + ~~~~~~~~~~~~~~~~~ + - [restoreConfiguration] function + Expected result : + ~~~~~~~~~~~~~~~~~ + - errors correctly detected + - configuration's parameters not affected by errors + """ + + log.D(self.test_Restore_Config_Error.__doc__) + # Saving original parameter value and setting a new value to parameter for testing purpose + log.I("restore configuration %s from domain %s" % (self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name, self.conf_1) + assert err == None, "Error when restoring configuration %s from domain %s : %s" % (self.conf_1, self.domain_name, err) + assert out == "Done", out + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_1 = int(out) + log.I("saved parameter %s value on %s from domain %s = %s" % (self.param_name, self.conf_1, self.domain_name, Param_saved_1)) + log.I("modifying parameter %s value on configuration %s from domain %s" % (self.param_name, self.conf_1, self.domain_name)) + out, err = self.pfw.sendCmd("setParameter", self.param_name, str(Param_saved_1+1)) + assert err == None, "Error when setting parameter %s : %s" % (self.param_name, err) + log.I("new parameter %s value = %s in place of %s" % (self.param_name, str(Param_saved_1+1), Param_saved_1)) + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "Error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_2 = int(out) + + # Configuration restore errors + log.I("restoring configuration error test cases :") + log.I("restoring configuration with a missing argument") + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name) + assert err == None, "ERROR : Error when restoring configuration with a missing argument" + assert out != "Done", "ERROR : Error not detected when restoring configuration with a missing argument" + log.I("restoring configuration with a wrong domain name") + out, err = self.pfw.sendCmd("restoreConfiguration", "Wrong_Domain_Name", self.conf_1) + assert err == None, "ERROR : Error when restoring configuration with a wrong domain name" + assert out != "Done", "ERROR : Error not detected when restoring configuration with a wrong domain name" + log.I("restoring configuration with a wrong configuration name") + out, err = self.pfw.sendCmd("restoreConfiguration", self.domain_name, "Wrong_Configuration_Name") + assert err == None, "ERROR : Error when restoring configuration with a wrong configuration name" + assert out != "Done", "ERROR : Error not detected when restoring configuration with a wrong configuration name" + log.I("restoring configuration error test cases : errors correctly detected") + + # Checking that no error has affected configuration's parameter value + out, err = self.pfw.sendCmd("getParameter", self.param_name) + assert err == None, "error when getting parameter %s : %s" % (self.param_name, err) + Param_saved_1 = int(out) + assert Param_saved_2 == Param_saved_1, "error when restoring configuration %s from domain %s, parameter %s affected by configuration restoration error" % (self.conf_1, self.domain_name, Param_saved_1) + log.I("Test passed : restoring errors correctly detected, no impact on previously modified configuration's parameter") |