Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
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"