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 """
     32 Integer parameter type testcases - INT32_Max
     33 
     34 List of tested functions :
     35 --------------------------
     36     - [setParameter]  function
     37     - [getParameter] function
     38 
     39 Initial Settings :
     40 ------------------
     41     INT32_Max :
     42         - size = 16
     43         - range : [-2147483648, 2147483647]
     44 
     45 Test cases :
     46 ------------
     47     - INT32_Max parameter min value = -2147483648
     48     - INT32_Max parameter min value out of bounds = -2147483649
     49     - INT32_Max parameter max value = 2147483647
     50     - INT32_Max parameter max value out of bounds = 2147483648
     51     - INT32_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 INT32_Max - range [-2147483648, 2147483647]
     60 class TestCases(PfwTestCase):
     61     def setUp(self):
     62         self.param_name = "/Test/Test/TEST_DIR/INT32_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 INT32_Max in nominal case = 50
     71         --------------------------------------
     72             Test case description :
     73             ~~~~~~~~~~~~~~~~~~~~~~~
     74                 - set INT32_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                 - INT32_Max parameter set to 50
     84                 - Blackboard and filesystem values checked
     85         """
     86         log.D(self.test_Nominal_Case.__doc__)
     87         log.I("INT32_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"] + "/INT32_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 INT32_Max minimal value = -2147483648
    109         ---------------------------------------------
    110             Test case description :
    111             ~~~~~~~~~~~~~~~~~~~~~~~
    112                 - set INT32_Max parameter min value = -2147483648
    113             ~~~~~~~~~~~~~~~~~
    114                 - [setParameter] function
    115             Used commands :
    116             ~~~~~~~~~~~~~~~
    117                 - [getParameter] function
    118             Expected result :
    119             ~~~~~~~~~~~~~~~~~
    120                 - INT32_Max parameter set to -2147483648
    121                 - Blackboard and filesystem values checked
    122         """
    123         log.D(self.test_TypeMin.__doc__)
    124         log.I("INT32_Max parameter min value = -2147483648")
    125         value = "-2147483648"
    126         hex_value = "0x80000000"
    127         #Set parameter value
    128         out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
    129         assert err == None, log.E("when setting parameter %s : %s"
    130                                   % (self.param_name, err))
    131         assert out == "Done", log.F("when setting parameter %s : %s"
    132                                   % (self.param_name, out))
    133         #Check parameter value on blackboard
    134         out, err = self.pfw.sendCmd("getParameter", self.param_name, "")
    135         assert err == None, log.E("when setting parameter %s : %s"
    136                                   % (self.param_name, err))
    137         assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s"
    138                                    % (self.param_name, value, out))
    139         #Check parameter value on filesystem
    140         assert open(os.environ["PFW_RESULT"] + "/INT32_Max").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error")
    141         log.I("test OK")
    142 
    143     def test_TypeMin_Overflow(self):
    144         """
    145         Testing INT32_Max parameter value out of negative range
    146         -------------------------------------------------------
    147             Test case description :
    148             ~~~~~~~~~~~~~~~~~~~~~~~
    149                 - set INT32_Max to -2147483649
    150             Tested commands :
    151             ~~~~~~~~~~~~~~~~~
    152                 - [setParameter] function
    153             Used commands :
    154             ~~~~~~~~~~~~~~~
    155                 - [getParameter] function
    156             Expected result :
    157             ~~~~~~~~~~~~~~~~~
    158                 - error detected
    159                 - INT32_Max parameter not updated
    160                 - Blackboard and filesystem values checked
    161         """
    162         log.D(self.test_TypeMin_Overflow.__doc__)
    163         log.I("INT32_Max parameter min value out of bounds = -2147483649")
    164         value = "-2147483649"
    165         param_check = open(os.environ["PFW_RESULT"] + "/INT32_Max").read()[:-1]
    166         #Set parameter value
    167         out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False)
    168         assert err == None, log.E("when setting parameter %s : %s"
    169                                   % (self.param_name, err))
    170         assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds"
    171                                     % (self.param_name))
    172         #Check parameter value on filesystem
    173         assert open(os.environ["PFW_RESULT"] + "/INT32_Max").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change")
    174         log.I("test OK")
    175 
    176     def test_TypeMax(self):
    177         """
    178         Testing INT32_Max parameter maximum value
    179         -----------------------------------------
    180             Test case description :
    181             ~~~~~~~~~~~~~~~~~~~~~~~
    182                 - set INT32_Max to 2147483647
    183             Tested commands :
    184             ~~~~~~~~~~~~~~~~~
    185                 - [setParameter] function
    186             Used commands :
    187             ~~~~~~~~~~~~~~~
    188                 - [getParameter] function
    189             Expected result :
    190             ~~~~~~~~~~~~~~~~~
    191                 - INT32_Max parameter set to 1000
    192                 - Blackboard and filesystem values checked
    193         """
    194         log.D(self.test_TypeMax.__doc__)
    195         log.I("INT32_Max parameter max value = 2147483647")
    196         value = "2147483647"
    197         hex_value = "0x7fffffff"
    198         #Set parameter value
    199         out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
    200         assert err == None, log.E("when setting parameter %s : %s"
    201                                   % (self.param_name, err))
    202         assert out == "Done", log.F("when setting parameter %s : %s"
    203                                   % (self.param_name, out))
    204         #Check parameter value on blackboard
    205         out, err = self.pfw.sendCmd("getParameter", self.param_name, "")
    206         assert err == None, log.E("when setting parameter %s : %s"
    207                                   % (self.param_name, err))
    208         assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s"
    209                                    % (self.param_name, value, out))
    210         #Check parameter value on filesystem
    211         assert open(os.environ["PFW_RESULT"] + "/INT32_Max").read()[:-1] == hex_value, log.F("FILESYSTEM : parameter update error")
    212         log.I("test OK")
    213 
    214     def test_TypeMax_Overflow(self):
    215         """
    216         Testing INT32_Max parameter value out of positive range
    217         -------------------------------------------------------
    218             Test case description :
    219             ~~~~~~~~~~~~~~~~~~~~~~~
    220                 - set INT32_Max to 2147483648
    221             Tested commands :
    222             ~~~~~~~~~~~~~~~~~
    223                 - [setParameter] function
    224             Used commands :
    225             ~~~~~~~~~~~~~~~
    226                 - [getParameter] function
    227             Expected result :
    228             ~~~~~~~~~~~~~~~~~
    229                 - error detected
    230                 - INT32_Max parameter not updated
    231 
    232         """
    233         log.D(self.test_TypeMax_Overflow.__doc__)
    234         log.I("INT32_Max parameter max value out of bounds = 2147483648")
    235         value = "2147483648"
    236         param_check = open(os.environ["PFW_RESULT"] + "/INT32_Max").read()[:-1]
    237         #Set parameter value
    238         out, err = self.pfw.sendCmd("setParameter", self.param_name, value, expectSuccess=False)
    239         assert err == None, log.E("when setting parameter %s : %s"
    240                                   % (self.param_name, err))
    241         assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds"
    242                                     % (self.param_name))
    243         #Check parameter value on filesystem
    244         assert open(os.environ["PFW_RESULT"] + "/INT32_Max").read()[:-1] == param_check, log.F("FILESYSTEM : Forbiden parameter change")
    245         log.I("test OK")
    246