def __init__(self, tc_name, global_config):
        """
        Constructor
        """

        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # Read Band from test case xml file (str)
        self._cell_band = str(self._tc_parameters.get_param_value("CELL_BAND"))

        # Read UL_UARFCN from test case xml file
        self._ul_uarfcn = int(self._tc_parameters.get_param_value("UL_UARFCN"))

        # Read mobile power from test case xml file (int)
        self._mobile_power = int(self._tc_parameters.get_param_value("MOBILE_POWER"))

        # Read CELL_POWER from test case xml file
        self._cell_power = \
            int(self._tc_parameters.get_param_value("CELL_POWER"))

        # Read REBOOT_MODE from test case xml file
        self._reboot_mode = str(self._tc_parameters.get_param_value("REBOOT_MODE"))
        # Init fuel gauging param
        self.em_core_module.init_fg_param()

        # Instantiate ConversionToolBox into conv_toolbox object
        self._conversion_toolbox = get_conversion_toolbox()

        # Read registrationTimeout from Phone_Catalog.xml
        self._registration_timeout = \
            int(self._dut_config.get("registrationTimeout"))

        # Create cellular network simulator and retrieve 3g APIs
        self._ns = self._em.get_cellular_network_simulator("NETWORK_SIMULATOR1")
        self._ns_3g = self._ns.get_cell_3g()

        # Initialize EM  xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)
        # result file
        ocv_file_name = os.path.join(self._saving_directory,
                                     "Energy_Management_result_report.xml")
        self._em_meas_result = EMUtil.XMLMeasurementFile(ocv_file_name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)
        # init variables
        self._ocv_list = []
        self._network_type = "3G"
