Home | History | Annotate | Download | only in Types
      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