Merge "Base: Hand complete log message to aborter"
am: 0d762648d0
Change-Id: I33dd453e91aa60f3d797d4bd2db53d9ac1599a0b
This commit is contained in:
commit
e082ce827d
|
@ -415,6 +415,8 @@ LogMessage::~LogMessage() {
|
|||
msg[nl] = '\0';
|
||||
LogLine(data_->GetFile(), data_->GetLineNumber(), data_->GetId(),
|
||||
data_->GetSeverity(), &msg[i]);
|
||||
// Undo the zero-termination so we can give the complete message to the aborter.
|
||||
msg[nl] = '\n';
|
||||
i = nl + 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -606,3 +606,27 @@ TEST(logging, LOG_FATAL_NOOP_ABORTER) {
|
|||
|
||||
ASSERT_DEATH({SuppressAbortUI(); LOG(FATAL) << "foobar";}, "foobar");
|
||||
}
|
||||
|
||||
struct CountLineAborter {
|
||||
static void CountLineAborterFunction(const char* msg) {
|
||||
while (*msg != 0) {
|
||||
if (*msg == '\n') {
|
||||
newline_count++;
|
||||
}
|
||||
msg++;
|
||||
}
|
||||
}
|
||||
static size_t newline_count;
|
||||
};
|
||||
size_t CountLineAborter::newline_count = 0;
|
||||
|
||||
TEST(logging, LOG_FATAL_ABORTER_MESSAGE) {
|
||||
CountLineAborter::newline_count = 0;
|
||||
android::base::SetAborter(CountLineAborter::CountLineAborterFunction);
|
||||
|
||||
android::base::ScopedLogSeverity sls(android::base::ERROR);
|
||||
CapturedStderr cap;
|
||||
LOG(FATAL) << "foo\nbar";
|
||||
|
||||
EXPECT_EQ(CountLineAborter::newline_count, 1U + 1U); // +1 for final '\n'.
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue