Check readback retries and refused acknowledgments keep feedback roots unchanged

This commit is contained in:
evgeny committed 2026-10-27 03:50:16 +01:00
1 parent 739ee0802f
commit 7f0845e50c
1 file changed
+5 -1
+5 -1
View File
@@ -157,12 +157,16 @@ static void sql_faults(struct UTUN_INSTANCE* inst, const char* channel, const ch
u_free(result);
assert(message_count(inst, channel) == messages + (int)publish);
snprintf(read, sizeof(read), "{\"cmd\":\"feedback\",\"ch\":\"%s\",\"message_id\":\"%s\"}", channel, acknowledged);
assert(!merkle_sync_read_hash(inst, MT_DATA_FEEDBACK, channel, 0, 0, before)); unsigned events = changed_events;
result = command(inst, read, 0); u_free(result);
assert(message_count(inst, channel) == messages + (int)publish);
assert(message_count(inst, channel) == messages + (int)publish && changed_events == events);
assert(!merkle_sync_read_hash(inst, MT_DATA_FEEDBACK, channel, 0, 0, after) && !memcmp(before, after, 32));
}
int messages = message_count(inst, channel); unsigned events = changed_events;
assert(!merkle_sync_read_hash(inst, MT_DATA_FEEDBACK, channel, 0, 0, before));
fail_ack_allocation = 1; result = command(inst, request, -1); u_free(result);
assert(!fail_ack_allocation && changed_events == events && message_count(inst, channel) == messages);
assert(!merkle_sync_read_hash(inst, MT_DATA_FEEDBACK, channel, 0, 0, after) && !memcmp(before, after, 32));
}
chat_event_set_handler(inst, NULL);
printf("PASS: %u poll SQL faults,8 post-commit read failures,2 pre-commit allocation failures; state/events preserved, read-only retry, complete emoji text\n", cases);