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