Merge "liblog: test: newline space prefix and max length print tests"
This commit is contained in:
commit
2aae509b4f
|
@ -173,7 +173,7 @@ static inline int32_t get4LE(const char* src)
|
|||
return src[0] | (src[1] << 8) | (src[2] << 16) | (src[3] << 24);
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_bswrite) {
|
||||
static void bswrite_test(const char *message) {
|
||||
struct logger_list *logger_list;
|
||||
|
||||
pid_t pid = getpid();
|
||||
|
@ -181,10 +181,30 @@ TEST(liblog, __android_log_bswrite) {
|
|||
ASSERT_TRUE(NULL != (logger_list = android_logger_list_open(
|
||||
LOG_ID_EVENTS, ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 1000, pid)));
|
||||
|
||||
static const char buffer[] = "Hello World";
|
||||
log_time ts(android_log_clockid());
|
||||
|
||||
ASSERT_LT(0, __android_log_bswrite(0, buffer));
|
||||
ASSERT_LT(0, __android_log_bswrite(0, message));
|
||||
size_t num_lines = 1, size = 0, length = 0, total = 0;
|
||||
const char *cp = message;
|
||||
while (*cp) {
|
||||
if (*cp == '\n') {
|
||||
if (cp[1]) {
|
||||
++num_lines;
|
||||
}
|
||||
} else {
|
||||
++size;
|
||||
}
|
||||
++cp;
|
||||
++total;
|
||||
++length;
|
||||
if ((LOGGER_ENTRY_MAX_PAYLOAD - 4 - 1 - 4) <= length) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
while (*cp) {
|
||||
++cp;
|
||||
++total;
|
||||
}
|
||||
usleep(1000000);
|
||||
|
||||
int count = 0;
|
||||
|
@ -199,7 +219,7 @@ TEST(liblog, __android_log_bswrite) {
|
|||
|
||||
if ((log_msg.entry.sec < (ts.tv_sec - 1))
|
||||
|| ((ts.tv_sec + 1) < log_msg.entry.sec)
|
||||
|| (log_msg.entry.len != (4 + 1 + 4 + sizeof(buffer) - 1))
|
||||
|| ((size_t)log_msg.entry.len != (4 + 1 + 4 + length))
|
||||
|| (log_msg.id() != LOG_ID_EVENTS)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -210,22 +230,22 @@ TEST(liblog, __android_log_bswrite) {
|
|||
continue;
|
||||
}
|
||||
|
||||
int len = get4LE(eventData + 4 + 1);
|
||||
if (len == (sizeof(buffer) - 1)) {
|
||||
size_t len = get4LE(eventData + 4 + 1);
|
||||
if (len == total) {
|
||||
++count;
|
||||
|
||||
AndroidLogFormat *logformat = android_log_format_new();
|
||||
EXPECT_TRUE(NULL != logformat);
|
||||
AndroidLogEntry entry;
|
||||
char msgBuf[1024];
|
||||
EXPECT_EQ(0, android_log_processBinaryLogBuffer(&log_msg.entry_v1,
|
||||
&entry,
|
||||
NULL,
|
||||
msgBuf,
|
||||
sizeof(msgBuf)));
|
||||
fflush(stderr);
|
||||
EXPECT_EQ((int)(19 + sizeof(buffer)),
|
||||
android_log_printLogLine(logformat, fileno(stderr), &entry));
|
||||
int processBinaryLogBuffer = android_log_processBinaryLogBuffer(
|
||||
&log_msg.entry_v1, &entry, NULL, msgBuf, sizeof(msgBuf));
|
||||
EXPECT_EQ((length == total) ? 0 : -1, processBinaryLogBuffer);
|
||||
if (processBinaryLogBuffer == 0) {
|
||||
fflush(stderr);
|
||||
EXPECT_EQ((int)((20 * num_lines) + size),
|
||||
android_log_printLogLine(logformat, fileno(stderr), &entry));
|
||||
}
|
||||
android_log_format_free(logformat);
|
||||
}
|
||||
}
|
||||
|
@ -235,131 +255,27 @@ TEST(liblog, __android_log_bswrite) {
|
|||
android_logger_list_close(logger_list);
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_bswrite__empty_string) {
|
||||
struct logger_list *logger_list;
|
||||
|
||||
pid_t pid = getpid();
|
||||
|
||||
ASSERT_TRUE(NULL != (logger_list = android_logger_list_open(
|
||||
LOG_ID_EVENTS, ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 1000, pid)));
|
||||
|
||||
static const char buffer[] = "";
|
||||
log_time ts(android_log_clockid());
|
||||
|
||||
ASSERT_LT(0, __android_log_bswrite(0, buffer));
|
||||
usleep(1000000);
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (;;) {
|
||||
log_msg log_msg;
|
||||
if (android_logger_list_read(logger_list, &log_msg) <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
ASSERT_EQ(log_msg.entry.pid, pid);
|
||||
|
||||
if ((log_msg.entry.sec < (ts.tv_sec - 1))
|
||||
|| ((ts.tv_sec + 1) < log_msg.entry.sec)
|
||||
|| (log_msg.entry.len != (4 + 1 + 4))
|
||||
|| (log_msg.id() != LOG_ID_EVENTS)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
char *eventData = log_msg.msg();
|
||||
|
||||
if (eventData[4] != EVENT_TYPE_STRING) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int len = get4LE(eventData + 4 + 1);
|
||||
if (len == (sizeof(buffer) - 1)) {
|
||||
++count;
|
||||
|
||||
AndroidLogFormat *logformat = android_log_format_new();
|
||||
EXPECT_TRUE(NULL != logformat);
|
||||
AndroidLogEntry entry;
|
||||
char msgBuf[1024];
|
||||
EXPECT_EQ(0, android_log_processBinaryLogBuffer(&log_msg.entry_v1,
|
||||
&entry,
|
||||
NULL,
|
||||
msgBuf,
|
||||
sizeof(msgBuf)));
|
||||
fflush(stderr);
|
||||
EXPECT_EQ((int)(19 + sizeof(buffer)),
|
||||
android_log_printLogLine(logformat, fileno(stderr), &entry));
|
||||
android_log_format_free(logformat);
|
||||
}
|
||||
}
|
||||
|
||||
EXPECT_EQ(1, count);
|
||||
|
||||
android_logger_list_close(logger_list);
|
||||
TEST(liblog, __android_log_bswrite_and_print) {
|
||||
bswrite_test("Hello World");
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_bswrite__newline_prefix) {
|
||||
struct logger_list *logger_list;
|
||||
|
||||
pid_t pid = getpid();
|
||||
|
||||
ASSERT_TRUE(NULL != (logger_list = android_logger_list_open(
|
||||
LOG_ID_EVENTS, ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 1000, pid)));
|
||||
|
||||
static const char buffer[] = "\nHello World\n";
|
||||
log_time ts(android_log_clockid());
|
||||
|
||||
ASSERT_LT(0, __android_log_bswrite(0, buffer));
|
||||
usleep(1000000);
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (;;) {
|
||||
log_msg log_msg;
|
||||
if (android_logger_list_read(logger_list, &log_msg) <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
ASSERT_EQ(log_msg.entry.pid, pid);
|
||||
|
||||
if ((log_msg.entry.sec < (ts.tv_sec - 1))
|
||||
|| ((ts.tv_sec + 1) < log_msg.entry.sec)
|
||||
|| (log_msg.entry.len != (4 + 1 + 4 + sizeof(buffer) - 1))
|
||||
|| (log_msg.id() != LOG_ID_EVENTS)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
char *eventData = log_msg.msg();
|
||||
|
||||
if (eventData[4] != EVENT_TYPE_STRING) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int len = get4LE(eventData + 4 + 1);
|
||||
if (len == (sizeof(buffer) - 1)) {
|
||||
++count;
|
||||
|
||||
AndroidLogFormat *logformat = android_log_format_new();
|
||||
EXPECT_TRUE(NULL != logformat);
|
||||
AndroidLogEntry entry;
|
||||
char msgBuf[1024];
|
||||
EXPECT_EQ(0, android_log_processBinaryLogBuffer(&log_msg.entry_v1,
|
||||
&entry,
|
||||
NULL,
|
||||
msgBuf,
|
||||
sizeof(msgBuf)));
|
||||
fflush(stderr);
|
||||
EXPECT_EQ((int)(19 + 19 - 1 + sizeof(buffer)),
|
||||
android_log_printLogLine(logformat, fileno(stderr), &entry));
|
||||
android_log_format_free(logformat);
|
||||
}
|
||||
}
|
||||
|
||||
EXPECT_EQ(1, count);
|
||||
|
||||
android_logger_list_close(logger_list);
|
||||
TEST(liblog, __android_log_bswrite_and_print__empty_string) {
|
||||
bswrite_test("");
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_buf_write__newline_prefix) {
|
||||
TEST(liblog, __android_log_bswrite_and_print__newline_prefix) {
|
||||
bswrite_test("\nHello World\n");
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_bswrite_and_print__newline_space_prefix) {
|
||||
bswrite_test("\n Hello World \n");
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_bswrite_and_print__multiple_newline) {
|
||||
bswrite_test("one\ntwo\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten");
|
||||
}
|
||||
|
||||
static void buf_write_test(const char *message) {
|
||||
struct logger_list *logger_list;
|
||||
|
||||
pid_t pid = getpid();
|
||||
|
@ -368,11 +284,26 @@ TEST(liblog, __android_log_buf_write__newline_prefix) {
|
|||
LOG_ID_MAIN, ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 1000, pid)));
|
||||
|
||||
static const char tag[] = "TEST__android_log_buf_write";
|
||||
static const char buffer[] = "\nHello World\n";
|
||||
log_time ts(android_log_clockid());
|
||||
|
||||
EXPECT_LT(0, __android_log_buf_write(LOG_ID_MAIN, ANDROID_LOG_INFO,
|
||||
tag, buffer));
|
||||
tag, message));
|
||||
size_t num_lines = 1, size = 0, length = 0;
|
||||
const char *cp = message;
|
||||
while (*cp) {
|
||||
if (*cp == '\n') {
|
||||
if (cp[1]) {
|
||||
++num_lines;
|
||||
}
|
||||
} else {
|
||||
++size;
|
||||
}
|
||||
++length;
|
||||
if ((LOGGER_ENTRY_MAX_PAYLOAD - 2 - sizeof(tag)) <= length) {
|
||||
break;
|
||||
}
|
||||
++cp;
|
||||
}
|
||||
usleep(1000000);
|
||||
|
||||
int count = 0;
|
||||
|
@ -387,7 +318,7 @@ TEST(liblog, __android_log_buf_write__newline_prefix) {
|
|||
|
||||
if ((log_msg.entry.sec < (ts.tv_sec - 1))
|
||||
|| ((ts.tv_sec + 1) < log_msg.entry.sec)
|
||||
|| (log_msg.entry.len != (sizeof(tag) + sizeof(buffer) + 1))
|
||||
|| ((size_t)log_msg.entry.len != (sizeof(tag) + length + 2))
|
||||
|| (log_msg.id() != LOG_ID_MAIN)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -397,11 +328,14 @@ TEST(liblog, __android_log_buf_write__newline_prefix) {
|
|||
AndroidLogFormat *logformat = android_log_format_new();
|
||||
EXPECT_TRUE(NULL != logformat);
|
||||
AndroidLogEntry entry;
|
||||
EXPECT_EQ(0, android_log_processLogBuffer(&log_msg.entry_v1,
|
||||
&entry));
|
||||
fflush(stderr);
|
||||
EXPECT_EQ((int)(11 + 11 + sizeof(tag) + sizeof(tag) + sizeof(buffer) - 3),
|
||||
android_log_printLogLine(logformat, fileno(stderr), &entry));
|
||||
int processLogBuffer = android_log_processLogBuffer(&log_msg.entry_v1,
|
||||
&entry);
|
||||
EXPECT_EQ(0, processLogBuffer);
|
||||
if (processLogBuffer == 0) {
|
||||
fflush(stderr);
|
||||
EXPECT_EQ((int)(((11 + sizeof(tag)) * num_lines) + size),
|
||||
android_log_printLogLine(logformat, fileno(stderr), &entry));
|
||||
}
|
||||
android_log_format_free(logformat);
|
||||
}
|
||||
|
||||
|
@ -410,6 +344,18 @@ TEST(liblog, __android_log_buf_write__newline_prefix) {
|
|||
android_logger_list_close(logger_list);
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_buf_write_and_print__empty) {
|
||||
buf_write_test("");
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_buf_write_and_print__newline_prefix) {
|
||||
buf_write_test("\nHello World\n");
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_buf_write_and_print__newline_space_prefix) {
|
||||
buf_write_test("\n Hello World \n");
|
||||
}
|
||||
|
||||
TEST(liblog, __security) {
|
||||
static const char persist_key[] = "persist.logd.security";
|
||||
static const char readonly_key[] = "ro.device_owner";
|
||||
|
@ -1691,6 +1637,14 @@ TEST(liblog, android_errorWriteWithInfoLog__android_logger_list_read__subtag_too
|
|||
android_logger_list_close(logger_list);
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_bswrite_and_print___max) {
|
||||
bswrite_test(max_payload_buf);
|
||||
}
|
||||
|
||||
TEST(liblog, __android_log_buf_write_and_print__max) {
|
||||
buf_write_test(max_payload_buf);
|
||||
}
|
||||
|
||||
TEST(liblog, android_errorWriteLog__android_logger_list_read__success) {
|
||||
const int TAG = 123456785;
|
||||
const char SUBTAG[] = "test-subtag";
|
||||
|
|
Loading…
Reference in New Issue