Source code for boofuzz.fuzz_logger_text

import sys

from colorama import init

from . import helpers, ifuzz_logger_backend

init()

DEFAULT_HEX_TO_STR = helpers.hex_to_hexstr


[docs]class FuzzLoggerText(ifuzz_logger_backend.IFuzzLoggerBackend): """ 该类会将 FuzzLogger 数据格式化成文本形式并输出到标准输出或是文件中。 如果想要既输出到标准输出又输出到文件中,可以使用两个 FUzzLoggerTexts。 """ INDENT_SIZE = 2 def __init__(self, file_handle=sys.stdout, bytes_to_str=DEFAULT_HEX_TO_STR): """ :type file_handle: io.BinaryIO :param file_handle: 一个用于日志记录的文件句柄,默认值为`sys.stdout`,也就是标准输出流 :type bytes_to_str: function :param bytes_to_str: 用于将发送/接收的字节数据转换为字符串以进行日志记录,默认值为 DEFAULT_HEX_TO_STR """ self._file_handle = file_handle self._format_raw_bytes = bytes_to_str
[docs] def open_test_step(self, description): self._print_log_msg(msg=description, msg_type="step")
[docs] def log_check(self, description): self._print_log_msg(msg=description, msg_type="check")
[docs] def log_error(self, description): self._print_log_msg(msg=description, msg_type="error")
[docs] def log_recv(self, data): self._print_log_msg(data=data, msg_type="receive")
[docs] def log_send(self, data): self._print_log_msg(data=data, msg_type="send")
[docs] def log_info(self, description): self._print_log_msg(msg=description, msg_type="info")
[docs] def open_test_case(self, test_case_id, name, index, *args, **kwargs): self._print_log_msg(msg=test_case_id, msg_type="test_case")
[docs] def log_fail(self, description=""): self._print_log_msg(msg=description, msg_type="fail")
[docs] def log_pass(self, description=""): self._print_log_msg(msg=description, msg_type="pass")
[docs] def close_test_case(self): pass
[docs] def close_test(self): pass
def _print_log_msg(self, msg_type, msg=None, data=None): print( helpers.format_log_msg(msg_type=msg_type, description=msg, data=data, indent_size=self.INDENT_SIZE), file=self._file_handle, )