예제 #2
0
    def __init__(self, tc_name, global_config):
        """
        Get parameter from xml testcase file
        """
        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)
        # init fuel gauging parameters
        self.em_core_module.init_fg_param()
        # Read MAINTENANCE_CHARGING_TIMEOUT from test case xml file
        self.__maintenance_timeout = \
            int(self._tc_parameters.get_param_value("MAINTENANCE_CHARGING_TIMEOUT"))
        # Read EXPECTED_BATTERY_STATE from test case xml file
        self.__expected_batt_state = \
            str(self._tc_parameters.get_param_value(
                "EXPECTED_BATT_STATE")).upper()
        # Read DATA_POLLING from test case xml file
        self.__data_polling = \
            int(self._tc_parameters.get_param_value(
                "DATA_POLLING"))
        # Read CAPABILITY_TAG from test case xml file
        self._capability_tag = \
            str(self._tc_parameters.get_param_value(
                "CAPABILITY_TAG"))
        # Read MULTIMEDIA_TYPE from test case xml file
        self.__multimedia_type = \
            str(self._tc_parameters.get_param_value("MULTIMEDIA_TYPE")).upper()
        # Get Multimedia Parameters
        self.__multimedia_file = self._tc_parameters.get_param_value(
            "MULTIMEDIA_FILE")
        self.__volume = int(self._tc_parameters.get_param_value("VOLUME"))

        # Get path to multimedia files
        self.__multimedia_path = self._device.multimedia_path

        # Initialize EM  xml object
        # measurement file
        name = os.path.join(self._saving_directory, "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)
        # hysteresis file
        name = os.path.join(self._saving_directory, "EM_hysteresis_report.xml")
        self.__em_hysteresis_tab = EMUtil.XMLMeasurementFile(name)

        # init variables
        self.__multimedia_api = None
        self._system_api = self._device.get_uecmd("System", True)
예제 #3
0
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """

        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)
        # init fuel gauging parameters
        self.em_core_module.init_fg_param()
        # Read STAND_DURATION from test case xml file
        self._stand_mode = \
            self._tc_parameters.get_param_value(
                "STAND_MODE")
        # Read STANDBY_DURATION from test case xml file
        self._stand_duration = \
            int(self._tc_parameters.get_param_value(
                "STAND_DURATION"))
        # Initialize EM  xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)

        self._em_targets = self._target_file.parse_energy_management_targets(
            "LAB_EM_BATT_IBATT_STANDBY_MODE",
            self._tc_parameters.get_params_as_dict(),
            self._device.get_phone_model())

        # load targets in order to measure iteration
        self._em_meas_verdict.load_target(self._em_targets)

        # get network api
        self._network_api = self._device.get_uecmd("Networking")
예제 #4
0
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """
        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # save global config into an attribute in
        # order to retrieve value in set_up method
        self.__global_config = global_config

        # Read OFF_TIMEOUT from test case xml file
        self._sleep_time = \
            int(self._tc_parameters.get_param_value(
                "OFF_TIMEOUT"))

        # Initialize EM  xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)

        # Call ConfigsParser to parse Energy_Management
        self._em_targets = self._target_file.parse_energy_management_targets(
            "LAB_EM_BATT_BOOT_COS_MOS",
            self._tc_parameters.get_params_as_dict(),
            self._device.get_phone_model())

        # load targets in order to measure iteration
        self._em_meas_verdict.load_target(self._em_targets)

        # init variables
        self._off_timeout = 300
예제 #5
0
    def __init__(self, tc_name, global_config):
        """
        Get parameter from xml testcase file
        """
        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)
        self.em_core_module.init_fg_param()

        # Read MAINTENANCE_CHARGING_TIMEOUT from test case xml file
        self.__maintenance_timeout = int(
            self._tc_parameters.get_param_value(
                "MAINTENANCE_CHARGING_TIMEOUT"))
        # Read EXPECTED_BATTERY_STATE from test case xml file
        self.__expected_batt_state = str(
            self._tc_parameters.get_param_value(
                "EXPECTED_BATT_STATE")).upper()
        # Read DATA_POLLING from test case xml file
        self.__data_polling = int(
            self._tc_parameters.get_param_value("DATA_POLLING"))
        # Read TEMPERATURE from test case xml file
        self.tc_module = None
        self.__chamber_tag = "ROOM"
        self.__temperature = str(
            self._tc_parameters.get_param_value("TEMPERATURE"))
        if self.__temperature != "ROOM":
            # get temperature chamber equipment if not room temperature
            self.__temperature = int(self.__temperature)
            self.tc_module = ThermalChamberModule(self.__temperature)
            # inform module that this is not a default thermal test
            self.tc_module.set_test_type("SPECIFIC")
            self.__chamber_tag = self.tc_module.get_chamber_tag()

        # Read LOAD from test case xml file
        self.__load = \
            str(self._tc_parameters.get_param_value("LOAD")).upper()

        # Initialize EM  xml object
        # measurement file
        name = os.path.join(self._saving_directory, "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)
        # hysteresis file
        name = os.path.join(self._saving_directory, "EM_hysteresis_report.xml")
        self.__em_hysteresis_tab = EMUtil.XMLMeasurementFile(name)
    def __init__(self, tc_name, global_config):
        """
        Advanced ON OFF test that also provide action to charge the board
        """

        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)
        # init fuel gauging parameters
        self.em_core_module.init_fg_param()
        # time to wait to boot
        self.__boot_timeout = self._tc_parameters.get_param_value(
            "BOOT_TIMEOUT",
            self._device.get_boot_timeout(),
            default_cast_type=int)
        # time to wait just after the boot action and before wait to successfully boot
        self.__after_perform_boot_time = self._tc_parameters.get_param_value(
            "TIME_TO_WAIT_AFTER_JUST_PERFORM_BOOT", 10, default_cast_type=int)
        # time to wait to shutdown
        self.__shutdown_timeout = self._tc_parameters.get_param_value(
            "SHUTDOWN_TIMEOUT", default_cast_type=int)
        # cable to insert to make board boot
        self.__cable_type = self._tc_parameters.get_param_value("CABLE_TYPE")
        self.__keep_cable_during_shutdown = self._tc_parameters.get_param_value(
            "KEEP_CABLE_DURING_SHUTDOWN", True, default_cast_type=str_to_bool)
        # cable to insert to make board boot
        self.__max_iteration = self._tc_parameters.get_param_value(
            "MAX_ITERATION", default_cast_type=int)
        # time to wait to shutdown
        self.__max_fail = self._tc_parameters.get_param_value(
            "MAX_CONSECUTIVE_FAIL", 0, default_cast_type=int)
        self.__min_capacity_stop = self._tc_parameters.get_param_value(
            "MIN_CAPACITY_TO_STOP_TEST", 0, default_cast_type=int)
        # time to wait to shutdown
        # Initialize EM  xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)
        self.__parser_api = self._device.get_uecmd("Aplog", True)
        self.__fail_boot = 0
        self.__pass_boot = 0
