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