static void assert_current_key_is(const gchar *expected_key) { const gchar *key = kv_scanner_get_current_key(kv_scanner); assert_string(key, expected_key, "current key mismatch"); }
static gboolean _assert_current_key_is(KVScanner *scanner, const gchar *expected_key) { const gchar *key = kv_scanner_get_current_key(scanner); return expect_nstring(key, -1, expected_key, -1, "current key mismatch"); }
static gboolean kv_parser_process(LogParser *s, LogMessage **pmsg, const LogPathOptions *path_options, const gchar *input, gsize input_len) { KVParser *self = (KVParser *) s; log_msg_make_writable(pmsg, path_options); /* FIXME: input length */ kv_scanner_input(self->kv_scanner, input); while (kv_scanner_scan_next(self->kv_scanner)) { /* FIXME: value length */ log_msg_set_value_by_name(*pmsg, _get_formatted_key(self, kv_scanner_get_current_key(self->kv_scanner)), kv_scanner_get_current_value(self->kv_scanner), -1); } return TRUE; }
static gboolean _assert_no_more_tokens(KVScanner *scanner) { gboolean ok = kv_scanner_scan_next(scanner); if (ok) { GString *msg = g_string_new("kv_scanner is expected to return no more key-value pairs "); do { const gchar *key = kv_scanner_get_current_key(scanner); if (!key) key = ""; const gchar *value = kv_scanner_get_current_value(scanner); if (!value) value = ""; g_string_append_printf(msg, "[%s/%s]", key, value); } while (kv_scanner_scan_next(scanner)); expect_false(ok, msg->str); g_string_free(msg, TRUE); } return !ok; }