diff options
author | Alan Stokes <alanstokes@google.com> | 2017-08-25 14:13:06 +0100 |
---|---|---|
committer | Alan Stokes <alanstokes@google.com> | 2017-08-25 14:53:21 +0100 |
commit | 81e63d0515b384485168f1b14b3ea68eb20c1246 (patch) | |
tree | 859a3d44864c77aefe51cd38bf77fb7e2a3206ff /logd | |
parent | 2732a7e0232d77efbf19d7053f5e5d5d39719910 (diff) | |
download | system_core-81e63d0515b384485168f1b14b3ea68eb20c1246.tar.gz system_core-81e63d0515b384485168f1b14b3ea68eb20c1246.tar.bz2 system_core-81e63d0515b384485168f1b14b3ea68eb20c1246.zip |
Small liblog test fixes & readability improvements.
liblog concurrent printf tests now check every write succeeds.
logd timeout_negative tests exits as soon as one run succeeds.
Test: CTS tests till pass.
Change-Id: I9a166a0abcb8b9aa5c055c35c5dccf30616a4e24
Diffstat (limited to 'logd')
-rw-r--r-- | logd/tests/logd_test.cpp | 62 |
1 files changed, 35 insertions, 27 deletions
diff --git a/logd/tests/logd_test.cpp b/logd/tests/logd_test.cpp index 4397b144c..8ee5ea10d 100644 --- a/logd/tests/logd_test.cpp +++ b/logd/tests/logd_test.cpp @@ -646,16 +646,20 @@ void timeout_negative(const char* command) { recv(fd, msg_timeout.buf, sizeof(msg_timeout), 0) > 0; } - alarm_timeout = - alarm((old_alarm <= 0) ? old_alarm - : (old_alarm > (1 + 3 - alarm_wrap)) - ? old_alarm - 3 + alarm_wrap - : 2); + if (old_alarm > 0) { + unsigned int time_spent = 3 - alarm_wrap; + if (old_alarm > time_spent + 1) { + old_alarm -= time_spent; + } else { + old_alarm = 2; + } + } + alarm_timeout = alarm(old_alarm); sigaction(SIGALRM, &old_sigaction, nullptr); close(fd); - if (!content_wrap && !alarm_wrap && content_timeout && alarm_timeout) { + if (content_wrap && alarm_wrap && content_timeout && alarm_timeout) { break; } } @@ -710,8 +714,8 @@ TEST(logd, timeout) { // A few tries to get it right just in case wrap kicks in due to // content providers being active during the test. int i = 5; - log_time now(android_log_clockid()); - now.tv_sec -= 30; // reach back a moderate period of time + log_time start(android_log_clockid()); + start.tv_sec -= 30; // reach back a moderate period of time while (--i) { int fd = socket_local_client("logdr", ANDROID_SOCKET_NAMESPACE_RESERVED, @@ -726,7 +730,7 @@ TEST(logd, timeout) { std::string ask = android::base::StringPrintf( "dumpAndClose lids=0,1,2,3,4,5 timeout=6 start=%" PRIu32 ".%09" PRIu32, - now.tv_sec, now.tv_nsec); + start.tv_sec, start.tv_nsec); struct sigaction ignore, old_sigaction; memset(&ignore, 0, sizeof(ignore)); @@ -756,11 +760,15 @@ TEST(logd, timeout) { recv(fd, msg_timeout.buf, sizeof(msg_timeout), 0) > 0; } - alarm_timeout = - alarm((old_alarm <= 0) ? old_alarm - : (old_alarm > (1 + 3 - alarm_wrap)) - ? old_alarm - 3 + alarm_wrap - : 2); + if (old_alarm > 0) { + unsigned int time_spent = 3 - alarm_wrap; + if (old_alarm > time_spent + 1) { + old_alarm -= time_spent; + } else { + old_alarm = 2; + } + } + alarm_timeout = alarm(old_alarm); sigaction(SIGALRM, &old_sigaction, nullptr); close(fd); @@ -773,23 +781,23 @@ TEST(logd, timeout) { // active _or_ inactive during the test. if (content_timeout) { log_time msg(msg_timeout.entry.sec, msg_timeout.entry.nsec); - if (msg < now) { + if (msg < start) { fprintf(stderr, "%u.%09u < %u.%09u\n", msg_timeout.entry.sec, - msg_timeout.entry.nsec, (unsigned)now.tv_sec, - (unsigned)now.tv_nsec); + msg_timeout.entry.nsec, (unsigned)start.tv_sec, + (unsigned)start.tv_nsec); _exit(-1); } - if (msg > now) { - now = msg; - now.tv_sec += 30; - msg = log_time(android_log_clockid()); - if (now > msg) { - now = msg; - --now.tv_sec; + if (msg > start) { + start = msg; + start.tv_sec += 30; + log_time now = log_time(android_log_clockid()); + if (start > now) { + start = now; + --start.tv_sec; } } } else { - now.tv_sec -= 120; // inactive, reach further back! + start.tv_sec -= 120; // inactive, reach further back! } } @@ -802,8 +810,8 @@ TEST(logd, timeout) { } if (content_wrap || !content_timeout) { - fprintf(stderr, "now=%" PRIu32 ".%09" PRIu32 "\n", now.tv_sec, - now.tv_nsec); + fprintf(stderr, "start=%" PRIu32 ".%09" PRIu32 "\n", start.tv_sec, + start.tv_nsec); } EXPECT_TRUE(written); |