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_Max 33 34 List of tested functions : 35 -------------------------- 36 - [setParameter] function 37 - [getParameter] function 38 39 Initial Settings : 40 ------------------ 41 INT16_Max : 42 - size = 16 43 - range : [-32768, 32767] 44 45 Test cases : 46 ------------ 47 - INT16_Max parameter min value = -32768 48 - INT16_Max parameter min value out of bounds = -32769 49 - INT16_Max parameter max value = 32767 50 - INT16_Max parameter max value out of bounds = 32768 51 - INT16_Max 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_Max - range [-32768, 32767] 60 class TestCases(PfwTestCase): 61 def setUp(self): 62 self.param_name = "/Test/Test/TEST_DIR/INT16_Max" 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_Max in nominal case = 50 71 -------------------------------------- 72 Test case description : 73 ~~~~~~~~~~~~~~~~~~~~~~~ 74 - set INT16_Max 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_Max parameter set to 50 84 - Blackboard and filesystem values checked 85 """ 86 log.D(self.test_Nominal_Case.__doc__) 87 log.I("INT16_Max 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_Max").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_Max minimal value = -32768 109 ---------------------------------------- 110 Test case description : 111 ~~~~~~~~~~~~~~~~~~~~~~~ 112 - set INT16_Max parameter min value = -32768 113 Tested commands : 114 ~~~~~~~~~~~~~~~~~ 115 - [setParameter] function 116 Used commands : 117 ~~~~~~~~~~~~~~~ 118 - [getParameter] function 119 Expected result : 120 ~~~~~~~~~~~~~~~~~ 121 - INT16_Max parameter set to -32768 122 - Blackboard and filesystem values checked 123 """ 124 log.D(self.test_TypeMin.__doc__) 125 log.I("INT16_Max parameter min value = -32768") 126 value = "-32768" 127 hex_value = "0x8000" 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_Max").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_Max parameter value out of negative range 147 ------------------------------------------------------- 148 Test case description : 149 ~~~~~~~~~~~~~~~~~~~~~~~ 150 - set INT16_Max to -32769 151 Tested commands : 152 ~~~~~~~~~~~~~~~~~ 153 - [setParameter] function 154 Used commands : 155 ~~~~~~~~~~~~~~~ 156 - [getParameter] function 157 Expected result : 158 ~~~~~~~~~~~~~~~~~ 159 - error detected 160 - INT16_Max parameter not updated 161 - Blackboard and filesystem values checked 162 """ 163 log.D(self.test_TypeMin_Overflow.__doc__) 164 log.I("INT16_Max parameter min value out of bounds = -32769") 165 value = "-32769" 166 param_check = open(os.environ["PFW_RESULT"] + "/INT16_Max").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_Max").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_Max parameter maximum value 180 ----------------------------------------- 181 Test case description : 182 ~~~~~~~~~~~~~~~~~~~~~~~ 183 - set INT16_Max to 32767 184 Tested commands : 185 ~~~~~~~~~~~~~~~~~ 186 - [setParameter] function 187 Used commands : 188 ~~~~~~~~~~~~~~~ 189 - [getParameter] function 190 Expected result : 191 ~~~~~~~~~~~~~~~~~ 192 - INT16_Max parameter set to 32767 193 - Blackboard and filesystem values checked 194 """ 195 log.D(self.test_TypeMax.__doc__) 196 log.I("INT16_Max parameter max value = 32767") 197 value = "32767" 198 hex_value = "0x7fff" 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_Max").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_Max parameter value out of positive range 218 ------------------------------------------------------- 219 Test case description : 220 ~~~~~~~~~~~~~~~~~~~~~~~ 221 - set INT16_Max to 32768 222 Tested commands : 223 ~~~~~~~~~~~~~~~~~ 224 - [setParameter] function 225 Used commands : 226 ~~~~~~~~~~~~~~~ 227 - [getParameter] function 228 Expected result : 229 ~~~~~~~~~~~~~~~~~ 230 - error detected 231 - INT16_Max parameter not updated 232 - Blackboard and filesystem values checked 233 """ 234 log.D(self.test_TypeMax_Overflow.__doc__) 235 log.I("INT16_Max parameter max value out of bounds = 32768") 236 value = "32768" 237 param_check = open(os.environ["PFW_RESULT"] + "/INT16_Max").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_Max").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change") 246 log.I("test OK") 247