1 #define LOG_TAG "SRPOL_LOGGER"
11 void *func(void *data)
16 for (i = 0; i < 10000; ++i)
17 LOGE("Multithreading test %d", i);
22 int main(int argc, char **argv)
25 char *const huge_buffer = malloc(LOG_MAX_PAYLOAD_SIZE * 3);
29 char buffer[LOG_MAX_PAYLOAD_SIZE - 20 /* leeway for tag, prio etc */];
31 pthread_t threads[50];
33 // check buffer overflow
34 for (int i = 0; i < 3; ++i)
35 memset(huge_buffer + i * LOG_MAX_PAYLOAD_SIZE, 'a' + i, LOG_MAX_PAYLOAD_SIZE);
36 huge_buffer[LOG_MAX_PAYLOAD_SIZE * 3 - 1] = '\0';
38 LOGE("%s", huge_buffer);
41 for (size_t i = 0; i < sizeof buffer; ++i)
42 buffer[i] = rand() & 255;
46 // check multithreading
47 for (i = 0; i < 50; ++i)
48 pthread_create(threads + i, NULL, func, NULL);
50 for (i = 0; i < 50; ++i)
51 pthread_join(threads[i], NULL);
58 int count = atoi(argv[1]);
61 if (mode) // alternate logging levels to allow testing of filters
62 LOGE("%s", "test data, level: error");
64 LOGI("%s", "test data, level: info");