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 synchronization functions testcases 33 34 List of tested functions : 35 -------------------------- 36 - [getAutoSync] function 37 - [setAutoSync] function 38 - [sync] function 39 40 Test cases : 41 ------------ 42 - Testing getAutoSync nominal case 43 - Testing setAutoSync nominal case 44 - Testing sync nominal case 45 - Testing errors 46 """ 47 import os 48 import unittest 49 from Util.PfwUnitTestLib import PfwTestCase 50 from Util import ACTLogging 51 log=ACTLogging.Logger() 52 53 class TestCases(PfwTestCase): 54 55 def setUp(self): 56 57 pfw_filesystem=os.environ["PFW_RESULT"] 58 59 self.pfw.sendCmd("setTuningMode", "on") 60 self.param_name_01 = "/Test/Test/TEST_DIR/BOOL" 61 self.filesystem_01 = pfw_filesystem+"/BOOL" 62 self.param_name_02 = "/Test/Test/TEST_DIR/INT16" 63 self.filesystem_02 = pfw_filesystem+"/INT16" 64 self.param_name_03 = "/Test/Test/TEST_DIR/UINT32" 65 self.filesystem_03 = pfw_filesystem+"/UINT32" 66 67 def tearDown(self): 68 self.pfw.sendCmd("setTuningMode", "off") 69 70 def test_01_getAutoSync_Case(self): 71 """ 72 Testing getAutoSync nominal case 73 ---------------------------- 74 Test case description : 75 ~~~~~~~~~~~~~~~~~~~~~~~ 76 - enable autosync 77 - get autosync state 78 - disable autosync 79 - get autosync state 80 Tested commands : 81 ~~~~~~~~~~~~~~~~~ 82 - [setAutoSync] function 83 - [getAutoSync] function 84 Expected result : 85 ~~~~~~~~~~~~~~~~~ 86 - getAutoSync return expected state 87 """ 88 log.D(self.test_01_getAutoSync_Case.__doc__) 89 value = "on" 90 log.I("Enable autosync") 91 out,err = self.pfw.sendCmd("setAutoSync", value) 92 assert err == None, log.E("When enabling autosync : %s" % (err)) 93 assert out == "Done", log.F("setAutoSync - expected : Done , found : %s" % (out)) 94 log.I("Check autosync state") 95 out, err = self.pfw.sendCmd("getAutoSync","") 96 assert err == None, log.E("When getting autosync state : %s" % (err)) 97 assert out == value, log.F("setAutoSync - expected : %s , found : %s" % (value,out)) 98 value = "off" 99 log.I("Disable autosync") 100 out,err = self.pfw.sendCmd("setAutoSync", value) 101 assert err == None, log.E("When enabling autosync : %s" % (err)) 102 assert out == "Done", log.F("setAutoSync - expected : Done , found : %s" % (out)) 103 log.I("Check autosync state") 104 out, err = self.pfw.sendCmd("getAutoSync","") 105 assert err == None, log.E("When getting autosync state : %s" % (err)) 106 assert out == value, log.F("setAutoSync - expected : %s , found : %s" % (value,out)) 107 108 def test_02_setAutoSync_Case(self): 109 """ 110 Testing getAutoSync nominal case 111 ------------------------------------------------- 112 Test case description : 113 ~~~~~~~~~~~~~~~~~~~~~~~ 114 - enable autosync 115 - set differents parameters 116 - check the value on the filesystem 117 - disable autosync 118 - set differents parameters 119 - check the value on the filesystem 120 Tested commands : 121 ~~~~~~~~~~~~~~~~~ 122 - [setAutoSync] function 123 Used commands : 124 ~~~~~~~~~~~~~~~ 125 - [getAutoSync] function 126 Expected result : 127 ~~~~~~~~~~~~~~~~~ 128 - When autosync is enabled, the filesystem is automatically 129 synchronized with the blackboard. 130 """ 131 log.D(self.test_02_setAutoSync_Case.__doc__) 132 #Check the initial parameter value 133 init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") 134 init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") 135 init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") 136 init_filesystem_01 = open(self.filesystem_01).read()[:-1] 137 init_filesystem_02 = open(self.filesystem_02).read()[:-1] 138 init_filesystem_03 = open(self.filesystem_03).read()[:-1] 139 #Implement a new value 140 if int(init_value_01)==0 : 141 new_value_01 = "1" 142 else : 143 new_value_01 = "0" 144 new_value_02 = str(int(init_value_02)+1) 145 new_value_03 = str(int(init_value_03)+1) 146 #Enable the autosync 147 value = "on" 148 log.I("Enable autosync") 149 out,err = self.pfw.sendCmd("setAutoSync", value) 150 assert err == None, log.E("When enabling autosync : %s" % (err)) 151 assert out == "Done", log.F("setAutoSync - expected : Done , found : %s" % (out)) 152 #Set the new parameter value 153 self.pfw.sendCmd("setParameter", self.param_name_01, new_value_01) 154 self.pfw.sendCmd("setParameter", self.param_name_02, new_value_02) 155 self.pfw.sendCmd("setParameter", self.param_name_03, new_value_03) 156 #Check the filesystem values 157 #BOOL 158 assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) 159 #INT16 160 assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) 161 #UINT32 162 assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) 163 log.I("test setAutoSync %s : OK"%(value)) 164 #Enable the autosync 165 value = "off" 166 log.I("Disable autosync") 167 out,err = self.pfw.sendCmd("setAutoSync", value) 168 assert err == None, log.E("When enabling autosync : %s" % (err)) 169 assert out == "Done", log.F("setAutoSync - expected : Done , found : %s" % (out)) 170 #Set the new parameter value 171 self.pfw.sendCmd("setParameter", self.param_name_01, init_value_01) 172 self.pfw.sendCmd("setParameter", self.param_name_02, init_value_02) 173 self.pfw.sendCmd("setParameter", self.param_name_03, init_value_03) 174 #Check the filesystem values 175 #BOOL 176 assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s is updated, autosync is still enabled"%self.param_name_01) 177 #INT16 178 assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s is updated, autosync is still enabled"%self.param_name_02) 179 #UINT32 180 assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s is updated, autosync is still enabled"%self.param_name_03) 181 log.I("test setAutoSync %s : OK"%(value)) 182 183 184 @unittest.expectedFailure 185 def test_03_Manual_Sync_Case(self): 186 """ 187 Testing getAutoSync nominal case 188 ------------------------------------------------- 189 Test case description : 190 ~~~~~~~~~~~~~~~~~~~~~~~ 191 - disable autosync 192 - set differents parameters 193 - check the value on the filesystem 194 - sync 195 - check the value on the filesystem 196 Tested commands : 197 ~~~~~~~~~~~~~~~~~ 198 - [sync] function 199 Used commands : 200 ~~~~~~~~~~~~~~~ 201 - [setAutoSync] function 202 Expected result : 203 ~~~~~~~~~~~~~~~~~ 204 - sync should synchronized filessystem with blackboard 205 """ 206 log.D(self.test_03_Manual_Sync_Case.__doc__) 207 #Check the initial parameter value 208 init_value_01, err = self.pfw.sendCmd("getParameter", self.param_name_01, "") 209 init_value_02, err = self.pfw.sendCmd("getParameter", self.param_name_02, "") 210 init_value_03, err = self.pfw.sendCmd("getParameter", self.param_name_03, "") 211 init_filesystem_01 = open(self.filesystem_01).read()[:-1] 212 init_filesystem_02 = open(self.filesystem_02).read()[:-1] 213 init_filesystem_03 = open(self.filesystem_03).read()[:-1] 214 #Implement a new value 215 if int(init_value_01)==0 : 216 new_value_01 = "1" 217 else : 218 new_value_01 = "0" 219 new_value_02 = str(int(init_value_02)+1) 220 new_value_03 = str(int(init_value_03)+1) 221 #Enable the autosync 222 value = "off" 223 log.I("Disable autosync") 224 out,err = self.pfw.sendCmd("setAutoSync", value) 225 assert err == None, log.E("When enabling autosync : %s" % (err)) 226 assert out == "Done", log.F("setAutoSync - expected : Done , found : %s" % (out)) 227 #Set the new parameter value 228 self.pfw.sendCmd("setParameter", self.param_name_01, new_value_01) 229 self.pfw.sendCmd("setParameter", self.param_name_02, new_value_02) 230 self.pfw.sendCmd("setParameter", self.param_name_03, new_value_03) 231 #Check the filesystem values, must not changed 232 #BOOL 233 assert open(self.filesystem_01).read()[:-1] == init_filesystem_01, log.F("FILESYSTEM : parameter %s update error"%self.param_name_01) 234 #INT16 235 assert open(self.filesystem_02).read()[:-1] == init_filesystem_02, log.F("FILESYSTEM : parameter %s update error"%self.param_name_02) 236 #UINT32 237 assert open(self.filesystem_03).read()[:-1] == init_filesystem_03, log.F("FILESYSTEM : parameter %s update error"%self.param_name_03) 238 log.I("test setAutoSync %s : OK"%(value)) 239 log.I("Sync") 240 out,err = self.pfw.sendCmd("sync", "") 241 assert err == None, log.E("When syncing : %s" % (err)) 242 assert out == "Done", log.F("Sync - expected : Done , found : %s" % (out)) 243 #Check the filesystem values 244 #BOOL 245 assert open(self.filesystem_01).read()[:-1] != init_filesystem_01, log.F("FILESYSTEM : parameter %s is updated, autosync is still enabled"%self.param_name_01) 246 #INT16 247 assert open(self.filesystem_02).read()[:-1] != init_filesystem_02, log.F("FILESYSTEM : parameter %s is updated, autosync is still enabled"%self.param_name_02) 248 #UINT32 249 assert open(self.filesystem_03).read()[:-1] != init_filesystem_03, log.F("FILESYSTEM : parameter %s is updated, autosync is still enabled"%self.param_name_03) 250 log.I("test setAutoSync %s : OK"%(value)) 251