1c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# -*-coding:utf-8 -*
2c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
3c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Copyright (c) 2011-2015, Intel Corporation
4c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# All rights reserved.
5c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
6c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Redistribution and use in source and binary forms, with or without modification,
7c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# are permitted provided that the following conditions are met:
8c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
9c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 1. Redistributions of source code must retain the above copyright notice, this
10c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# list of conditions and the following disclaimer.
11c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
12c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 2. Redistributions in binary form must reproduce the above copyright notice,
13c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# this list of conditions and the following disclaimer in the documentation and/or
14c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# other materials provided with the distribution.
15c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
16c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 3. Neither the name of the copyright holder nor the names of its contributors
17c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# may be used to endorse or promote products derived from this software without
18c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# specific prior written permission.
19c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#
20c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
21c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
24c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
25c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
27c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
31c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero"""
32c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroInteger parameter type testcases - INT16
33c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
34c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroList of tested functions :
35c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero--------------------------
36c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - [setParameter]  function
37c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - [getParameter] function
38c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
39c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroInitial Settings :
40c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero------------------
41c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    INT16 :
42c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        - size = 16
43c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        - range : [-1000, 1000]
44c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
45c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroTest cases :
46c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero------------
47c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - INT16 parameter min value = -1000
48c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - INT16 parameter min value out of bounds = -1001
49c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - INT16 parameter max value = 1000
50c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - INT16 parameter max value out of bounds = 1001
51c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    - INT16 parameter in nominal case = 50
52c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero"""
53c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroimport commands
54c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerofrom Util.PfwUnitTestLib import PfwTestCase
55c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerofrom Util import ACTLogging
56c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerolog=ACTLogging.Logger()
57c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
58c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Test of type INT16 - range [-1000, 1000]
59c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroclass TestCases(PfwTestCase):
60c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def setUp(self):
61c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.param_name = "/Test/Test/TEST_DIR/INT16"
62c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.pfw.sendCmd("setTuningMode", "on")
63c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
64c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def tearDown(self):
65c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        self.pfw.sendCmd("setTuningMode", "off")
66c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
67c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_Nominal_Case(self):
68c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
69c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing INT16 in nominal case = 50
70c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        ----------------------------------
71c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
72c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
73c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - set INT16 parameter in nominal case = 50
74c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
75c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
76c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setParameter] function
77c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Used commands :
78c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~
79c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getParameter] function
80c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
81c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
82c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - INT16 parameter set to 50
83c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Blackboard and filesystem values checked
84c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
85c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_Nominal_Case.__doc__)
86c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("INT16 parameter in nominal case = 50")
87c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        value = "50"
88c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        hex_value = "0x32"
89c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Set parameter value
90c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
91c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
92c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
93c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", log.F("when setting parameter %s : %s"
94c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, out))
95c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on blackboard
96c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getParameter", self.param_name, "")
97c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
98c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
99c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s"
100c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, value, out))
101c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on filesystem
102ec5130b950992fe79400ba66336d19169772a530Adrien M        assert commands.getoutput('cat $PFW_RESULT/INT16') == hex_value, log.F("FILESYSTEM : parameter update error")
103c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("test OK")
104c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
105c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_TypeMin(self):
106c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
107c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing INT16 minimal value = -1000
108c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        -----------------------------------
109c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
110c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
111c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - set INT16 parameter min value = -1000
112c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
113c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
114c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setParameter] function
115c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Used commands :
116c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~
117c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getParameter] function
118c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
119c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
120c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - INT16 parameter set to -1000
121c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Blackboard and filesystem values checked
122c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
123c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_TypeMin.__doc__)
124c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("INT16 parameter min value = -1000")
125c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        value = "-1000"
126c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        hex_value = "0xfc18"
127c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Set parameter value
128c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
129c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
130c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
131c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", log.F("when setting parameter %s : %s"
132c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, out))
133c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on blackboard
134c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getParameter", self.param_name, "")
135c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
136c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
137c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s"
138c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, value, out))
139c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on filesystem
140ec5130b950992fe79400ba66336d19169772a530Adrien M        assert commands.getoutput('cat $PFW_RESULT/INT16') == hex_value, log.F("FILESYSTEM : parameter update error")
141c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("test OK")
142c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
143c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_TypeMin_Overflow(self):
144c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
145c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing INT16 parameter value out of negative range
146c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        ---------------------------------------------------
147c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
148c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
149c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - set INT16 to -1001
150c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
151c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
152c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setParameter] function
153c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Used commands :
154c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~
155c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getParameter] function
156c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
157c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
158c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - error detected
159c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - INT16 parameter not updated
160c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Blackboard and filesystem values checked
161c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
162c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_TypeMin_Overflow.__doc__)
163c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("INT16 parameter min value out of bounds = -1001")
164c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        value = "-1001"
165ec5130b950992fe79400ba66336d19169772a530Adrien M        param_check = commands.getoutput('cat $PFW_RESULT/INT16')
166c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Set parameter value
167c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
168c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
169c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
170c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds"
171c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                    % (self.param_name))
172c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on filesystem
173ec5130b950992fe79400ba66336d19169772a530Adrien M        assert commands.getoutput('cat $PFW_RESULT/INT16') == param_check, log.F("FILESYSTEM : Forbiden parameter change")
174c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("test OK")
175c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
176c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_TypeMax(self):
177c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
178c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing INT16 parameter maximum value
179c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        -------------------------------------
180c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
181c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
182c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - set INT16 to 1000
183c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
184c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
185c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setParameter] function
186c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Used commands :
187c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~
188c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getParameter] function
189c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
190c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
191c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - INT16 parameter set to 1000
192c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Blackboard and filesystem values checked
193c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
194c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_TypeMax.__doc__)
195c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("INT16 parameter max value = 1000")
196c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        value = "1000"
197c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        hex_value = "0x3e8"
198c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Set parameter value
199c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
200c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
201c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
202c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == "Done", log.F("when setting parameter %s : %s"
203c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, out))
204c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on blackboard
205c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("getParameter", self.param_name, "")
206c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
207c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
208c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out == value, log.F("BLACKBOARD : Incorrect value for %s, expected: %s, found: %s"
209c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                   % (self.param_name, value, out))
210c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on filesystem
211ec5130b950992fe79400ba66336d19169772a530Adrien M        assert commands.getoutput('cat $PFW_RESULT/INT16') == hex_value, log.F("FILESYSTEM : parameter update error")
212c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("test OK")
213c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero
214c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero    def test_TypeMax_Overflow(self):
215c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
216c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        Testing INT16 parameter value out of positive range
217c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        ---------------------------------------------------
218c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Test case description :
219c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~~~~~~~
220c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - set INT16 to 1001
221c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Tested commands :
222c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
223c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [setParameter] function
224c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Used commands :
225c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~
226c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - [getParameter] function
227c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            Expected result :
228c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero            ~~~~~~~~~~~~~~~~~
229c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - error detected
230c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - INT16 parameter not updated
231c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                - Blackboard and filesystem values checked
232c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        """
233c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.D(self.test_TypeMax_Overflow.__doc__)
234c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("INT16 parameter max value out of bounds = 1001")
235c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        value = "1001"
236ec5130b950992fe79400ba66336d19169772a530Adrien M        param_check = commands.getoutput('cat $PFW_RESULT/INT16')
237c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Set parameter value
238c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        out, err = self.pfw.sendCmd("setParameter", self.param_name, value)
239c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert err == None, log.E("when setting parameter %s : %s"
240c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                  % (self.param_name, err))
241c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        assert out != "Done", log.F("PFW : Error not detected when setting parameter %s out of bounds"
242c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero                                    % (self.param_name))
243c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        #Check parameter value on filesystem
244ec5130b950992fe79400ba66336d19169772a530Adrien M        assert commands.getoutput('cat $PFW_RESULT/INT16') == param_check, log.F("FILESYSTEM : Forbiden parameter change")
245c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero        log.I("test OK")
246