saved_logs = NULL;
}
-char *
-mock_saved_log_at(int ix)
+static mock_saved_log_entry_t *
+mock_get_log_entry(int ix)
{
int saved_log_count = mock_saved_log_number();
if(ix < 0) {
}
if (saved_log_count <= ix)
+ return NULL;
+
+ return smartlist_get(saved_logs, ix);
+}
+
+const char *
+mock_saved_log_at(int ix)
+{
+ mock_saved_log_entry_t *ent = mock_get_log_entry(ix);
+ if (ent)
+ return ent->generated_msg;
+ else
return "";
- return ((mock_saved_log_entry_t *)smartlist_get(saved_logs, ix))->generated_msg;
}
int
mock_saved_severity_at(int ix)
{
- int saved_log_count = mock_saved_log_number();
- if(ix < 0) {
- ix = saved_log_count + ix;
- }
-
- if (saved_log_count <= ix)
+ mock_saved_log_entry_t *ent = mock_get_log_entry(ix);
+ if (ent)
+ return ent->severity;
+ else
return -1;
- return ((mock_saved_log_entry_t *)smartlist_get(saved_logs, ix))->severity;
}
int
}
void
-mock_saving_logv(int severity, log_domain_mask_t domain, const char *funcname, const char *suffix, const char *format, va_list ap)
+mock_saving_logv(int severity, log_domain_mask_t domain,
+ const char *funcname, const char *suffix,
+ const char *format, va_list ap)
{
+ (void)domain;
char *buf = tor_malloc_zero(10240);
int n;
n = tor_vsnprintf(buf,10240,format,ap);
+ tor_assert(n < 10240-1);
buf[n]='\n';
buf[n+1]='\0';
e->funcname = funcname;
e->suffix = suffix;
e->format = format;
- e->generated_msg = buf;
+ e->generated_msg = tor_strdup(buf);
+ tor_free(buf);
if (!saved_logs)
saved_logs = smartlist_new();
struct mock_saved_log_entry_t *next;
} mock_saved_log_entry_t;
-void mock_saving_logv(int severity, log_domain_mask_t domain, const char *funcname, const char *suffix, const char *format, va_list ap);
+void mock_saving_logv(int severity, log_domain_mask_t domain,
+ const char *funcname, const char *suffix,
+ const char *format, va_list ap)
+ CHECK_PRINTF(5, 0);
void mock_clean_saved_logs(void);
const smartlist_t *mock_saved_logs(void);
int setup_capture_of_logs(int new_level);
void teardown_capture_of_logs(int prev);
-char *mock_saved_log_at(int ix);
+const char *mock_saved_log_at(int ix);
int mock_saved_severity_at(int ix);
int mock_saved_log_number(void);