[analyzer] SATest: Use logger in single-threaded mode as well

Summary:
It generalizes the way the output looks across any -jN.
Additionally it solves the buffering problems.

Differential Revision: https://reviews.llvm.org/D81601
This commit is contained in:
Valeriy Savchenko 2020-06-09 12:33:56 +03:00
parent 7a84ab9f9b
commit 495fd64041
1 changed files with 20 additions and 19 deletions

View File

@ -70,9 +70,27 @@ from typing import Dict, IO, List, NamedTuple, Optional, TYPE_CHECKING
# Helper functions.
###############################################################################
class StreamToLogger:
def __init__(self, logger: logging.Logger,
log_level: int = logging.INFO):
self.logger = logger
self.log_level = log_level
def write(self, message: str):
# Rstrip in order not to write an extra newline.
self.logger.log(self.log_level, message.rstrip())
def flush(self):
pass
def fileno(self) -> int:
return 0
Logger = logging.getLogger("main")
LOCAL = threading.local()
LOCAL.stdout = sys.stdout
LOCAL.stderr = sys.stderr
LOCAL.stdout = StreamToLogger(Logger, logging.INFO)
LOCAL.stderr = StreamToLogger(Logger, logging.ERROR)
def stderr(message: str):
@ -164,23 +182,6 @@ CHECKERS = ",".join([
VERBOSE = 0
class StreamToLogger:
def __init__(self, logger: logging.Logger,
log_level: int = logging.INFO):
self.logger = logger
self.log_level = log_level
def write(self, message: str):
# Rstrip in order not to write an extra newline.
self.logger.log(self.log_level, message.rstrip())
def flush(self):
pass
def fileno(self) -> int:
return 0
###############################################################################
# Test harness logic.
###############################################################################