예제 #7
0
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """
        # Call Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # Read READ_INFO_TIMEOUT from test case xml file
        self._read_info_timeout = \
            int(self._tc_parameters.get_param_value("READ_INFO_TIMEOUT"))

        # Read CHARGER_TYPE from TC parameters
        self._charger_type = \
            str(self._tc_parameters.get_param_value("CHARGER_TYPE"))

        # Read all temperatures from TC parameters
        temperatures = str(
            self._tc_parameters.get_param_value("TEMPERATURE_CYCLE"))

        self._em_targets = self._target_file.parse_energy_management_targets(
            "LAB_EM_BATT_TEMP_MEAS_CYCLE",
            self._tc_parameters.get_params_as_dict(),
            self._device.get_phone_model())

        # load targets in order to measure iteration
        self._em_meas_verdict.load_target(self._em_targets)

        # get temperature chamber equipment
        self.tc_module = ThermalChamberModule(self._ambient_temperature)
        self.tc_module.set_test_type("SPECIFIC")

        # Initialize EM  xml object
        # measurement file
        name = os.path.join(self._saving_directory, "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(name)

        self._temperature_cycle = []
        for temperature in temperatures.split(","):
            self._temperature_cycle.append(int(temperature))
예제 #8
0
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """

        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # Read REBOOT_MODE from test case xml file
        self._reboot_mode = str(
            self._tc_parameters.get_param_value("REBOOT_MODE"))
        # Init fuel gauging param
        self.em_core_module.init_fg_param()

        # Initialize EM  xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """
        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # Read Band from test case xml file (str)
        self._cell_band = str(self._tc_parameters.get_param_value("CELL_BAND"))
        # Read CELL_SERVICE from test case xml file
        self._cell_service = \
            str(self._tc_parameters.get_param_value("CELL_SERVICE"))
        # Read TCH_ARFCN from test case xml file
        self._tch_arfcn = int(self._tc_parameters.get_param_value("TCH_ARFCN"))
        # Read UPLINK_CHANNEL from test case xml file
        self._uplink_channel = int(self._tc_parameters.get_param_value("UPLINK_CHANNEL"))
        # Read CELL_POWER from test case xml file
        self._cell_power = \
            int(self._tc_parameters.get_param_value("CELL_POWER"))

        # Read DATA_CALL from test case xml file
        self._data_call = str_to_bool(self._tc_parameters.get_param_value("DATA_CALL"))
        # Read DATA_CALL_MODE from test case xml file
        self._data_call_mode = str(self._tc_parameters.get_param_value("DATA_CALL_MODE"))

        # Init fuel gauging param
        self.em_core_module.init_fg_param()

        # Read registrationTimeout from Phone_Catalog.xml
        self._registration_timeout = \
            int(self._dut_config.get("registrationTimeout"))

        # Create cellular network simulator and retrieve 2G APIs
        self._ns = self._em.get_cellular_network_simulator("NETWORK_SIMULATOR1")
        self._ns_2g = self._ns.get_cell_2g()
        self._data_2g = self._ns_2g.get_data()
        self._vc_2g = self._ns_2g.get_voice_call()
        self._test_mode_2g = self._ns_2g.get_test_mode()

        # Initialize EM  xml object
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)
        # Call ConfigsParser to parse Energy_Management
        self._em_targets = self._target_file.parse_energy_management_targets(
            "LAB_EM_BATT_MONITOR_BURST_CTRL", self._tc_parameters.get_params_as_dict(),
            self._device.get_phone_model())

        # load targets in order to measure iteration
        self._em_meas_verdict.load_target(self._em_targets)

        # init variables
        self._total_test = 0
        self._shutdown_timeout = 60
        self._network_type = "2G"
        self._slots_conf = []

        # prepare to launch scheduled test depending of battery capacity
        # enter test like below (battery_min, battery_max, test id): function_to_call
        self.scheduled_test = {
            (65, 81, "1"): self.__ber_test,
            (12, 19, "2"): self.__ber_test,
            (1, 5, "3"): self.__ber_test,
        }
