Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8b6131d authored by Mark Salyzyn's avatar Mark Salyzyn Committed by Gerrit Code Review
Browse files

Merge "logd: test modernization"

parents 10a124d3 62d6a2a9
Loading
Loading
Loading
Loading
+35 −47
Original line number Diff line number Diff line
@@ -93,53 +93,42 @@ static void alloc_statistics(char **buffer, size_t *length)
static char *find_benchmark_spam(char *cp)
{
    // liblog_benchmarks has been run designed to SPAM.  The signature of
    // a noisiest UID statistics is one of the following:
    // a noisiest UID statistics is:
    //
    // main: UID/PID Total size/num   Now          UID/PID[?]  Total
    // 0           7500306/304207     71608/3183   0/4225?     7454388/303656
    //    <wrap>                                                     93432/1012
    // -or-
    // 0/gone      7454388/303656     93432/1012
    // Chattiest UIDs in main log buffer:                           Size Pruned
    // UID   PACKAGE                                                BYTES LINES
    // 0     root                                                  54164 147569
    //
    // basically if we see a *large* number of 0/????? entries
    unsigned long value;
    char *benchmark = NULL;
    do {
        char *benchmark = strstr(cp, " 0/");
        char *benchmark_newline = strstr(cp, "\n0/");
        static const char signature[] = "\n0     root ";

        benchmark = strstr(cp, signature);
        if (!benchmark) {
            benchmark = benchmark_newline;
        }
        if (benchmark_newline && (benchmark > benchmark_newline)) {
            benchmark = benchmark_newline;
        }
        cp = benchmark;
        if (!cp) {
            break;
        }
        cp += 3;
        while (isdigit(*cp) || (*cp == 'g') || (*cp == 'o') || (*cp == 'n')) {
        cp = benchmark + sizeof(signature);
        while (isspace(*cp)) {
            ++cp;
        }
        value = 0;
        // ###? or gone
        if ((*cp == '?') || (*cp == 'e')) {
            while (*++cp == ' ');
        benchmark = cp;
        while (isdigit(*cp)) {
                value = value * 10ULL + *cp - '0';
            ++cp;
        }
            if (*cp != '/') {
                value = 0;
                continue;
        while (isspace(*cp)) {
            ++cp;
        }
            while (isdigit(*++cp));
            while (*cp == ' ') ++cp;
            if (!isdigit(*cp)) {
                value = 0;
        unsigned long value = 0;
        while (isdigit(*cp)) {
            value = value * 10ULL + *cp - '0';
            ++cp;
        }
        if (value > 100000UL) {
            break;
        }
    } while ((value < 900000ULL) && *cp);
    return cp;
        benchmark = NULL;
    } while (*cp);
    return benchmark;
}

TEST(logd, statistics) {
@@ -179,16 +168,16 @@ TEST(logd, statistics) {
    EXPECT_EQ(0, truncated);

#ifdef TARGET_USES_LOGD
    char *main_logs = strstr(cp, "\nmain:");
    char *main_logs = strstr(cp, "\nChattiest UIDs in main ");
    EXPECT_TRUE(NULL != main_logs);

    char *radio_logs = strstr(cp, "\nradio:");
    char *radio_logs = strstr(cp, "\nChattiest UIDs in radio ");
    EXPECT_TRUE(NULL != radio_logs);

    char *system_logs = strstr(cp, "\nsystem:");
    char *system_logs = strstr(cp, "\nChattiest UIDs in system ");
    EXPECT_TRUE(NULL != system_logs);

    char *events_logs = strstr(cp, "\nevents:");
    char *events_logs = strstr(cp, "\nChattiest UIDs in events ");
    EXPECT_TRUE(NULL != events_logs);
#endif

@@ -431,13 +420,13 @@ TEST(logd, benchmark) {
    }

#ifdef TARGET_USES_LOGD
    EXPECT_GE(100000UL, ns[log_maximum_retry]); // 42777 user
    EXPECT_GE(200000UL, ns[log_maximum_retry]); // 104734 user
#else
    EXPECT_GE(10000UL, ns[log_maximum_retry]); // 5636 kernel
#endif

#ifdef TARGET_USES_LOGD
    EXPECT_GE(30000UL, ns[log_maximum]); // 27305 user
    EXPECT_GE(90000UL, ns[log_maximum]); // 46913 user
#else
    EXPECT_GE(10000UL, ns[log_maximum]); // 5637 kernel
#endif
@@ -445,13 +434,13 @@ TEST(logd, benchmark) {
    EXPECT_GE(4096UL, ns[clock_overhead]); // 4095

#ifdef TARGET_USES_LOGD
    EXPECT_GE(250000UL, ns[log_overhead]); // 121876 user
    EXPECT_GE(250000UL, ns[log_overhead]); // 126886 user
#else
    EXPECT_GE(100000UL, ns[log_overhead]); // 50945 kernel
#endif

#ifdef TARGET_USES_LOGD
    EXPECT_GE(7500UL, ns[log_latency]); // 3718 user space
    EXPECT_GE(10000UL, ns[log_latency]); // 5669 user space
#else
    EXPECT_GE(500000UL, ns[log_latency]); // 254200 kernel
#endif
@@ -483,8 +472,7 @@ TEST(logd, benchmark) {
    ASSERT_TRUE(benchmark_statistics_found != NULL);

    // Check how effective the SPAM filter is, parse out Now size.
    //             Total               Now
    // 0/4225?     7454388/303656      31488/755
    // 0     root                      54164 147569
    //                                 ^-- benchmark_statistics_found

    unsigned long nowSpamSize = atol(benchmark_statistics_found);