def _do_read(self, context): sock = context.get_sock() data = None context.move2recving_msg() while self._stopsign is not True: try: data = sock.recv(self.NET_RW_SIZE) except socket.error as error: err = error.args[0] if err == errno.EAGAIN: log.debug('EAGAIN happend, peer info %s' % context.get_context_info()) return context elif err == errno.EWOULDBLOCK: log.info('EWOULDBLOCK happend, context info %s' % context.get_context_info()) return context else: log.debug('Socket error happend, error:%s, peer info %s' % (str(error), context.get_context_info())) context.to_destroy() return context except Exception as error: log.critical('Socket error happend, error:%s, peer info %s' % (str(error), context.get_context_info())) context.to_destroy() return context data_len = len(data) if data_len == 0: # socket closed by peer context.to_destroy() return context context.do_recv_data(data, data_len) del data
def _do_read(self, context): sock = context.get_sock() data = None context.get_recving_msg() while self._stopsign is not True: try: data = sock.recv(self.NET_RW_SIZE) except socket.error as error: err = error.args[0] if err == errno.EAGAIN: log.debug( 'EAGAIN happend, peer info %s' % context.get_context_info() ) return context elif err == errno.EWOULDBLOCK: log.info( 'EWOULDBLOCK happend, context info %s' % context.get_context_info() ) return context else: log.warn( 'Socket error happend, error:%s, peer info %s' % (str(error), context.get_context_info()) ) context.to_destroy() return context except Exception as error: log.critical( 'Socket error happend, error:%s, peer info %s' % (str(error), context.get_context_info()) ) context.to_destroy() return context data_len = len(data) if data_len == 0: # socket closed by peer context.to_destroy() return context context.do_recv_data(data, data_len) del data
def test_gen_wf(): """ init_comlog指定ge_wf参数为True时,将大于等于WARING级别的消息 写入${logfile}.wf日志文件中。本case用来验证相关功能是否符合 预期。 """ log.init_comlog( "Yang Honggang", logging.DEBUG, "cup.log", log.ROTATION, gen_wf=True ) log.info("info") log.critical("critical") log.error("error") log.warn("warning") log.debug("debug") # 检查是否生成了cup.log和cup.log.wf文件 try: flog = open('cup.log') flog_wf = open('cup.log.wf') except IOError: assert(False), "can not find cup.log or cup.log.wf file" # 检查cup.log的内容是否包括“debug”、"info" flog_str = flog.read() assert('debug' in flog_str and 'info' in flog_str), "cup.log's content error" # 检查cup.log.wf的内容是否包括"critical"、“error”和“warning” flog_wf_str = flog_wf.read() assert('critical' in flog_wf_str and 'error' in flog_wf_str and \ 'warning' in flog_wf_str), "cup.log.wf's content error" assert('debug' not in flog_wf_str and 'info' not in flog_wf_str), \ "cup.log.wf's content error" # cup.log的内容不应该包括"critical"、“error”和“warning” assert('critical' not in flog_str and 'error' not in flog_str and \ 'warning' not in flog_str), "cup.log's content error"