1c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero#!/usr/bin/python2 2c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# -*-coding:utf-8 -* 3c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 4c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Copyright (c) 2011-2015, Intel Corporation 5c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# All rights reserved. 6c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 7c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# Redistribution and use in source and binary forms, with or without modification, 8c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# are permitted provided that the following conditions are met: 9c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 10c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 1. Redistributions of source code must retain the above copyright notice, this 11c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# list of conditions and the following disclaimer. 12c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 13c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 2. Redistributions in binary form must reproduce the above copyright notice, 14c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# this list of conditions and the following disclaimer in the documentation and/or 15c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# other materials provided with the distribution. 16c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 17c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 3. Neither the name of the copyright holder nor the names of its contributors 18c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# may be used to endorse or promote products derived from this software without 19c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# specific prior written permission. 20c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# 21c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 32c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero""" 33c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroCreate a test suite for all tests about SET/GET commands 34c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 35c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroUses PfwSetTsetSuite to create a single instance of the HAL 36c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerofor all the SET/GEt commands. 37c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 38c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules CleroThese commands are tested using the methods of the classes 39c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero"BooleanTestCase", etc... 40c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero""" 41c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 42c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroimport sys 43ec5130b950992fe79400ba66336d19169772a530Adrien Mimport os 44c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroimport unittest 45ec5130b950992fe79400ba66336d19169772a530Adrien Mimport shutil 46c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerofrom Util import PfwUnitTestLib 47c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 48c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroclass Logger(object): 49c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 50c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero def __init__(self, filename="Default.log"): 51c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero self.terminal = sys.stdout 52c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero self.log = open(filename, "a") 53c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 54c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero def write(self, message): 55c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero self.terminal.write(message) 56c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero self.log.write(message) 57c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 58c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerodef testsRunner(testDirectory): 59c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 60c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero tests = unittest.defaultTestLoader.discover(testDirectory, pattern='t*.py') 61c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero runner = unittest.TextTestRunner(verbosity=2) 62c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 63c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero return runner.run(tests).wasSuccessful() 64c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 65c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clerodef main(): 66ec5130b950992fe79400ba66336d19169772a530Adrien M 67ec5130b950992fe79400ba66336d19169772a530Adrien M pfw_root = os.environ["PFW_ROOT"] 68ec5130b950992fe79400ba66336d19169772a530Adrien M pfw_result = os.environ["PFW_RESULT"] 69ec5130b950992fe79400ba66336d19169772a530Adrien M xml_path = "xml/configuration/ParameterFrameworkConfiguration.xml" 70ec5130b950992fe79400ba66336d19169772a530Adrien M 71ec5130b950992fe79400ba66336d19169772a530Adrien M os.environ["PFW_TEST_TOOLS"] = os.path.dirname(os.path.abspath(__file__)) 72ec5130b950992fe79400ba66336d19169772a530Adrien M os.environ["PFW_TEST_CONFIGURATION"] = os.path.join(pfw_root, xml_path) 73ec5130b950992fe79400ba66336d19169772a530Adrien M 74ec5130b950992fe79400ba66336d19169772a530Adrien M try: 75ec5130b950992fe79400ba66336d19169772a530Adrien M # This directory must not exist. An exception will be raised if it does. 76ec5130b950992fe79400ba66336d19169772a530Adrien M os.makedirs(pfw_result) 77ec5130b950992fe79400ba66336d19169772a530Adrien M 78ec5130b950992fe79400ba66336d19169772a530Adrien M isAlive = os.path.join(pfw_result,"isAlive") 79ec5130b950992fe79400ba66336d19169772a530Adrien M with open(isAlive, 'w') as fout: 80ec5130b950992fe79400ba66336d19169772a530Adrien M fout.write('true') 81ec5130b950992fe79400ba66336d19169772a530Adrien M 82ec5130b950992fe79400ba66336d19169772a530Adrien M needResync = os.path.join(pfw_result,"needResync") 83ec5130b950992fe79400ba66336d19169772a530Adrien M with open(needResync, 'w') as fout: 84ec5130b950992fe79400ba66336d19169772a530Adrien M fout.write('false') 85ec5130b950992fe79400ba66336d19169772a530Adrien M 86ec5130b950992fe79400ba66336d19169772a530Adrien M success = testsRunner('PfwTestCase') 87ec5130b950992fe79400ba66336d19169772a530Adrien M 88ec5130b950992fe79400ba66336d19169772a530Adrien M finally: 89ec5130b950992fe79400ba66336d19169772a530Adrien M shutil.rmtree(pfw_result) 90ec5130b950992fe79400ba66336d19169772a530Adrien M 91ec5130b950992fe79400ba66336d19169772a530Adrien M sys.exit(0 if success else 1) 92c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero 93c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Cleroif __name__ == "__main__": 94c4cc78f87e10cd3ac61f936b1c2ee3d11e9b9d02Jules Clero main() 95