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