예제 #10
0
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """

        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # Read Band from test case xml file (str)
        self._cell_band = str(self._tc_parameters.get_param_value("CELL_BAND"))
        # Read CELL_SERVICE from test case xml file
        self._cell_service = \
            str(self._tc_parameters.get_param_value("CELL_SERVICE"))
        # Read TCH_ARFCN from test case xml file
        self._tch_arfcn = int(self._tc_parameters.get_param_value("TCH_ARFCN"))
        # Read UPLINK_CHANNEL from test case xml file
        self._uplink_channel = int(
            self._tc_parameters.get_param_value("UPLINK_CHANNEL"))
        # Read CELL_POWER from test case xml file
        self._cell_power = \
            int(self._tc_parameters.get_param_value("CELL_POWER"))

        # Read DATA_CALL from test case xml file
        self._data_call = str_to_bool(
            self._tc_parameters.get_param_value("DATA_CALL"))
        # Read DATA_CALL_MODE from test case xml file
        self._data_call_mode = str(
            self._tc_parameters.get_param_value("DATA_CALL_MODE"))

        # Read REBOOT_MODE from test case xml file
        self._reboot_mode = str(
            self._tc_parameters.get_param_value("REBOOT_MODE"))
        # Init fuel gauging param
        self.em_core_module.init_fg_param()

        # Read registrationTimeout from Device_Catalog.xml
        self._registration_timeout = \
            int(self._dut_config.get("registrationTimeout"))

        # Create cellular network simulator and retrieve 2G APIs
        self._ns = self._em.get_cellular_network_simulator(
            "NETWORK_SIMULATOR1")
        self._ns_2g = self._ns.get_cell_2g()
        self._data_2g = self._ns_2g.get_data()

        # Initialize EM  xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)
        # result file
        ocv_file_name = os.path.join(self._saving_directory,
                                     "Energy_Management_result_report.xml")
        self._em_meas_result = EMUtil.XMLMeasurementFile(ocv_file_name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)
        # init variables
        self._ocv_list = []
        self._slots_conf = []
예제 #11
0
    def __init__(self, tc_name, global_config):
        """
        Constructor
        """
        # Call UseCase base Init function
        EmUsecaseBase.__init__(self, tc_name, global_config)

        # save global config into an attribute in
        # order to retrieve value in set_up method
        self.__global_config = global_config

        # Read LOAD from test case xml file
        self._load = \
            str(self._tc_parameters.get_param_value("LOAD"))
        # Read BATT_MIN_CAPACITY from test case xml file
        # Init fuel gauging param
        self.em_core_module.init_fg_param()
        # Read STRESS_PERIOD from test case xml file
        self.hard_stress_time = \
            int(self._tc_parameters.get_param_value(
                "STRESS_PERIOD"))
        # Read NO_STRESS_PERIOD from test case xml file
        self.soft_stress_time = \
            int(self._tc_parameters.get_param_value(
                "NO_STRESS_PERIOD"))

        if self._load in ["HEAVY", "MEDIUM"]:
            # Read Band from test case xml file (str)
            self._cell_band = str(
                self._tc_parameters.get_param_value("CELL_BAND"))
            # Read CELL_SERVICE from test case xml file
            self._cell_service = \
                str(self._tc_parameters.get_param_value("CELL_SERVICE"))
            # Read TCH_ARFCN from test case xml file
            self._tch_arfcn = int(
                self._tc_parameters.get_param_value("TCH_ARFCN"))
            # Read UPLINK_CHANNEL from test case xml file
            self._uplink_channel = int(
                self._tc_parameters.get_param_value("UPLINK_CHANNEL"))
            # Read CELL_POWER from test case xml file
            self._cell_power = \
                int(self._tc_parameters.get_param_value("CELL_POWER"))

            # Read registrationTimeout from Phone_Catalog.xml
            self._registration_timeout = \
                int(self._dut_config.get("registrationTimeout"))

            # Create cellular network simulator and retrieve 2G APIs
            self._ns = self._em.get_cellular_network_simulator(
                "NETWORK_SIMULATOR1")
            self._ns_2g = self._ns.get_cell_2g()
            self._data_2g = self._ns_2g.get_data()
            self._test_mode_2g = self._ns_2g.get_test_mode()

            # Get Multimedia Parameters
            self._audio_file = self._tc_parameters.get_param_value(
                "AUDIO_FILE")
            self._volume = int(self._tc_parameters.get_param_value("VOLUME"))

            # Get path to multimedia files
            self._multimedia_path = self._device.multimedia_path

            # import special api
            self._audio_api = self._device.get_uecmd("Audio")
            self._system_api = self._device.get_uecmd("System")

        if self._load in ["HEAVY"]:

            # Get FTP server parameters
            server = self.__global_config.benchConfig.\
                get_parameters("WIFI_SERVER")
            self._ftp_ip_address = server.get_param_value("IP")
            self._ftp_username = server.get_param_value("username")
            self._ftp_password = server.get_param_value("password")
            if server.has_parameter("ftp_path"):
                self._ftp_path = server.get_param_value("ftp_path")
            else:
                self._ftp_path = ""

            # get file to download info
            self._dlfilename = os.path.join(
                self._ftp_path, self._tc_parameters.get_param_value("DL_FILE"))

            # get wifi parameters
            self._wifi_router_name = None
            self._standard = None
            self._ssid = ""
            self._standard_read = None
            self._security = None
            self._security_read = None
            self._passphrase = None
            self._is_router_name_found = True
            self._is_router_found = False
            supported_wifi_standard = [
                'a', 'b', 'g', 'n', 'an', 'bg', 'gb', 'bgn', 'ngb', 'n2.4G',
                'n5G', 'off'
            ]

            bench_config = self.__global_config.benchConfig
            # Retrieve wifi access point
            self._wifi_router_name = \
                str(self._tc_parameters.get_param_value("WIFI_ACCESS_POINT"))

            # if wifi router name is not specified, exit
            if self._wifi_router_name in [None, "", "NONE"]:
                self._is_router_name_found = False

            elif (bench_config.has_parameter(self._wifi_router_name)
                  and self.__global_config.benchConfig.get_parameters(
                      self._wifi_router_name) != ""):

                self._is_router_found = True
                self._wifirouter = self.__global_config.benchConfig.\
                    get_parameters(self._wifi_router_name)

                ssid_read = self._wifirouter.get_param_value("SSID")
                self._standard_read = self._wifirouter.get_param_value(
                    "standard")
                self._security_read = self._wifirouter.\
                    get_param_value("WIFI_SECURITY").upper()

                if ssid_read != "":
                    self._ssid = ssid_read

                if self._standard_read in supported_wifi_standard:
                    self._standard = self._standard_read

                # retrieve wifi router parameters
                if self._security_read in ("NONE", "OPEN"):

                    self._logger.debug("OPEN"
                                       'Wifi Security type selected,' +
                                       'getting parameters')
                    self._security = self._security_read

                elif self._security_read in ("WEP", "WPA", "WPA2"):

                    self._security = self._security_read
                    self._logger.debug(
                        str(self._security) +
                        " Wifi Security selected, getting parameters")

                    passphrase = self._wifirouter.get_param_value("passphrase")
                    self._passphrase = passphrase

        # Initialize EM xml object
        # measurement file
        meas_file_name = os.path.join(self._saving_directory,
                                      "EM_meas_report.xml")
        self.__em_meas_tab = EMUtil.XMLMeasurementFile(meas_file_name)
        # enable Global Measurement file
        name = os.path.join(self._campaign_folder,
                            self._em_cst.GLOBAL_MEAS_FILE)
        self.__em_meas_tab.enable_global_meas(name, self._name)

        # init variables
        self.__total_test = 0
        self._slots_conf = []
        self._data_call_mode = "TEST_MODE_B"
        self.measurement_fail = 0
        self._em_targets = None