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 import os 32 import commands, string, random 33 from Util.PfwUnitTestLib import PfwTestCase 34 from Util import ACTLogging 35 log=ACTLogging.Logger() 36 37 # Test of type UINT8_S - range [-100, 100] 38 class TestCases(PfwTestCase): 39 40 def setUp(self): 41 self.param_name = "/Test/Test/TEST_DIR/STR_CHAR128" 42 self.pfw.sendCmd("setTuningMode", "on") 43 self.size_max=128 44 45 def tearDown(self): 46 self.pfw.sendCmd("setTuningMode", "off") 47 48 def test_Digits_String_Case(self): 49 """ 50 |============================================================| 51 | Testing data types - String | 52 | max number of char = 128 | 53 |============================================================| 54 | File : tSTRING_128.py | 55 | Version : 01 | 56 | | 57 | Test cases : | 58 | - STR_CHAR128 parameter nominal value = string_Conf_0 | 59 | - STR_CHAR128 parameter empty value = '' | 60 | - STR_CHAR128 parameter full value = generate randomly 128 | 61 | letters characters | 62 | - STR_CHAR128 parameter space character value = test string| 63 | - STR_CHAR128 parameter full digits value = generate | 64 | randomly 128 digits char | 65 | - STR_CHAR128 parameter oversize value = generate randomly | 66 | 129 char | 67 | | 68 |============================================================| 69 | STR_CHAR128 parameter in digits case = 128 digits char | 70 |============================================================| 71 | Test Case description : | 72 | - STR_CHAR128 parameter in digit case = 128 digits char | 73 | Tested commands : | 74 | * setParameter | 75 | - getParameter | 76 | Expected result : | 77 | - STR_CHAR128 parameter set to the same 128 digits char | 78 | (blackboard and filesystem values checked) | 79 |============================================================| 80 """ 81 log.D(self.test_Digits_String_Case.__doc__) 82 log.I("STR_CHAR128 parameter initial state = string_Conf_0") 83 value = "" 84 for i in range(self.size_max-1): 85 value=value+str(random.choice(string.digits)) 86 #Set parameter value 87 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 88 assert err == None, log.E("when setting parameter %s -> %s" % (self.param_name, err)) 89 assert out == "Done", log.F(out) 90 #Check parameter value on blackboard 91 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 92 assert err == None, log.E("when getting parameter %s -> %s" % (self.param_name, err)) 93 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value, out)) 94 #Check parameter value on filesystem 95 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == value, log.F("FILESYSTEM : parameter update error") 96 97 def test_Empty_String_Case(self): 98 """ 99 |============================================================| 100 | STR_CHAR128 parameter empty string = \'\' | 101 |============================================================| 102 | Test Case description : | 103 | - STR_CHAR128 parameter in empty string case = \'\' | 104 | Tested commands : | 105 | * setParameter | 106 | - getParameter | 107 | Expected result : | 108 | - STR_CHAR128 parameter set empty | 109 | (blackboard and filesystem values checked) | 110 |============================================================| 111 """ 112 log.D(self.test_Empty_String_Case.__doc__) 113 log.I("STR_CHAR128 parameter empty string = \'\'") 114 value = "" 115 #Set parameter value 116 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 117 assert err == None, log.E("when setting parameter %s -> %s" % (self.param_name, err)) 118 assert out == "Done", log.F(out) 119 #Check parameter value on blackboard 120 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 121 assert err == None, log.E("when getting parameter %s -> %s" % (self.param_name, err)) 122 assert out == "", log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value, out)) 123 #Check parameter value on filesystem 124 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == "", log.F("FILESYSTEM : parameter update error") 125 126 def test_OverSize_String_Case(self): 127 """ 128 |============================================================| 129 | STR_CHAR128 parameter oversize | 130 |============================================================| 131 | Test Case description : | 132 | - STR_CHAR128 parameter in oversize case = 129 random char | 133 | Tested commands : | 134 | * setParameter | 135 | - getParameter | 136 | Expected result : | 137 | - error detected | 138 | - STR_CHAR128 parameter not updated | 139 |============================================================| 140 """ 141 log.D(self.test_OverSize_String_Case.__doc__) 142 log.I("STR_CHAR128 parameter size max=128 character") 143 value="" 144 for i in range(self.size_max+1): 145 value=value+str(random.choice(string.letters)) 146 param_check = open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] 147 #Set parameter value 148 out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False) 149 assert err == None, log.E("when setting parameter %s -> %s" % (self.param_name, err)) 150 assert out != "Done", log.F("Error not detected when setting parameter %s over size" % (self.param_name)) 151 #Check parameter value on filesystem 152 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change") 153 154 def test_Full_Letters_String_Case(self): 155 """ 156 |============================================================| 157 | STR_CHAR128 parameter full size test case | 158 |============================================================| 159 | Test Case description : | 160 | - STR_CHAR128 parameter in fullsize case = 128 random char | 161 | Tested commands : | 162 | * setParameter | 163 | - getParameter | 164 | Expected result : | 165 | - STR_CHAR128 parameter set to the same 128 letters char | 166 | (blackboard and filesystem values checked) | 167 |============================================================| 168 """ 169 log.D(self.test_Full_Letters_String_Case.__doc__) 170 log.I("STR_CHAR128 parameter initial state : string") 171 value = "" 172 for i in range(self.size_max-1): 173 value=value+str(random.choice(string.letters)) 174 #Set parameter value 175 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 176 assert err == None, log.E("when setting parameter %s -> %s" % (self.param_name, err)) 177 assert out == "Done", log.F("Expected : Done, result : %s" % (out)) 178 #Check parameter value on blackboard 179 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 180 assert err == None, log.E("When setting parameter %s : %s" % (self.param_name, err)) 181 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value, out)) 182 #Check parameter value on filesystem 183 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == value, log.F("FILESYSTEM : parameter update error") 184 185 def test_Nominal_String_Case(self): 186 """ 187 |============================================================| 188 | STR_CHAR128 parameter Nominal test case | 189 |============================================================| 190 | Test Case description : | 191 | - STR_CHAR128 parameter in nominal case = TestString | 192 | Tested commands : | 193 | * setParameter | 194 | - getParameter | 195 | Expected result : | 196 | - STR_CHAR128 parameter set to TestString | 197 | (blackboard and filesystem values checked) | 198 |============================================================| 199 """ 200 log.D(self.test_Nominal_String_Case.__doc__) 201 log.I("STR_CHAR128 parameter nominal string = TestString") 202 value = "TestString" 203 #Set parameter value 204 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 205 assert err == None, log.E("When setting parameter %s -> %s" % (self.param_name, err)) 206 assert out == "Done", log.F("Expected : Done, found : %s" % (out)) 207 #Check parameter value on blackboard 208 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 209 assert err == None, log.E("When setting parameter %s -> %s" % (self.param_name, err)) 210 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value, out)) 211 #Check parameter value on filesystem 212 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == value, log.F("FILESYSTEM : parameter update error") 213 214 def test_Punctuation_Empty_Parenthese_String_Case(self): 215 """ 216 |============================================================| 217 | STR_CHAR128 parameter empty Parenthese char test case | 218 |============================================================| 219 | Test Case description : | 220 | - STR_CHAR128 parameter = TestParenthese() | 221 | Tested commands : | 222 | * setParameter | 223 | - getParameter | 224 | Expected result : | 225 | - Not Determined now | 226 |============================================================| 227 """ 228 log.D(self.test_Punctuation_Empty_Parenthese_String_Case.__doc__) 229 value = "ParentheseTest()" 230 log.I("STR_CHAR128 parameter Parenthese Char = %s" % (value)) 231 param_check = open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] 232 #Set parameter value 233 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 234 assert err == None, log.E("When setting parameter %s : %s" % (self.param_name, err)) 235 assert out == "Done", log.F("Expected : Done, found : %s" % (out)) 236 #Get parameter value 237 out, err = self.pfw.sendCmd("getParameter", self.param_name) 238 assert err == None, log.E("When getting parameter %s : %s" % (self.param_name, err)) 239 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value, out)) 240 #Check parameter value on filesystem 241 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == value, log.F("FILESYSTEM : parameter update error") 242 243 def test_Punctuation_Full_Parenthese_String_Case(self): 244 """ 245 |============================================================| 246 | STR_CHAR128 parameter full Parenthese char test case | 247 |============================================================| 248 | Test Case description : | 249 | - STR_CHAR128 parameter = TestParenthese(test) | 250 | Tested commands : | 251 | * setParameter | 252 | - getParameter | 253 | Expected result : | 254 | - Not Determined now | 255 |============================================================| 256 """ 257 log.D(self.test_Punctuation_Full_Parenthese_String_Case.__doc__) 258 value = "ParentheseTest(test)" 259 log.I("STR_CHAR128 parameter Parenthese Char = %s" % (value)) 260 param_check = open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] 261 #Set parameter value 262 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 263 assert err == None, log.E("When setting parameter %s : %s" % (self.param_name, err)) 264 assert out == "Done", log.F("Expected : Done, found : %s" % (out)) 265 #Get parameter value 266 out, err = self.pfw.sendCmd("getParameter", self.param_name) 267 assert err == None, log.E("When getting parameter %s : %s" % (self.param_name, err)) 268 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value, out)) 269 #Check parameter value on filesystem 270 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == value, log.F("FILESYSTEM : parameter update error") 271 272 def test_SpaceChar_String_Case(self): 273 """ 274 |============================================================| 275 | STR_CHAR128 parameter space char test case | 276 |============================================================| 277 | Test Case description : | 278 | - STR_CHAR128 parameter = Test String | 279 | Tested commands : | 280 | * setParameter | 281 | - getParameter | 282 | Expected result : | 283 | - Not Determined now | 284 |============================================================| 285 """ 286 log.D(self.test_SpaceChar_String_Case.__doc__) 287 value = "Test String" 288 log.I("STR_CHAR128 parameter Parenthese Char = %s" % (value)) 289 value_check = "Test String" 290 #Set parameter value 291 out, err = self.pfw.sendCmd("setParameter", self.param_name, value) 292 assert err == None, log.E("When setting parameter %s : %s" % (self.param_name, err)) 293 assert out == "Done", log.F("Expected : Done, found : %s" % (out)) 294 #Check parameter value on blackboard 295 out, err = self.pfw.sendCmd("getParameter", self.param_name, "") 296 assert err == None, log.E("When setting parameter %s : %s" % (self.param_name, err)) 297 assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s" % (self.param_name, value_check, out)) 298 #Check parameter value on filesystem 299 assert open(os.environ["PFW_RESULT"] + "/STR_CHAR128").read()[:-1] == value_check, log.F("FILESYSTEM : parameter update error") 300