bool process_log(const dlogutil_entry_s *e, struct timespec reference_ts, dlogutil_sorting_order_e stamp_type, long timeout, int *callback_ret);
struct fd_info *find_earliest_log(struct fd_info **data_fds, int fd_count, dlogutil_sorting_order_e sort_by);
-int put_logs_into_vector(struct fd_info **data_fds, int fd_count, struct sort_vector *logs, struct log_filter *filter, bool *need_epoll, bool *any_drained, dlogutil_entry_s **entry_out);
+int put_logs_into_vector(struct fd_info **data_fds, int fd_count, struct sort_vector *logs, struct log_filter *filter, bool limited_dump, bool *at_least_one_buffer_drained, bool *all_buffers_empty, dlogutil_entry_s **entry_out);
int __wrap_clock_gettime(clockid_t clk_id, struct timespec *tp)
{
int main()
{
- dlogutil_entry_s ent = {
- .sec_sent_mono = 0,
- .nsec_sent_mono = 900000000,
- .sec_sent_real = 0,
- .nsec_sent_real = 0,
- .sec_recv_mono = 1,
- .nsec_recv_mono = 0,
- .sec_recv_real = 0,
- .nsec_recv_real = 999999999,
- };
-
- struct timespec ts = {
- .tv_sec = 1,
- .tv_nsec = 100000,
- };
-
struct sort_vector sv;
sort_vector_init(&sv);
sv.sort_by = DLOGUTIL_SORT_SENT_MONO;
sv.timeout = 60;
sv.size = DEFAULT_SORT_BUFFER_SIZE;
sort_vector_finalize(&sv);
- assert(sort_vector_time_span(&sv) == 0);
+ assert(sort_vector_time_span(&sv, (struct timespec) { .tv_nsec = -1, }) == 0);
for (int i = 0; i < 10; ++i) {
dlogutil_entry_s *ent2 = calloc(1, sizeof(*ent2));
sort_vector_push(&sv, ent2);
}
- assert(sort_vector_time_span(&sv) == 110);
+ assert(sort_vector_time_span(&sv, (struct timespec) { .tv_nsec = -1, }) == 110);
dlogutil_entry_s *ent3 = calloc(1, sizeof(*ent3));
assert(ent3);
ent3->sec_sent_mono = 0;
ent3->nsec_sent_mono = 999999999;
sort_vector_push(&sv, ent3);
- assert(sort_vector_time_span(&sv) == 900);
+ assert(sort_vector_time_span(&sv, (struct timespec) { .tv_nsec = -1, }) == 900);
struct fd_ops test_ops = {
.has_log = test_has_log,