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
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()
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.')
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.')
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
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')
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()