1 #!/usr/bin/python2 2 # -*-coding:utf-8 -* 3 4 # Copyright (c) 2011-2015, Intel Corporation 5 # All rights reserved. 6 # 7 # Redistribution and use in source and binary forms, with or without modification, 8 # are permitted provided that the following conditions are met: 9 # 10 # 1. Redistributions of source code must retain the above copyright notice, this 11 # list of conditions and the following disclaimer. 12 # 13 # 2. Redistributions in binary form must reproduce the above copyright notice, 14 # this list of conditions and the following disclaimer in the documentation and/or 15 # other materials provided with the distribution. 16 # 17 # 3. Neither the name of the copyright holder nor the names of its contributors 18 # may be used to endorse or promote products derived from this software without 19 # specific prior written permission. 20 # 21 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 32 """ 33 Integer parameter type testcases - UINT8_Max 34 35 List of tested functions : 36 -------------------------- 37 - [setParameter] function 38 - [getParameter] function 39 40 Initial Settings : 41 ------------------ 42 UINT8_Max : 43 - unsigned 44 - size = 8 45 - range : [0, 255] 46 47 Test cases : 48 ------------ 49 - UINT8_Max parameter min value = 0 50 - UINT8_Max parameter min value out of bounds = -1 51 - UINT8_Max parameter max value = 255 52 - UINT8_Max parameter max value out of bounds = 256 53 - UINT8_Max parameter in nominal case = 50 54 """ 55 import os 56 import commands 57 from Util.PfwUnitTestLib import PfwTestCase 58 from Util import ACTLogging 59 log=ACTLogging.Logger() 60 61 62 # Test of type UINT8_Max - range [0, 255] 63 class TestCases(PfwTestCase): 64 def setUp(self): 65 self.param_name = "/Test/Test/TEST_DIR/UINT8_Max" 66 self.pfw.sendCmd("setTuningMode", "on") 67 68 def tearDown(self): 69 self.pfw.sendCmd("setTuningMode", "off") 70 71 def test_Nominal_Case(self): 72 """ 73 Testing UINT8_Max in nominal case = 50 74 -------------------------------------- 75 Test case description : 76 ~~~~~~~~~~~~~~~~~~~~~~~ 77 - set UINT8_Max parameter in nominal case = 50 78 Tested commands : 79 ~~~~~~~~~~~~~~~~~ 80 - [setParameter] function 81 Used commands : 82 ~~~~~~~~~~~~~~~ 83 - [getParameter] function 84 Expected result : 85 ~~~~~~~~~~~~~~~~~ 86 - UINT8_Max parameter set to 50 87 - Blackboard and filesystem values checked 88 """ 89 log.D(self.test_Nominal_Case.__doc__) 90 log.I("UINT8_Max parameter in nominal case = 50") 91 value = "50" 92 hex_value = "0x32" 93 #Set parameter value 94 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 95 assert err == None, log.E("when setting parameter %s : %s" 96 % (self.param_name, err)) 97 assert out == "Done", log.F("when setting parameter %s : %s" 98 % (self.param_name, out)) 99 #Check parameter value on blackboard 100 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 101 assert err == None, log.E("when setting parameter %s : %s" 102 % (self.param_name, err)) 103 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" 104 % (self.param_name, value, out)) 105 #Check parameter value on filesystem 106 assert open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error") 107 log.I("test OK") 108 109 def test_TypeMin(self): 110 """ 111 Testing UINT8_Max minimal value = 0 112 ----------------------------------- 113 Test case description : 114 ~~~~~~~~~~~~~~~~~~~~~~~ 115 - set UINT8_Max parameter min value = 0 116 Tested commands : 117 ~~~~~~~~~~~~~~~~~ 118 - [setParameter] function 119 Used commands : 120 ~~~~~~~~~~~~~~~ 121 - [getParameter] function 122 Expected result : 123 ~~~~~~~~~~~~~~~~~ 124 - UINT8_Max parameter set to 0 125 - Blackboard and filesystem values checked 126 """ 127 log.D(self.test_TypeMin.__doc__) 128 log.I("UINT8_Max parameter min value = 0") 129 value = "0" 130 hex_value = "0x0" 131 #Set parameter value 132 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 133 assert err == None, log.E("when setting parameter %s : %s" 134 % (self.param_name, err)) 135 assert out == "Done", log.F("when setting parameter %s : %s" 136 % (self.param_name, out)) 137 #Check parameter value on blackboard 138 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 139 assert err == None, log.E("when setting parameter %s : %s" 140 % (self.param_name, err)) 141 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" 142 % (self.param_name, value, out)) 143 #Check parameter value on filesystem 144 assert open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error") 145 log.I("test OK") 146 147 def test_TypeMin_Overflow(self): 148 """ 149 Testing UINT8_Max parameter value out of negative range 150 ------------------------------------------------------- 151 Test case description : 152 ~~~~~~~~~~~~~~~~~~~~~~~ 153 - set UINT8_Max to -1 154 Tested commands : 155 ~~~~~~~~~~~~~~~~~ 156 - [setParameter] function 157 Used commands : 158 ~~~~~~~~~~~~~~~ 159 - [getParameter] function 160 Expected result : 161 ~~~~~~~~~~~~~~~~~ 162 - error detected 163 - UINT8_Max parameter not updated 164 - Blackboard and filesystem values checked 165 """ 166 log.D(self.test_TypeMin_Overflow.__doc__) 167 log.I("UINT8_Max parameter min value out of bounds = -1") 168 value = "-1" 169 param_check = open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] 170 #Set parameter value 171 out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False) 172 assert err == None, log.E("when setting parameter %s : %s" 173 % (self.param_name, err)) 174 assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds" 175 % (self.param_name)) 176 #Check parameter value on filesystem 177 assert open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change") 178 log.I("test OK") 179 180 def test_TypeMax(self): 181 """ 182 Testing UINT8_Max parameter maximum value 183 ----------------------------------------- 184 Test case description : 185 ~~~~~~~~~~~~~~~~~~~~~~~ 186 - set UINT8_Max to 255 187 Tested commands : 188 ~~~~~~~~~~~~~~~~~ 189 - [setParameter] function 190 Used commands : 191 ~~~~~~~~~~~~~~~ 192 - [getParameter] function 193 Expected result : 194 ~~~~~~~~~~~~~~~~~ 195 - UINT8_Max parameter set to 255 196 - Blackboard and filesystem values checked 197 """ 198 log.D(self.test_TypeMax.__doc__) 199 log.I("UINT8_Max parameter max value = 255") 200 value = "255" 201 hex_value = "0xff" 202 #Set parameter value 203 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 204 assert err == None, log.E("when setting parameter %s : %s" 205 % (self.param_name, err)) 206 assert out == "Done", log.F("when setting parameter %s : %s" 207 % (self.param_name, out)) 208 #Check parameter value on blackboard 209 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 210 assert err == None, log.E("when setting parameter %s : %s" 211 % (self.param_name, err)) 212 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" 213 % (self.param_name, value, out)) 214 #Check parameter value on filesystem 215 assert open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error") 216 log.I("test OK") 217 218 def test_TypeMax_Overflow(self): 219 """ 220 Testing UINT8_Max parameter value out of positive range 221 ------------------------------------------------------- 222 Test case description : 223 ~~~~~~~~~~~~~~~~~~~~~~~ 224 - set UINT8_Max to 256 225 Tested commands : 226 ~~~~~~~~~~~~~~~~~ 227 - [setParameter] function 228 Used commands : 229 ~~~~~~~~~~~~~~~ 230 - [getParameter] function 231 Expected result : 232 ~~~~~~~~~~~~~~~~~ 233 - error detected 234 - UINT8_Max parameter not updated 235 - Blackboard and filesystem values checked 236 """ 237 log.D(self.test_TypeMax_Overflow.__doc__) 238 log.I("UINT8_Max parameter max value out of bounds = 256") 239 value = "256" 240 param_check = open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] 241 #Set parameter value 242 out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False) 243 assert err == None, log.E("when setting parameter %s : %s" 244 % (self.param_name, err)) 245 assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds" 246 % (self.param_name)) 247 #Check parameter value on filesystem 248 assert open(os.environ["PFW_RESULT"] + "/UINT8_Max").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change") 249 log.I("test OK") 250