def get_active_streamblock_info(db_file_list):
    logger.debug("get_active_streamblock_info : ")

    q_stream = get_streamblock_query()
    query = str("SELECT Name FROM StreamBlock AS Sb " + "WHERE sb.Active == 1") + str(q_stream)
    logger.debug("  query: " + str(query))

    prv_num = 0
    num = 0
    for db_file in db_file_list:
        if not os.path.isfile(db_file):
            raise Exception("Unable to find db file:" + db_file)
        conn = sqlite3.connect(db_file)
        cur = conn.cursor()
        for q in query.split(";"):
            if len(q) > 0:
                cur.execute(q)
        rows = cur.fetchall()
        conn.close()
        num = len(rows)

        if prv_num != 0 and num != prv_num:
            logger.error("Inconsistent numbers of streams in DBs")
        prv_num = num
    return rows
Ejemplo n.º 2
0
def end_inner_iterator_if_required(active_iterator_handle):
    itr_result_obj = iterator_utils.get_leaf_iterator()
    root_result = iterator_utils.get_stm_test_result_throw()

    if itr_result_obj is None or \
            itr_result_obj.GetObjectHandle() == root_result.GetObjectHandle() or \
            itr_result_obj.Get(Iterator.get_stc_property_Iterator()) == active_iterator_handle:
        logger.debug('Either new iterator or leaf iterator.')
        return
    # find if new iterator or existing iterator with missing child end iterator
    while itr_result_obj is not None and \
            itr_result_obj.GetObjectHandle() != root_result.GetObjectHandle() and \
            itr_result_obj.Get(Iterator.get_stc_property_Iterator()) != active_iterator_handle:

        itr_result_obj = itr_result_obj.GetParent()
        logger.debug_result_object_info(itr_result_obj)
    if itr_result_obj.GetObjectHandle() == root_result.GetObjectHandle() or \
            itr_result_obj.Get(Iterator.get_stc_property_Iterator()) != active_iterator_handle:
        logger.debug('No existing iterator found with same handle')
        return
    # call end iterator for missing
    leaf_iterator = iterator_utils.get_leaf_iterator()
    while leaf_iterator.Get(Iterator.get_stc_property_Iterator()) != active_iterator_handle:
        logger.error('Missing end iterator for child iterator')
        end_iterator()
        leaf_iterator = iterator_utils.get_leaf_iterator()
Ejemplo n.º 3
0
 def complete_active_iteration(self, force_stop=False):
     logger.info('completea active iteration.')
     if not self.is_iteration_running():
         logger.error('No active iteration found to complete.')
         return
     logger.log_result_info_status(self._stc_result_object)
     self._active_iteration_info = ActiveIterationInfo()
     self.load_from_stc_object(self._active_iteration_info)
     self._active_iteration_status = ActiveIterationStatus()
     self.load_from_stc_object(self._active_iteration_status)
     if force_stop is True:
         self._active_iteration_status.exec_status = EnumExecStatus.stopped
     else:
         self._active_iteration_status.exec_status = EnumExecStatus.completed
     self._active_iteration_info._end_time = result_utils.get_current_time_string()
     result = self.generate_iteration_verdict()
     if result:
         self._active_iteration_status.verdict = result['verdict']
         self._active_iteration_info.result_file = result['resultFile']
         self._active_iteration_info.set_data_class(self._active_iteration_info,
                                                    EnumDataClass.iteration_result)
         self._active_iteration_info.set_data_format(self._active_iteration_info,
                                                     EnumDataFormat.none)
     else:
         self._active_iteration_status.verdict = EnumVerdict.none
         self._active_iteration_info.set_data_class(self._active_iteration_info,
                                                    EnumDataClass.iteration_result)
         self._active_iteration_info.set_data_format(self._active_iteration_info,
                                                     EnumDataFormat.none)
     self.save_active_iteration_data()
     self.reset_active_iteration_data()
     logger.info('completea active iteration completed.')
Ejemplo n.º 4
0
def complete_iteration():
    logger.info('Complete iteration.')
    itr_result_obj = iterator_utils.get_leaf_iterator()
    if itr_result_obj is None:
        logger.error('There is no iterator running to complete iteration.')
        return
    logger.debug_result_object_info(itr_result_obj)
    iterator = Iterator(0, itr_result_obj)
    iterator.complete_active_iteration()
    logger.debug('Complete iteration completed.')
Ejemplo n.º 5
0
def get_stm_test_result_throw():
    stm_tr = result_obj.get_stm_test_result()
    if stm_tr is None:
        """
        Log error for now and create result object.
        """
        # raise Exception("Unable to find StmTestResult object")
        logger.error('Unable to find StmTestResult object, creating one.')
        stm_tr = result_obj.create_stm_test_result_under_mm()
    return stm_tr
Ejemplo n.º 6
0
def end_iterator(force_stop=False):
    logger.info('End iteration.')
    itr_result_obj = iterator_utils.get_leaf_iterator()
    if itr_result_obj is None:
        logger.error('There is no iterator running to end iterator.')
        return
    iterator = Iterator(0, itr_result_obj)
    data = iterator.complete(force_stop)
    parentIterator = iterator_utils.get_leaf_iterator_no_throw()
    if parentIterator is None:
        logger.info('Adding iteration result to Test.')
        data[pc.STATUS][pc.APPLY_VERDICT] = True
        test_result = TestResult()
        test_result.add_provider_data(data)
    else:
        logger.info('Adding iteration result to parent iterator.')
        logger.debug_result_object_info(itr_result_obj)
        parent_itr = Iterator(0, parentIterator)
        parent_itr.add_child_iterator_data(data)
    logger.debug('End iteration completed')
Ejemplo n.º 7
0
def end_all_iterators(force_stop):
    itr_result_obj = iterator_utils.get_leaf_iterator()
    while itr_result_obj is not None:
        logger.error('End iterator call is missing.')
        end_iterator(force_stop)
        itr_result_obj = iterator_utils.get_leaf_iterator()