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 Integer parameter type testcases - INT16 33 34 List of tested functions : 35 -------------------------- 36 - [setParameter] function 37 - [getParameter] function 38 39 Initial Settings : 40 ------------------ 41 INT16 : 42 - size = 16 43 - range : [-1000, 1000] 44 45 Test cases : 46 ------------ 47 - INT16 parameter min value = -1000 48 - INT16 parameter min value out of bounds = -1001 49 - INT16 parameter max value = 1000 50 - INT16 parameter max value out of bounds = 1001 51 - INT16 parameter in nominal case = 50 52 """ 53 import os 54 import commands 55 from Util.PfwUnitTestLib import PfwTestCase 56 from Util import ACTLogging 57 log=ACTLogging.Logger() 58 59 # Test of type INT16 - range [-1000, 1000] 60 class TestCases(PfwTestCase): 61 def setUp(self): 62 self.param_name = "/Test/Test/TEST_DIR/INT16" 63 self.pfw.sendCmd("setTuningMode", "on") 64 65 def tearDown(self): 66 self.pfw.sendCmd("setTuningMode", "off") 67 68 def test_Nominal_Case(self): 69 """ 70 Testing INT16 in nominal case = 50 71 ---------------------------------- 72 Test case description : 73 ~~~~~~~~~~~~~~~~~~~~~~~ 74 - set INT16 parameter in nominal case = 50 75 Tested commands : 76 ~~~~~~~~~~~~~~~~~ 77 - [setParameter] function 78 Used commands : 79 ~~~~~~~~~~~~~~~ 80 - [getParameter] function 81 Expected result : 82 ~~~~~~~~~~~~~~~~~ 83 - INT16 parameter set to 50 84 - Blackboard and filesystem values checked 85 """ 86 log.D(self.test_Nominal_Case.__doc__) 87 log.I("INT16 parameter in nominal case = 50") 88 value = "50" 89 hex_value = "0x32" 90 #Set parameter value 91 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 92 assert err == None, log.E("when setting parameter %s : %s" 93 % (self.param_name, err)) 94 assert out == "Done", log.F("when setting parameter %s : %s" 95 % (self.param_name, out)) 96 #Check parameter value on blackboard 97 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 98 assert err == None, log.E("when setting parameter %s : %s" 99 % (self.param_name, err)) 100 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" 101 % (self.param_name, value, out)) 102 #Check parameter value on filesystem 103 assert open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error") 104 log.I("test OK") 105 106 def test_TypeMin(self): 107 """ 108 Testing INT16 minimal value = -1000 109 ----------------------------------- 110 Test case description : 111 ~~~~~~~~~~~~~~~~~~~~~~~ 112 - set INT16 parameter min value = -1000 113 Tested commands : 114 ~~~~~~~~~~~~~~~~~ 115 - [setParameter] function 116 Used commands : 117 ~~~~~~~~~~~~~~~ 118 - [getParameter] function 119 Expected result : 120 ~~~~~~~~~~~~~~~~~ 121 - INT16 parameter set to -1000 122 - Blackboard and filesystem values checked 123 """ 124 log.D(self.test_TypeMin.__doc__) 125 log.I("INT16 parameter min value = -1000") 126 value = "-1000" 127 hex_value = "0xfc18" 128 #Set parameter value 129 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 130 assert err == None, log.E("when setting parameter %s : %s" 131 % (self.param_name, err)) 132 assert out == "Done", log.F("when setting parameter %s : %s" 133 % (self.param_name, out)) 134 #Check parameter value on blackboard 135 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 136 assert err == None, log.E("when setting parameter %s : %s" 137 % (self.param_name, err)) 138 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" 139 % (self.param_name, value, out)) 140 #Check parameter value on filesystem 141 assert open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error") 142 log.I("test OK") 143 144 def test_TypeMin_Overflow(self): 145 """ 146 Testing INT16 parameter value out of negative range 147 --------------------------------------------------- 148 Test case description : 149 ~~~~~~~~~~~~~~~~~~~~~~~ 150 - set INT16 to -1001 151 Tested commands : 152 ~~~~~~~~~~~~~~~~~ 153 - [setParameter] function 154 Used commands : 155 ~~~~~~~~~~~~~~~ 156 - [getParameter] function 157 Expected result : 158 ~~~~~~~~~~~~~~~~~ 159 - error detected 160 - INT16 parameter not updated 161 - Blackboard and filesystem values checked 162 """ 163 log.D(self.test_TypeMin_Overflow.__doc__) 164 log.I("INT16 parameter min value out of bounds = -1001") 165 value = "-1001" 166 param_check = open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] 167 #Set parameter value 168 out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False) 169 assert err == None, log.E("when setting parameter %s : %s" 170 % (self.param_name, err)) 171 assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds" 172 % (self.param_name)) 173 #Check parameter value on filesystem 174 assert open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change") 175 log.I("test OK") 176 177 def test_TypeMax(self): 178 """ 179 Testing INT16 parameter maximum value 180 ------------------------------------- 181 Test case description : 182 ~~~~~~~~~~~~~~~~~~~~~~~ 183 - set INT16 to 1000 184 Tested commands : 185 ~~~~~~~~~~~~~~~~~ 186 - [setParameter] function 187 Used commands : 188 ~~~~~~~~~~~~~~~ 189 - [getParameter] function 190 Expected result : 191 ~~~~~~~~~~~~~~~~~ 192 - INT16 parameter set to 1000 193 - Blackboard and filesystem values checked 194 """ 195 log.D(self.test_TypeMax.__doc__) 196 log.I("INT16 parameter max value = 1000") 197 value = "1000" 198 hex_value = "0x3e8" 199 #Set parameter value 200 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 201 assert err == None, log.E("when setting parameter %s : %s" 202 % (self.param_name, err)) 203 assert out == "Done", log.F("when setting parameter %s : %s" 204 % (self.param_name, out)) 205 #Check parameter value on blackboard 206 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 207 assert err == None, log.E("when setting parameter %s : %s" 208 % (self.param_name, err)) 209 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" 210 % (self.param_name, value, out)) 211 #Check parameter value on filesystem 212 assert open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error") 213 log.I("test OK") 214 215 def test_TypeMax_Overflow(self): 216 """ 217 Testing INT16 parameter value out of positive range 218 --------------------------------------------------- 219 Test case description : 220 ~~~~~~~~~~~~~~~~~~~~~~~ 221 - set INT16 to 1001 222 Tested commands : 223 ~~~~~~~~~~~~~~~~~ 224 - [setParameter] function 225 Used commands : 226 ~~~~~~~~~~~~~~~ 227 - [getParameter] function 228 Expected result : 229 ~~~~~~~~~~~~~~~~~ 230 - error detected 231 - INT16 parameter not updated 232 - Blackboard and filesystem values checked 233 """ 234 log.D(self.test_TypeMax_Overflow.__doc__) 235 log.I("INT16 parameter max value out of bounds = 1001") 236 value = "1001" 237 param_check = open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] 238 #Set parameter value 239 out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False) 240 assert err == None, log.E("when setting parameter %s : %s" 241 % (self.param_name, err)) 242 assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds" 243 % (self.param_name)) 244 #Check parameter value on filesystem 245 assert open(os.environ["PFW_RESULT"] + "/INT16").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change") 246 log.I("test OK") 247